diff --git a/Build-PxeUsb.cmd b/Build-PxeUsb.cmd new file mode 100644 index 0000000..79e7c4c --- /dev/null +++ b/Build-PxeUsb.cmd @@ -0,0 +1,29 @@ +@echo off +rem Build the PXE server installer USB. Double-click this file in the build +rem folder (copied to a local disk, e.g. C:\pxe-usb). It asks for admin +rem rights, lists the USB disks and asks which one to erase and build. +rem Runs scripts\Build-PxeUsb.ps1 -Interactive with the execution policy +rem bypassed for that one window only. +setlocal +set "PS1=%~dp0scripts\Build-PxeUsb.ps1" +if not exist "%PS1%" ( + echo Cannot find %PS1% + echo Run this from the pxe-usb build folder. + pause + exit /b 1 +) +if "%~d0"=="\\" goto :network +net use %~d0 >nul 2>&1 && goto :network +powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell -Verb RunAs -ArgumentList '-NoProfile','-ExecutionPolicy','Bypass','-File','\"%PS1%\"','-Interactive'" +exit /b 0 + +:network +echo This build folder is on a network drive (%~d0). +echo An administrator window cannot see network drives mapped in this session. +echo Copy the whole pxe-usb folder to a local disk first, for example: +echo. +echo robocopy "%~dp0." C:\pxe-usb /E +echo. +echo then double-click C:\pxe-usb\Build-PxeUsb.cmd +pause +exit /b 1 diff --git a/Capture-SiteContent.cmd b/Capture-SiteContent.cmd new file mode 100644 index 0000000..7e34003 --- /dev/null +++ b/Capture-SiteContent.cmd @@ -0,0 +1,14 @@ +@echo off +rem Pull the site content (Office, Adobe, certificates, Engineering Layer, +rem BIOS files, boot.wim, Blancco) from a running PXE server into this +rem build folder. Double-click it; it asks for the server address and the +rem pxe password. Runs scripts\Capture-SiteContent.ps1 -Interactive. +setlocal +set "PS1=%~dp0scripts\Capture-SiteContent.ps1" +if not exist "%PS1%" ( + echo Cannot find %PS1% + echo Run this from the pxe-usb build folder. + pause + exit /b 1 +) +powershell -NoProfile -ExecutionPolicy Bypass -File "%PS1%" -Interactive diff --git a/README.md b/README.md index e0f0a8f..c183fa5 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,11 @@ Extracts and configures boot tool files (Blancco, Clonezilla with Debian's signe sudo ./scripts/build-usb.sh /dev/sdX /path/to/ubuntu-24.04-live-server-amd64.iso ``` -Creates a bootable USB with two partitions: +On a Windows PC instead: `scripts/stage-usb-share.sh` here, then +`Build-PxeUsb.ps1 -DiskNumber N -NoSiteVars` there (see SETUP.md, "Building +the USB on a Windows PC"). + +`build-usb.sh` creates a bootable USB with two partitions: - **Partition 1:** Ubuntu Server installer - **Partition 2:** CIDATA (autoinstall config, offline .debs, pip wheels, Ansible playbook, webapp, boot tools) @@ -175,25 +179,22 @@ pxe-server/ ├── bios-staging/ # Dell BIOS update binaries (gitignored) ├── scripts/ # Build, deploy, and helper scripts │ ├── build-usb.sh # Builds the installer USB (2-partition) -│ ├── build-proxmox-iso.sh # UNSUPPORTED (use build-usb.sh --image) +│ ├── Build-PxeUsb.ps1 # Windows: builds the installer USB (one FAT32 partition) +│ ├── stage-usb-share.sh # Puts repo + payload on the pxe-images share for it │ ├── prepare-boot-tools.sh # Extracts and patches boot tool files │ ├── download-packages.sh # Downloads offline .debs + pip wheels │ ├── download-drivers.py # Downloads Dell drivers directly from dell.com -│ ├── deploy-bios.sh # Pushes BIOS updates to enrollment share │ ├── capture-site-content.sh # Pulls site content + fresh payload from a live server -│ ├── sync_hardware_models.py # Syncs hardware model configs across images │ ├── Upload-Image.ps1 # Windows: upload MCL cache to PXE via SMB │ └── Download-Drivers.ps1 # Windows: download hardware drivers from GE CDN ├── config/ # Site-specific configuration overrides -├── startnet-template.cmd # startnet.cmd template (synced with playbook copy) ├── README.md # This file └── SETUP.md # Detailed setup guide ``` ## Proxmox Deployment -`scripts/build-proxmox-iso.sh` is no longer supported: it was a second, -drifted copy of the installer. Build a disk image with +Build a disk image with `scripts/build-usb.sh --site-vars site-vars.yml --image pxe-usb.img auto UBUNTU.iso` and import it on the Proxmox host (`qm importdisk pxe-usb.img `), attached after the system disk in the boot order. The VM needs diff --git a/SETUP.md b/SETUP.md index ce1deb7..b49dc22 100644 --- a/SETUP.md +++ b/SETUP.md @@ -129,6 +129,31 @@ This creates a bootable USB with: - **Partition 1:** Ubuntu Server installer - **Partition 2:** CIDATA (autoinstall config, offline .debs, pip wheels, Ansible playbook, webapp, boot tools) +#### Building the USB on a Windows PC + +`scripts/Build-PxeUsb.ps1` builds the same stick on Windows, with the same +checks, no Linux tools needed. It writes ONE FAT32 partition labelled +CIDATA holding the Ubuntu ISO's files (boot menu patched for autoinstall) +and the payload; it boots in UEFI mode only (Secure Boot works) and is at +most 32 GB (the FAT32 size Windows formats). Every file is read back and +compared by SHA-256. + +On the build PC, put the repo and payload on the share: + +```bash +./scripts/stage-usb-share.sh # -> ~/pxe-images/pxe-usb (hard links) +``` + +On the Windows PC, in an elevated PowerShell (Z: = the pxe-images share): + +```powershell +Z:\pxe-usb\scripts\Build-PxeUsb.ps1 # lists USB disks +Z:\pxe-usb\scripts\Build-PxeUsb.ps1 -DiskNumber 3 -NoSiteVars # or -SiteVars FILE +``` + +It refuses a disk that is not on the USB bus or is the boot/system disk, +and asks you to type the disk number before erasing it. + ### Step 4: Boot the Target Machine 1. Insert the USB into the target machine @@ -246,17 +271,15 @@ pxe-server/ ├── bios-staging/ # Dell BIOS update binaries (gitignored) ├── scripts/ # Build, deploy, and helper scripts │ ├── build-usb.sh # Builds the 2-partition installer USB -│ ├── build-proxmox-iso.sh # UNSUPPORTED (use build-usb.sh --image) +│ ├── Build-PxeUsb.ps1 # Windows: builds the installer USB (one FAT32 partition) +│ ├── stage-usb-share.sh # Puts repo + payload on the pxe-images share for it │ ├── prepare-boot-tools.sh # Extracts/patches boot tools from ISOs │ ├── download-packages.sh # Downloads all offline packages │ ├── download-drivers.py # Downloads Dell drivers from dell.com -│ ├── deploy-bios.sh # Pushes BIOS updates to enrollment share │ ├── capture-site-content.sh # Pulls site content + fresh payload from a live server -│ ├── sync_hardware_models.py # Syncs hardware model configs across images │ ├── Upload-Image.ps1 # Windows: upload MCL cache to PXE via SMB │ └── Download-Drivers.ps1 # Windows: download hardware drivers from GE CDN ├── config/ # Site-specific configuration overrides -├── startnet-template.cmd # startnet.cmd template (synced with playbook copy) ├── README.md # Project overview └── SETUP.md # Detailed setup guide (this file) ``` diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 9dd8403..a7cbd29 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -193,9 +193,7 @@ PXE clients (UEFI -> iPXE -> Blancco) -+--> Drive erasure + report upload ## Where things live - Ansible playbook: `playbook/pxe_server_setup.yml`. Single file, idempotent. -- WinPE startup script (template): `playbook/startnet.cmd` (canonical) and - `startnet-template.cmd` (mirror copy at repo root for editor convenience). - The playbook injects this into `Windows/System32/startnet.cmd` inside the +- WinPE startup script: `playbook/startnet.cmd`. The playbook injects this into `Windows/System32/startnet.cmd` inside the `boot.wim` it deploys to `/var/www/html/win11/sources/`. - iPXE menu script source: embedded in the playbook (`Create GetPxeScript.aspx` task); deployed to `/var/www/html/Altiris/iPXE/GetPxeScript.aspx`. diff --git a/docs/SITE-CUSTOMIZATION.md b/docs/SITE-CUSTOMIZATION.md index ea39b49..543470b 100644 --- a/docs/SITE-CUSTOMIZATION.md +++ b/docs/SITE-CUSTOMIZATION.md @@ -159,8 +159,7 @@ A site without CMMs can drop the CMM type and its installers entirely. ### GCCH bulk-enrollment PPKGs -PPKG filenames are baked into `playbook/startnet.cmd` and -`startnet-template.cmd`. They are tied to the GE Aerospace tenant. Other +PPKG filenames are baked into `playbook/startnet.cmd`. They are tied to the GE Aerospace tenant. Other sites/tenants will have their own PPKGs with different filenames. | PPKG enrollment menu choice | Default filename | diff --git a/docs/kb/How_To_Deploy_PXE_Server_New_Site.html b/docs/kb/How_To_Deploy_PXE_Server_New_Site.html new file mode 100644 index 0000000..17e20bb --- /dev/null +++ b/docs/kb/How_To_Deploy_PXE_Server_New_Site.html @@ -0,0 +1,958 @@ + + + + + + How To Deploy a PXE Imaging Server at a New Site - GE Aerospace Knowledge Base + + + +
+ +
+
+ Knowledge Base Article +

How To Deploy a PXE Imaging Server at a New Site

+

From an empty server to imaging PCs: build the installer USB on Windows, install the server, load the images

+
+ +
+ + +
+ + + + + +
+

Overview

+

The PXE imaging server images Shop Floor, Standard and Engineer PCs over an isolated imaging network, and wipes PCs with Blancco. A new site builds one from scratch: a Windows PC builds the installer USB, the server installs itself from it, and the images are loaded from Media Creator Lite. No Linux knowledge and no existing PXE server are needed.

+

Prerequisites:

+
    +
  • Server: UEFI firmware, a 500 GB+ disk, at least one wired NIC (two if it also joins the GE network)
  • +
  • An unmanaged switch for the isolated imaging network (never connected to the GE network)
  • +
  • A Windows 10/11 PC with local administrator rights and 25 GB free disk
  • +
  • A USB stick of 32 GB (everything on it is erased)
  • +
  • The pxe-usb build folder from the DT team (about 10 GB)
  • +
  • A PC with Media Creator Lite, for the images (Part 3)
  • +
+

Objectives:

+
    +
  • Build and verify the installer USB on Windows
  • +
  • Install the PXE server; the imaging port is picked automatically
  • +
  • Load the Shop Floor, Standard and Engineer images and image a test PC
  • +
+
+ +
+ Build folder: + The pxe-usb folder holds everything the server needs offline: the Ubuntu installer, packages, the setup, the web interface, boot files, Blancco and Clonezilla. Get the current copy from: <build folder location>. Always use a fresh copy; never edit files in it. +
+ + +

Part 1 - Build the Installer USB

+
+ Step 1 +

Copy the build folder to the Windows PC

+

Copy the whole pxe-usb folder to a local disk, for example C:\pxe-usb. If the site has settings (admin subnets, Clonezilla password), add site-vars.yml now: see Site Settings.

+
+ Why local: + The build runs as administrator, and an administrator window cannot see network drives mapped in your normal session. A local copy is also faster and does not fail half-way if the network drops. +
+
+ + +
+ Step 2 +

Run the USB builder

+
    +
  1. Plug in the USB stick.
  2. +
  3. Start menu, type PowerShell, right-click Windows PowerShell, Run as administrator.
  4. +
  5. Run:
  6. +
+
+ +
cd C:\pxe-usb
+powershell -ExecutionPolicy Bypass -File .\scripts\Build-PxeUsb.ps1 -Interactive
+
+
    +
  1. It lists the USB disks. Type the number of your stick and press Enter.
  2. +
  3. It checks the build folder, shows the disk again and asks you to type the disk number once more to confirm.
  4. +
+

It then erases the stick, creates one FAT32 partition labelled CIDATA, copies the installer, the payload and your site-vars.yml (if there is one), and reads every file back to verify it. It ends with USB build complete and verified and waits for Enter. Expect 10-20 minutes.

+
+ Erases the disk: + Everything on the selected disk is destroyed. The script refuses disks that are not on the USB bus and the Windows system disk, but check the model and size it shows before typing the number. +
+
+ +
+ Step 3 +

Eject the stick

+

Use Safely Remove Hardware before unplugging it.

+
+ + +
+ + +

Part 2 - Install the Server

+
+ Cabling rule: + During the install plug in ONLY the imaging switch. Leave the GE network cable unplugged. The first boot picks the imaging port by its link, and refuses if it cannot tell which port that is. +
+
+ Step 1 +

Boot the USB stick

+
    +
  1. Connect one server port to the imaging switch. Nothing else.
  2. +
  3. Insert the stick, power on and open the one-time boot menu (F12 on Dell).
  4. +
  5. Choose the USB stick under UEFI boot.
  6. +
+

Ubuntu installs itself with no questions and reboots (about 10 minutes).

+
+ + +
+ Step 2 +

Let the first boot finish

+

The first boot picks the imaging port, checks it is isolated (no GE switch, no 802.1X, no other DHCP server), gives it 172.16.9.1 and sets up every service. This takes 15-30 minutes. It is done when the console shows a normal login prompt without a red banner.

+
+ Leave the stick in + until the first boot has finished: setup reads its files from it. Remove it afterwards. +
+
+ + +
+ Step 3 +

Connect the GE network (optional)

+

Plug the GE cable into any other wired port. It gets an address by DHCP; SSH and the web interface then work from GE too. The server never serves DHCP or PXE on that port.

+
+ + +
+ Step 4 +

Open the web interface

+

From a PC on the imaging switch: http://172.16.9.1:9009 (from GE: http://<server GE address>:9009). The Overview page should show every service green.

+
+ + +
+ + +

Part 3 - Load the Images

+

The images come from Media Creator Lite (MCL). Each run of MCL caches one operating system; upload and import it, then repeat for the next image. Shop Floor uses Windows LTSC; Standard and Engineer use Windows Pro.

+
+ Step 1 +

Build the MCL cache

+

On the MCL PC, run Media Creator Lite for the image you are loading and let it finish completely (it writes a -Production.tag file when done).

+
+ + +
+ Step 2 +

Upload it to the server

+
    +
  1. Connect the MCL PC to the imaging switch (it gets a 172.16.9.x address).
  2. +
  3. Copy scripts\Upload-Image.ps1 from the build folder to it and run:
  4. +
+
+ +
powershell -ExecutionPolicy Bypass -File .\Upload-Image.ps1
+
+

It checks the MCL cache first (finished, consistent, every file matching MCL's own hashes), copies it to the server and has the server hash every file; files that arrived wrong are sent again. It ends with Upload complete: all N file(s) verified on the server. Add -IncludeDrivers to also send the hardware drivers MCL downloaded.

+
+ + +
+ Step 3 +

Import it

+
    +
  1. In the web interface open Images > All images and import.
  2. +
  3. Under From the network upload share the upload shows as verified, with the operating system MCL cached.
  4. +
  5. Choose the image it is for (only the matching images are offered) and import.
  6. +
+

Repeat Steps 1-3 for each image type.

+
+ + +
+ + +

Part 4 - Enrollment Package

+

Shop Floor PCs enroll with a provisioning package. Open Tools > Enrollment packages, click Upload SFLD package and upload the current GCCH_Prod_SFLD_v<version>.ppkg. The package you upload becomes the active one (shown on that page); upload a newer version the same way when one is released.

+
+ + +

Part 5 - Image a Test PC

+
    +
  1. Connect a test PC to the imaging switch and PXE boot it (F12, network boot).
  2. +
  3. Pick the image in the boot menu and follow the prompts.
  4. +
  5. Follow it on Operate > Imaging floor in the web interface.
  6. +
+
+ Deployment Complete + The server images PCs on the isolated switch at 172.16.9.1. Keep the USB stick: it rebuilds the server the same way. +
+ +
+ +

Site Settings

+

Site settings live in one small text file, site-vars.yml, in the build folder. The USB builder copies it onto the stick and the server reads it while it installs. Without the file the defaults are used: fine for a test, but every production site should set at least site_name and clonezilla_smb_password.

+ +
+ Step 1 +

Create the file

+
    +
  1. In Explorer turn on View > Show > File name extensions (so the file does not end up named site-vars.yml.txt).
  2. +
  3. In C:\pxe-usb, copy site-vars.example.yml and rename the copy to site-vars.yml.
  4. +
  5. Right-click it, Open with > Notepad, change the values (see the table below), save.
  6. +
+
+ +
+ Step 2 +

Follow the format

+
    +
  • One setting per line: name: value, with a space after the colon.
  • +
  • Put text in double quotes: site_name: "West Jefferson".
  • +
  • Lists go in square brackets: corp_admin_cidrs: ["10.12.34.0/24", "10.12.40.0/24"].
  • +
  • A line starting with # is a note and is ignored. Remove the # to turn a setting on.
  • +
  • Start every setting at the beginning of the line. No tabs.
  • +
+
+ +
+ Step 3 +

Build the USB

+

Build as in Part 1. The builder checks the NIC addresses; the server checks everything else while it installs. If a value is wrong it stops before changing anything; the console banner points at /var/log/first-boot.log, which names the setting. Fix the file on the stick (playbook\site-vars.yml) and reboot: setup runs again.

+
+ +

The settings

+ + + + + + + + + +
SettingWhat it doesWhen to set itExample
site_nameThe site name stamped on Blancco erasure reports and the monthly CMMC evidence packs. Not set: Unnamed site. Letters, digits, spaces and . , - ( ) & / only.Always"West Jefferson"
site_timezoneTime zone of the server clock, of every time in the web interface, and of the evidence-pack month boundaries.If the site is not on US Eastern time"America/Chicago"
clonezilla_smb_passwordPassword of the share Clonezilla backs up to and restores from. The boot menu carries it, so it protects the share on the imaging network only. 8-64 characters from A-Z a-z 0-9 . _ ~ -Always (the default is the same at every site)"WJ-Clone-2026"
corp_admin_cidrsThe GE subnets allowed to reach the web interface (port 9009) and SSH. Not set: all of GE. The imaging network always has access.Recommended once the server is on the GE network["10.12.34.0/24"]
pxe_nic_mac
corp_nic_mac
Pin the imaging port and the GE port by MAC address instead of picking the imaging port at install. Then both cables may be in from the start.Only if the automatic pick is not wanted"34:c8:d6:b1:10:10"
pxe_nic_allowed_switchesA managed imaging switch sends LLDP/CDP like a GE switch, and the server would refuse to serve on it. Its name (or MAC) here marks it as the imaging switch. Comma separated.Only if the imaging switch is managed"IMG-SW-01"
pxe_dhcp_start
pxe_dhcp_end
pxe_dhcp_lease
The addresses handed to PCs being imaged. Default 172.16.9.10 to .100 (91 PCs at once), 12 hour leases.Only if more than about 90 PCs image at the same time"172.16.9.250"
+
+ Do not change: + pxe_server_ip and pxe_subnet (172.16.9.1, 172.16.9.0/24). That address is built into the boot menu, WinPE and the Windows answer files. +
+ +

Finding the values

+

Admin subnet (corp_admin_cidrs)

+

On each admin PC that should manage the server, run ipconfig and read the GE adapter's IPv4 address and subnet mask. Replace the last part of the address with 0 and add the suffix for the mask:

+ + + + + +
Subnet maskSuffixExample: address 10.12.34.56
255.255.255.0/2410.12.34.0/24
255.255.254.0/2310.12.34.0/23 (third number even: 34 stays, 35 becomes 34)
255.255.252.0/2210.12.32.0/22 (third number rounded down to a multiple of 4)
+
+ Locked out from GE? + A wrong subnet only blocks the GE side. The web interface still works from a PC on the imaging switch at http://172.16.9.1:9009; fix the file and re-apply it (below). +
+

MAC address (pxe_nic_mac, corp_nic_mac)

+

From the label on the server or the network page of its firmware setup. Write it with colons and lower case: 34:c8:d6:b1:10:10.

+

Time zone (site_timezone)

+

Common names: America/New_York, America/Chicago, America/Denver, America/Phoenix, America/Los_Angeles, Europe/London, Europe/Warsaw, Asia/Kolkata. The full list: the "TZ identifier" column of the tz database.

+ +

A complete example

+
+ +
# C:\pxe-usb\site-vars.yml
+
+# Name on Blancco erasure reports and the monthly evidence packs.
+site_name: "Example Site"
+
+# Time zone of the server clock and the web interface.
+site_timezone: "America/New_York"
+
+# Password of the Clonezilla backup share (8-64 characters from
+# A-Z a-z 0-9 . _ ~ -).
+clonezilla_smb_password: "ExSite-Clone-2026"
+
+# Who may reach the web interface and SSH from the GE network.
+# Remove the # once you know your admin subnet(s):
+# corp_admin_cidrs: ["10.12.34.0/24"]
+
+ +

Changing settings after the install

+
    +
  1. On the USB stick, edit playbook\site-vars.yml (same format).
  2. +
  3. Plug the stick into the server, log in as pxe and run the setup again:
  4. +
+
+ +
sudo /opt/first-boot.sh
+
+

It re-applies every setting and changes only what differs. Run it when no PCs are imaging: while they are, it postpones restarting services, and a change to the network settings is refused until the floor is idle.

+ +
+ +

Script Options

+

Only needed for special cases. Run the script from an elevated PowerShell in C:\pxe-usb with options instead of -Interactive:

+
+ +
powershell -ExecutionPolicy Bypass -File .\scripts\Build-PxeUsb.ps1 -DiskNumber 1 -SiteVars .\site-vars.yml
+
+ + + + + + +
OptionEffect
-DiskNumber NThe USB disk to erase and build. Without it the script lists USB disks.
-SiteVars FILE / -NoSiteVarsPer-site values, or the defaults.
-SkipEnrollment, -SkipBios, -SkipDrivers, -SkipBootToolsLeave that payload off the stick.
-QuickVerifyRead back by size only instead of SHA-256 (faster, weaker).
+ + +

Troubleshooting

+
+

Issue: "cannot be run because it contains a #requires statement for running as Administrator"

+

Resolution: the PowerShell window is not elevated. Close it and open Windows PowerShell with Run as administrator (Part 1, Step 2).

+
+ +
+

Issue: "Cannot find path" for the build folder

+

Resolution: an administrator window cannot see network drives mapped in your normal session. Copy the pxe-usb folder to C:\pxe-usb (Part 1, Step 1) and run it from there.

+
+ +
+

Issue: The USB build stops with "does not match" or "was built for ISO"

+

Resolution: the build folder is incomplete or out of date. Delete the local copy and copy a fresh pxe-usb folder.

+
+ + +
+

Issue: "The stick is NOT good"

+

Resolution: the read-back found missing or different files. Rebuild on a different USB port or stick. Never boot a stick that failed verification.

+
+ + +
+

Issue: The server does not boot the stick

+

Resolution: the stick boots in UEFI mode only. In the firmware setup set the boot mode to UEFI (not Legacy/CSM) and pick the UEFI entry for the stick in the F12 menu.

+
+ + +
+

Issue: Console banner "Could not pick the imaging port"

+

Symptoms: no port had a link, two ports had a link, or the port looked like the GE network.

+

Resolution: log in on the console as pxe and run the picker. When asked, pull the imaging switch cable out and plug it back into the same port; the port that blinked becomes the imaging port and setup runs again.

+
+ +
sudo pxe-pick-nic
+
+
+ + +
+

Issue: Setup failed for another reason

+

Resolution: the reason is on the console banner and in the log. Setup retries at every reboot (5 attempts).

+
+ +
sudo less /var/log/first-boot.log
+
+
+ + +
+

Issue: Upload-Image.ps1 reports files NOT verified

+

Resolution: run it again; it re-sends only the files that differ. Files that are bad in the MCL cache itself must be downloaded again by MCL (delete the cache and run MCL again).

+
+
+ + + +
+ + + + + \ No newline at end of file diff --git a/playbook/FlatUnattendW10-shopfloor.xml b/playbook/FlatUnattendW10-shopfloor.xml index 967826c..ab010d3 100644 --- a/playbook/FlatUnattendW10-shopfloor.xml +++ b/playbook/FlatUnattendW10-shopfloor.xml @@ -213,7 +213,7 @@ 6 powershell.exe -ExecutionPolicy Bypass -File "C:\Enrollment\Verify-And-Heal-Staging.ps1" - Verify + re-pull any missing imaging payload from the PXE share (CMM/Keyence/WaxTrace bundles + bay backup) on the imaging LAN before the production-network switch. Log C:\Logs\Fetch. + Verify + re-pull any missing imaging payload (shopfloor setup scripts, site app lists and installers) from the PXE share on the imaging LAN before the production-network switch. Log C:\Logs\Fetch. 7 diff --git a/playbook/blancco-preferences.xml b/playbook/blancco-preferences.xml index 852f6a4..66d9fde 100644 --- a/playbook/blancco-preferences.xml +++ b/playbook/blancco-preferences.xml @@ -252,7 +252,7 @@ 2026-06-22 - West Jefferson + GE Aerospace @@ -325,8 +325,8 @@ true - INTERNETACCESS - Acc3ssGr@nted22 + + WPA-PSK 0 diff --git a/playbook/preinstall/adobe/Install-AcroReader.cmd b/playbook/preinstall/adobe/Install-AcroReader.cmd deleted file mode 100644 index 29487a2..0000000 --- a/playbook/preinstall/adobe/Install-AcroReader.cmd +++ /dev/null @@ -1,23 +0,0 @@ -@echo off -REM Install-AcroReader.cmd - Install Adobe Acrobat Reader DC + DC update patch -REM -REM Two-step install: base MSI with enterprise transform, then DC update patch. -REM Same version as the GEA-Engineering image (specialize pass Orders 22-23). -REM Files staged by startnet.cmd from enrollment share to C:\PreInstall\installers\adobe\. - -echo Installing Adobe Acrobat Reader DC... -msiexec /i "%~dp0AcroRead.msi" TRANSFORMS="%~dp0AcroRead.mst" /quiet /norestart -if %errorlevel% neq 0 if %errorlevel% neq 3010 ( - echo Acrobat Reader MSI failed with exit code %errorlevel% - exit /b %errorlevel% -) - -echo Applying Adobe Reader DC update patch... -msiexec /p "%~dp0AcroRdrDCUpd2500120531.msp" /quiet /norestart -if %errorlevel% neq 0 if %errorlevel% neq 3010 ( - echo Acrobat Reader patch failed with exit code %errorlevel% - exit /b %errorlevel% -) - -echo Adobe Acrobat Reader DC installed successfully. -exit /b 0 diff --git a/playbook/preinstall/display/Install-KioskApp.cmd b/playbook/preinstall/display/Install-KioskApp.cmd deleted file mode 100644 index 6e9703a..0000000 --- a/playbook/preinstall/display/Install-KioskApp.cmd +++ /dev/null @@ -1,43 +0,0 @@ -@echo off -REM Install-KioskApp.cmd - Install Lobby Display or Dashboard kiosk app -REM -REM Reads C:\Enrollment\display-type.txt to determine which app to install. -REM Only runs on Display PCs (PCTypes filter in preinstall.json). -REM Both installers live alongside this script in the staged display\ subtree. - -set "TYPEFILE=C:\Enrollment\display-type.txt" - -if not exist "%TYPEFILE%" ( - echo No display-type.txt found - skipping kiosk app install. - exit /b 0 -) - -set /p DISPLAYTYPE=<"%TYPEFILE%" - -if /i "%DISPLAYTYPE%"=="Lobby" ( - set "INSTALLER=%~dp0GEAerospaceLobbyDisplaySetup.exe" - set "APPNAME=Lobby Display" -) else if /i "%DISPLAYTYPE%"=="Dashboard" ( - set "INSTALLER=%~dp0GEAerospaceDashboardSetup.exe" - set "APPNAME=Dashboard" -) else ( - echo Unknown display type: %DISPLAYTYPE% - exit /b 1 -) - -if not exist "%INSTALLER%" ( - echo %APPNAME% installer not found: %INSTALLER% - exit /b 1 -) - -echo Installing %APPNAME%... -"%INSTALLER%" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /LOG="C:\Logs\PreInstall\%APPNAME%-install.log" -set EXITCODE=%errorlevel% - -if %EXITCODE% equ 0 ( - echo %APPNAME% installed successfully. -) else ( - echo %APPNAME% exited with code %EXITCODE%. -) - -exit /b %EXITCODE% diff --git a/playbook/preinstall/drivers/Install-Drivers.cmd b/playbook/preinstall/drivers/Install-Drivers.cmd deleted file mode 100644 index d905962..0000000 --- a/playbook/preinstall/drivers/Install-Drivers.cmd +++ /dev/null @@ -1,46 +0,0 @@ -@echo off -REM Install-Drivers.cmd - Adds bundled INF driver packages to the Windows driver store -REM via pnputil. Runs from C:\PreInstall\installers\drivers\ where each vendor -REM subdir (prolific\, startech\) sits alongside this script. /subdirs walks into -REM them so one call covers every bundled driver. -REM -REM Writes C:\ProgramData\PXEDrivers\drivers-installed.marker on success so the -REM preinstall runner's File DetectionMethod can skip re-runs. - -setlocal - -set LOGDIR=C:\Logs\PreInstall -set LOG=%LOGDIR%\Install-Drivers.log -set MARKER_DIR=C:\ProgramData\PXEDrivers -set MARKER=%MARKER_DIR%\drivers-installed.marker - -if not exist "%LOGDIR%" mkdir "%LOGDIR%" -if not exist "%MARKER_DIR%" mkdir "%MARKER_DIR%" - -echo ================================================================ >> "%LOG%" -echo [%date% %time%] Install-Drivers session start >> "%LOG%" -echo Source dir: %~dp0 >> "%LOG%" -echo ================================================================ >> "%LOG%" - -REM pnputil /add-driver with /subdirs recurses into vendor subdirs. /install -REM binds the driver to any matching hardware present now; drivers without a -REM matching device still land in the driver store and bind on plug-in later. -pnputil.exe /add-driver "%~dp0*.inf" /subdirs /install >> "%LOG%" 2>&1 -set RC=%ERRORLEVEL% - -echo [%date% %time%] pnputil exit code: %RC% >> "%LOG%" - -REM pnputil exit codes: -REM 0 success -REM 259 ERROR_NO_MORE_ITEMS - no INFs matched (treat as failure) -REM 3010 at least one driver installed, reboot recommended (treat as success) -if "%RC%"=="0" goto :ok -if "%RC%"=="3010" goto :ok - -echo [%date% %time%] FAILED (exit %RC%) >> "%LOG%" -exit /b %RC% - -:ok -echo [%date% %time%] SUCCESS >> "%LOG%" -echo installed %date% %time% > "%MARKER%" -exit /b 0 diff --git a/playbook/preinstall/opentext/README.md b/playbook/preinstall/opentext/README.md deleted file mode 100644 index 2a7a80d..0000000 --- a/playbook/preinstall/opentext/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# OpenText HostExplorer ShopFloor - install scripts - -These three files are git-tracked snapshots of what lives at runtime -in `/home/camp/pxe-images/main/dependencies/opentext/`. The full -runtime tree also contains the bundled installer binaries (~106 MB -total) which are intentionally NOT in git: - -``` -OpenTextHostExplorer15x64.msi ~16 MB -OpenTextHostExplorer15x64.cab ~86 MB -OpenTextHostExplorer15x64_ServicePack1.msp ~4.4 MB -ShopFloorx64.mst ~20 KB -Profile/ 5 .hep connection profiles -Accessories/EB/ 6 .ebs/.ebx macros -HostExplorer/Keymap/ 2 .kmv keymaps -HostExplorer/Menu/ 2 .hmv menu layouts -W10shortcuts/ 4 .lnk public-desktop shortcuts -``` - -The canonical source for everything (scripts AND binaries) is -`/home/camp/pxe-images/main/dependencies/opentext/`. The files in -this dir are mirrors that exist so changes to the install logic and -the version stamp end up in git history. When editing: - -1. Edit `/home/camp/pxe-images/main/dependencies/opentext/Setup-OpenText.ps1` - (or `.cmd` / `version.txt`) -2. Re-run `bash playbook/sync-preinstall.sh` to push the runtime tree - to the live PXE server -3. `cp` the changed file(s) into `playbook/preinstall/opentext/` here - so git picks up the change -4. Re-upload the changed file(s) to Azure Blob at - `prod/main/dependencies/opentext/` - -To bump OpenText version: edit `version.txt` only - the value flows -through to Setup-OpenText.ps1 (which reads it at runtime), to -Install-OpenText.ps1 (the DSC wrapper, which downloads version.txt -first as a cheap detection check), and to the registry marker at -`HKLM:\SOFTWARE\GE\OpenText\Installed`. diff --git a/playbook/preinstall/opentext/Setup-OpenText.cmd b/playbook/preinstall/opentext/Setup-OpenText.cmd deleted file mode 100644 index bb6b8b6..0000000 --- a/playbook/preinstall/opentext/Setup-OpenText.cmd +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -REM Setup-OpenText.cmd - tiny launcher for Setup-OpenText.ps1 -REM -REM The PXE PreInstall runner only invokes Type:MSI or Type:EXE entries from -REM preinstall.json. This .cmd lives next to Setup-OpenText.ps1 in the staged -REM opentext\ subtree and just hands off to PowerShell with bypass policy. -REM Both files end up at C:\PreInstall\installers\opentext\ via xcopy /E from -REM the WinPE staging step in startnet.cmd. - -powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0Setup-OpenText.ps1" -exit /b %errorlevel% diff --git a/playbook/preinstall/opentext/Setup-OpenText.ps1 b/playbook/preinstall/opentext/Setup-OpenText.ps1 deleted file mode 100644 index 1dbd8f4..0000000 --- a/playbook/preinstall/opentext/Setup-OpenText.ps1 +++ /dev/null @@ -1,361 +0,0 @@ -#!/usr/bin/env pwsh -# Setup-OpenText.ps1 - OpenText HostExplorer 15 SP1 ShopFloor installer + profile -# deployment, callable from both PXE PreInstall and Intune DSC paths. -# -# WHY THIS EXISTS: -# The vendor-supplied OpenText.exe (Inno Setup wrapper built by WJDT) bundles -# the install steps but its [Files] section deploys per-user content to -# {userappdata} - which resolves to SYSTEM's profile under DSC and to a single -# user under PreInstall. As a result the operator (logging in via Azure AD) -# never sees the profiles, keymaps, menus, or macros - only the installed -# binaries. This script replaces OpenText.exe entirely, doing the same install -# steps via direct msiexec calls AND fanning the per-user content out to: -# - %ProgramData%\Hummingbird\Connectivity\15.00\Shared\ -# - C:\Users\Default\AppData\Roaming\Hummingbird\Connectivity\15.00\ -# - Each existing user profile under C:\Users\ -# -# INVOKED BY: -# - PreInstall: Setup-OpenText.cmd wrapper (because the runner only knows MSI/EXE) -# - DSC: Install-OpenText.ps1 downloads the bundled tree from blob, then -# invokes this script with -SourceDir -# -# DETECTION: -# Skips if HKLM:\SOFTWARE\GE\OpenText\Installed = $expectedVersion. Marker is -# written at the end of a successful run, so the runner / DSC wrapper can -# no-op on subsequent invocations. - -[CmdletBinding()] -param( - # Override when invoked from a temp dir (DSC path) where the bundled files were - # just downloaded. Defaults to $PSScriptRoot, but resolved INSIDE the script body - # below - PowerShell evaluates `param([string]$X = $PSScriptRoot)` at parameter- - # binding time, when $PSScriptRoot may not yet be populated, so the default winds - # up as an empty string. Setting it in the body works because $PSScriptRoot is - # reliably populated by then. - [string]$SourceDir -) - -$ErrorActionPreference = 'Stop' - -if (-not $SourceDir) { - $SourceDir = $PSScriptRoot -} - -# Normalize $SourceDir to a canonical absolute path. The CMD shim passes -# "%~dp0..\apps\opentext" which embeds a literal "..". msiexec / the Windows -# Installer service fail to open the package with that unresolved segment -# (exit 1619, ERROR_INSTALL_PACKAGE_OPEN_FAILED), even though every other -# .NET / PowerShell API resolves it fine. Resolve-Path collapses ".." into -# a clean drive-rooted path before any msiexec invocation. -if (Test-Path -LiteralPath $SourceDir) { - try { $SourceDir = (Resolve-Path -LiteralPath $SourceDir).ProviderPath } catch {} -} - -# --- Inline site-config reader (this script runs from C:\PreInstall\installers\opentext\, -# NOT from C:\Enrollment\shopfloor-setup\, so it can't dot-source Get-PCProfile.ps1) --- -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path $configPath)) { return $null } - try { - return Get-Content $configPath -Raw | ConvertFrom-Json - } catch { - return $null - } -} - -# --- Logging (set up FIRST so any startup error - missing version.txt, broken -# bundled file, etc. - lands in the log file instead of disappearing into the -# runner's stdout void) --- -$logDir = 'C:\Logs\PreInstall' -$logFile = Join-Path $logDir 'Setup-OpenText.log' -$msiLog = Join-Path $logDir 'Setup-OpenText-msi.log' -$mspLog = Join-Path $logDir 'Setup-OpenText-msp.log' - -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -function Write-SetupLog { - param([string]$Message) - $line = "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] $Message" - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Write-SetupLog "================================================================" -Write-SetupLog "=== Setup-OpenText.ps1 starting ===" -Write-SetupLog "================================================================" -Write-SetupLog "SourceDir: $SourceDir" -Write-SetupLog "PSScriptRoot: $PSScriptRoot" -Write-SetupLog "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -# --- Config --- -# Version is read from version.txt next to this script. ONE source of truth: bumping -# version.txt is the only edit needed when shipping a new OpenText build. Setup- -# OpenText.ps1 itself, Install-OpenText.ps1 (DSC wrapper), and the registry marker -# all derive their notion of "expected version" from this file. -$versionFile = Join-Path $SourceDir 'version.txt' -Write-SetupLog "Looking for version.txt at: $versionFile" -if (-not (Test-Path $versionFile)) { - Write-SetupLog "ERROR: version.txt not found in $SourceDir - cannot determine expected version." - Write-SetupLog "Directory listing of $SourceDir :" - if (Test-Path $SourceDir) { - Get-ChildItem $SourceDir -ErrorAction SilentlyContinue | ForEach-Object { - Write-SetupLog " $($_.Name) $($_.Length) bytes" - } - } else { - Write-SetupLog " (SourceDir does not exist)" - } - exit 1 -} -$expectedVersion = (Get-Content -Path $versionFile -Raw -ErrorAction Stop).Trim() -if (-not $expectedVersion) { - Write-SetupLog "ERROR: version.txt at $versionFile is empty." - exit 1 -} -Write-SetupLog "Expected version (from version.txt): $expectedVersion" - -# --- Detection: skip if already deployed at expected version --- -$markerKey = 'HKLM:\SOFTWARE\GE\OpenText' -$markerVal = 'Installed' -if (Test-Path $markerKey) { - $installed = (Get-ItemProperty -Path $markerKey -Name $markerVal -ErrorAction SilentlyContinue).$markerVal - if ($installed -eq $expectedVersion) { - Write-SetupLog "OpenText $expectedVersion already deployed (marker present) - skipping." - exit 0 - } - Write-SetupLog "OpenText marker mismatch (found '$installed', expected '$expectedVersion') - re-deploying." -} -else { - Write-SetupLog "OpenText marker not present - first install." -} - -# --- Verify bundled files are where we expect --- -$msiPath = Join-Path $SourceDir 'OpenTextHostExplorer15x64.msi' -$cabPath = Join-Path $SourceDir 'OpenTextHostExplorer15x64.cab' -$mspPath = Join-Path $SourceDir 'OpenTextHostExplorer15x64_ServicePack1.msp' -$mstPath = Join-Path $SourceDir 'ShopFloorx64.mst' - -foreach ($f in @($msiPath, $cabPath, $mspPath, $mstPath)) { - if (-not (Test-Path $f)) { - Write-SetupLog "ERROR: required file not found: $f" - exit 1 - } -} - -# --- Step 1: Install the base MSI with the ShopFloor transform --- -# NOTE: We deliberately do NOT pass REBOOT=ReallySuppress here even though we do -# for the VC++ MSIs. OpenText HostExplorer installs shell extensions that hook -# explorer.exe, and the MSI uses Restart Manager to ask explorer to close so the -# in-use shell DLLs can be replaced. With REBOOT=ReallySuppress, RM closes -# explorer.exe but interprets "restart explorer" as a reboot action and refuses -# to relaunch it - leaving the user without a desktop. /norestart on its own -# prevents the actual Windows reboot but lets RM cleanly close-and-relaunch -# explorer mid-install. msiexec still returns 3010 ("reboot would be needed"), -# which we treat as success below. -Write-SetupLog "" -Write-SetupLog "Step 1: Installing OpenTextHostExplorer15x64.msi with ShopFloorx64.mst..." -if (Test-Path $msiLog) { Remove-Item $msiLog -Force -ErrorAction SilentlyContinue } - -$msiArgs = "/i `"$msiPath`" TRANSFORMS=`"$mstPath`" /qn /norestart /L*v `"$msiLog`"" -Write-SetupLog " msiexec.exe $msiArgs" - -$psi = New-Object System.Diagnostics.ProcessStartInfo -$psi.FileName = 'msiexec.exe' -$psi.Arguments = $msiArgs -$psi.UseShellExecute = $false -$psi.CreateNoWindow = $true -$proc = [System.Diagnostics.Process]::Start($psi) -$proc.WaitForExit() -$msiExit = $proc.ExitCode -Write-SetupLog " msiexec exit code: $msiExit" - -if ($msiExit -ne 0 -and $msiExit -ne 3010) { - Write-SetupLog "ERROR: base MSI install failed (exit $msiExit). See $msiLog" - exit 1 -} -if ($msiExit -eq 3010) { - Write-SetupLog " (3010 = reboot needed but suppressed)" -} - -# --- Step 2: Apply Service Pack 1 patch --- -# Same Restart Manager rationale as Step 1 - skip REBOOT=ReallySuppress so RM -# can relaunch explorer.exe after replacing the patched shell extension DLLs. -Write-SetupLog "" -Write-SetupLog "Step 2: Applying SP1 patch..." -if (Test-Path $mspLog) { Remove-Item $mspLog -Force -ErrorAction SilentlyContinue } - -$mspArgs = "/p `"$mspPath`" /qn /norestart /L*v `"$mspLog`"" -Write-SetupLog " msiexec.exe $mspArgs" - -$psi.Arguments = $mspArgs -$proc = [System.Diagnostics.Process]::Start($psi) -$proc.WaitForExit() -$mspExit = $proc.ExitCode -Write-SetupLog " msiexec exit code: $mspExit" - -if ($mspExit -ne 0 -and $mspExit -ne 3010) { - Write-SetupLog "ERROR: SP1 patch failed (exit $mspExit). See $mspLog" - exit 1 -} - -# --- Step 3: Deploy profiles, keymaps, menus, accessories --- -# Source layout (bundled with this script): -# $SourceDir\Profile\*.hep -# $SourceDir\Accessories\EB\*.eb* -# $SourceDir\HostExplorer\Keymap\*.kmv -# $SourceDir\HostExplorer\Menu\*.hmv -# -# Target layouts (Hummingbird-canonical): -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\Profile\ -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\Accessories\EB\ -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\HostExplorer\Keymap\ -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\HostExplorer\Menu\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\Profile\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\Accessories\EB\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\HostExplorer\Keymap\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\HostExplorer\Menu\ -# -# We deploy to ProgramData\Shared (system-wide fallback), Default User (template -# inherited by every NEW user profile), and every existing user profile (so -# already-created accounts like SupportUser get them immediately). - -Write-SetupLog "" -Write-SetupLog "Step 3: Deploying profiles/keymaps/menus/macros..." - -# --- Resolve exclude lists from site-config.json (falls back to West Jefferson defaults) --- -$siteConfig = Get-SiteConfig -$profileExcludes = if ($siteConfig -and $siteConfig.opentext -and $siteConfig.opentext.excludeProfiles) { - @($siteConfig.opentext.excludeProfiles) -} else { - @('WJ_Office.hep', 'IBM_qks.hep', 'mmcs.hep') # West Jefferson defaults -} -$shortcutExcludes = if ($siteConfig -and $siteConfig.opentext -and $siteConfig.opentext.excludeShortcuts) { - @($siteConfig.opentext.excludeShortcuts) -} else { - @('WJ_Office.lnk', 'IBM_qks.lnk', 'mmcs.lnk') -} -if ($siteConfig) { - Write-SetupLog "Site config loaded - profile excludes: $($profileExcludes -join ', ')" - Write-SetupLog "Site config loaded - shortcut excludes: $($shortcutExcludes -join ', ')" -} else { - Write-SetupLog "No site-config.json found - using West Jefferson defaults for excludes" -} - -# Map of source subdir -> destination subdir relative to the Hummingbird root. -# Optional Exclude list drops specific filenames from both the source-to-dest -# copy AND from the destination if they were left over from a prior install. -$contentMap = @( - @{ - Src = 'Profile' - Dst = 'Profile' - Exclude = $profileExcludes - } - @{ Src = 'Accessories\EB'; Dst = 'Accessories\EB' } - @{ Src = 'HostExplorer\Keymap'; Dst = 'HostExplorer\Keymap' } - @{ Src = 'HostExplorer\Menu'; Dst = 'HostExplorer\Menu' } -) - -function Copy-HummingbirdContent { - param( - [string]$RootDst, # Hummingbird root, e.g. C:\ProgramData\Hummingbird\Connectivity\15.00\Shared - [string]$Label - ) - foreach ($entry in $contentMap) { - $srcPath = Join-Path $SourceDir $entry.Src - if (-not (Test-Path $srcPath)) { continue } - $dstPath = Join-Path $RootDst $entry.Dst - New-Item -Path $dstPath -ItemType Directory -Force | Out-Null - - # Remove any previously-deployed excluded files from the destination - # - handles the case where a PC got them from an older install. - if ($entry.Exclude) { - foreach ($name in $entry.Exclude) { - $stale = Join-Path $dstPath $name - if (Test-Path -LiteralPath $stale) { - try { - Remove-Item -LiteralPath $stale -Force -ErrorAction Stop - Write-SetupLog " $Label : removed stale $name" - } catch { - Write-SetupLog " $Label : failed to remove $stale : $_" - } - } - } - } - - $files = Get-ChildItem -Path $srcPath -File -ErrorAction SilentlyContinue - if ($entry.Exclude) { - $files = @($files | Where-Object { $entry.Exclude -notcontains $_.Name }) - } - foreach ($f in $files) { - Copy-Item -Path $f.FullName -Destination $dstPath -Force - } - Write-SetupLog " $Label : $($entry.Src) -> $dstPath ($($files.Count) files)" - } -} - -# 3a. ProgramData Shared -$sharedRoot = Join-Path $env:ProgramData 'Hummingbird\Connectivity\15.00\Shared' -Copy-HummingbirdContent -RootDst $sharedRoot -Label 'Shared' - -# 3b. Default User (template for new user profiles) -$defaultUserRoot = 'C:\Users\Default\AppData\Roaming\Hummingbird\Connectivity\15.00' -Copy-HummingbirdContent -RootDst $defaultUserRoot -Label 'Default User' - -# 3c. Every existing user profile under C:\Users\ -$skipNames = @('Default', 'Default User', 'Public', 'defaultuser0', 'All Users', 'WDAGUtilityAccount') -$userDirs = Get-ChildItem 'C:\Users' -Directory -ErrorAction SilentlyContinue | - Where-Object { $skipNames -notcontains $_.Name -and (Test-Path "$($_.FullName)\AppData\Roaming") } - -foreach ($u in $userDirs) { - $userRoot = Join-Path $u.FullName 'AppData\Roaming\Hummingbird\Connectivity\15.00' - Copy-HummingbirdContent -RootDst $userRoot -Label $u.Name -} - -# --- Step 4: Public Desktop shortcuts --- -# Uses $shortcutExcludes (resolved from site-config.json above) to skip -# deploying unwanted .lnk files AND remove any a prior install left behind. -Write-SetupLog "" -Write-SetupLog "Step 4: Deploying public desktop shortcuts..." -$shortcutSrc = Join-Path $SourceDir 'W10shortcuts' -$publicDesktop = 'C:\Users\Public\Desktop' - -# Clean up stale copies from prior installs first -foreach ($name in $shortcutExcludes) { - $stale = Join-Path $publicDesktop $name - if (Test-Path -LiteralPath $stale) { - try { - Remove-Item -LiteralPath $stale -Force -ErrorAction Stop - Write-SetupLog " removed stale desktop shortcut: $name" - } catch { - Write-SetupLog " failed to remove stale $stale : $_" - } - } -} - -if (Test-Path $shortcutSrc) { - $lnkFiles = Get-ChildItem -Path $shortcutSrc -Filter '*.lnk' -File -ErrorAction SilentlyContinue - foreach ($l in $lnkFiles) { - if ($shortcutExcludes -contains $l.Name) { - Write-SetupLog " skip (excluded): $($l.Name)" - continue - } - Copy-Item -Path $l.FullName -Destination $publicDesktop -Force - Write-SetupLog " $($l.Name) -> $publicDesktop" - } -} - -# --- Step 5: Write registry marker --- -Write-SetupLog "" -Write-SetupLog "Step 5: Writing registry marker..." -if (-not (Test-Path $markerKey)) { - New-Item -Path $markerKey -Force | Out-Null -} -Set-ItemProperty -Path $markerKey -Name $markerVal -Value $expectedVersion -Force -Set-ItemProperty -Path $markerKey -Name 'InstalledAt' -Value (Get-Date -Format 'o') -Force - -Write-SetupLog "" -Write-SetupLog "================================================================" -Write-SetupLog "=== OpenText HostExplorer ShopFloor $expectedVersion deployed ===" -Write-SetupLog "================================================================" -exit 0 diff --git a/playbook/preinstall/opentext/version.txt b/playbook/preinstall/opentext/version.txt deleted file mode 100644 index 32979d9..0000000 --- a/playbook/preinstall/opentext/version.txt +++ /dev/null @@ -1 +0,0 @@ -15.0.SP1.2 diff --git a/playbook/preinstall/oracle/Install-Oracle11r2.cmd b/playbook/preinstall/oracle/Install-Oracle11r2.cmd deleted file mode 100644 index c2d6893..0000000 --- a/playbook/preinstall/oracle/Install-Oracle11r2.cmd +++ /dev/null @@ -1,113 +0,0 @@ -@echo off -REM Install-Oracle11r2.cmd -REM Expands the GE Oracle Client 11.2 Administrator zip to a temp dir and -REM runs Oracle Universal Installer silently with the GE-customized -REM response file. -REM -REM Accepted zip locations (first hit wins): -REM %~dp0Oracle_OracleDatabase_11r2_V03.zip (preinstall flat) -REM %~dp0..\apps\Oracle_OracleDatabase_11r2_V03.zip (SFLD share, enforcer) -REM -REM Called by: -REM - preinstall runner (Type=EXE, image build time) -REM - Install-FromManifest.ps1 (Type=CMD, runtime enforcer) -REM -REM Oracle 11.2 OUI exit codes worth knowing: -REM 0 = success -REM 3 = success but with warnings -REM 1 = general failure -REM 6 = silent install requested but missing / bad response file - -setlocal enabledelayedexpansion -set "LOG=C:\Logs\OracleClient\install.log" -if not exist "C:\Logs\OracleClient" mkdir "C:\Logs\OracleClient" - -REM Emit a datestamp -for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value 2^>nul ^| find "="') do set LDT=%%I -set "STAMP=!LDT:~0,14!" - -echo [%STAMP%] Install-Oracle11r2.cmd starting >> "%LOG%" - -set "SRC_ZIP=%~dp0Oracle_OracleDatabase_11r2_V03.zip" -if not exist "%SRC_ZIP%" set "SRC_ZIP=%~dp0..\apps\Oracle_OracleDatabase_11r2_V03.zip" -set "STAGING=%TEMP%\oracle-11r2-install" -set "CLIENT_DIR=%STAGING%\Oracle_OracleDatabase_11r2_V03\client" -set "RSP=%CLIENT_DIR%\response\ge_client_install.rsp" - -if not exist "%SRC_ZIP%" ( - echo [%STAMP%] ERROR: zip not found at %SRC_ZIP% >> "%LOG%" - echo ERROR: zip not found at %SRC_ZIP% - exit /b 2 -) - -echo [%STAMP%] Expanding %SRC_ZIP% to %STAGING% >> "%LOG%" -if exist "%STAGING%" rmdir /s /q "%STAGING%" >nul 2>&1 -mkdir "%STAGING%" -powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^ - "try { Expand-Archive -Path '%SRC_ZIP%' -DestinationPath '%STAGING%' -Force -ErrorAction Stop; exit 0 } catch { Write-Error $_; exit 1 }" ^ - >> "%LOG%" 2>&1 - -if not exist "%CLIENT_DIR%\setup.exe" ( - echo [%STAMP%] ERROR: expanded setup.exe not found at %CLIENT_DIR%\setup.exe >> "%LOG%" - exit /b 3 -) - -if not exist "%RSP%" ( - echo [%STAMP%] ERROR: response file missing at %RSP% >> "%LOG%" - exit /b 4 -) - -echo [%STAMP%] Running OUI silent install (this takes 2-8 minutes) >> "%LOG%" -"%CLIENT_DIR%\setup.exe" -silent -waitforcompletion -nowait ^ - -ignoreSysPrereqs ^ - -responseFile "%RSP%" >> "%LOG%" 2>&1 -set RC=%ERRORLEVEL% - -echo [%STAMP%] OUI exit code: %RC% >> "%LOG%" - -REM --- Drop GE-customized tnsnames.ora / sqlnet.ora / ldap.ora into ORACLE_HOME. -REM The zip ships these in client\ora\ but Oracle's setup.exe does not consume -REM them - that copy is the GE Wise wrapper's job, which we bypass. Without -REM these, every Oracle-dependent app (eDNC/UDC/NTLARS/CMM tooling) fails with -REM ORA-12154 "TNS could not resolve the connect identifier specified". -REM -REM Per-file override: if %~dp0.ora exists (deployed alongside this -REM wrapper on the PXE server / SFLD share), use it instead of the bundled -REM copy. Lets us push an updated tnsnames.ora without repackaging the zip. -REM -REM Only run when OUI succeeded (RC 0 or 3). On failure ORACLE_HOME may not -REM be fully populated and the copy targets may not exist. -if %RC%==0 goto :do_ora_copy -if %RC%==3 goto :do_ora_copy -goto :skip_ora_copy - -:do_ora_copy -set "ORA_DST=C:\Apps\product\11.2.0\client_1\network\admin" -if not exist "%ORA_DST%" ( - echo [%STAMP%] WARN: %ORA_DST% does not exist after OUI - skipping .ora copy >> "%LOG%" - goto :skip_ora_copy -) -for %%F in (tnsnames.ora sqlnet.ora ldap.ora) do ( - set "ORA_SRC=%~dp0%%F" - if not exist "!ORA_SRC!" set "ORA_SRC=%CLIENT_DIR%\ora\%%F" - if exist "!ORA_SRC!" ( - echo [%STAMP%] Copying %%F from !ORA_SRC! to %ORA_DST%\%%F >> "%LOG%" - copy /Y "!ORA_SRC!" "%ORA_DST%\%%F" >> "%LOG%" 2>&1 - ) else ( - echo [%STAMP%] WARN: %%F not found in either %~dp0 or %CLIENT_DIR%\ora >> "%LOG%" - ) -) - -:skip_ora_copy - -REM Cleanup staging dir to reclaim ~1.5 GB - OUI copies everything to ORACLE_HOME -echo [%STAMP%] Cleaning up staging dir >> "%LOG%" -rmdir /s /q "%STAGING%" >nul 2>&1 - -REM OUI returns 0 for success, 3 for success-with-warnings. Treat both as OK. -if %RC%==3 ( - echo [%STAMP%] OUI reported warnings but install succeeded - returning 0 >> "%LOG%" - exit /b 0 -) - -exit /b %RC% diff --git a/playbook/preinstall/oracle/tnsnames.ora b/playbook/preinstall/oracle/tnsnames.ora deleted file mode 100755 index 00499a3..0000000 --- a/playbook/preinstall/oracle/tnsnames.ora +++ /dev/null @@ -1,12173 +0,0 @@ -# changed 7/19/11 -#/############# -# Filename......: tnsnames.ora -# Date..........: 11-May-2010 -# -# - Added CP Dev and prod Env -# - Added database for DMS2 -# - Changes For CP OE -# - Add domain ae.ge.com -# - Changes For cp_prot0 -# - Added Db ge_dds1 -# - Added Db ge_prd3 -# - Added Db ge_evsfc -# - Added Db ge_pds1,saro,edm1geae -# - Added Db cp_qatrn -# - Added Db ge_wild,lyn_prd1 -# - Added Db d1stars,p1stars (Corp Start System) -# - Added Db pg_bse02 -# - Added Db sing_prd,sing_osb,sing_ebu -# - Added Db wales_dw -# - Added Db ge_trn1 -# - Added Db ge_qa1 -# - Added Db ge_msn -# - Added Db ge_dev4 -# - Added Db evncpeo1 -# - Added Db evncpar1 -# - Added Db EVNDSSQ2 -# - Added Db evndssq3 -# - Added Db evndssq1 -# - Added iman_tst 19-march-98 : Adam Pope -# - Added el_paris 24 April 98 -# - Added lynoltp1 24 April 98 -# - Added evnapwd1 1 June 98 : Adam Pope -# - Added evnapwp1 1 June 98 -# - Added evnapwt1 1 June 98 -# - Added cp_clm 7 July 98 -# - Added sincpao1 27/8/98 APH -# - Added evncpmo1 27/8/98 APH -# - Added SRP Engine Services Instances (evncpe[d1,d2,u1,q1,t1]) -# - Added wilsfcp1 11/16/98 psp -# - Added evndssd4 12/02/98 cec -# - Added OEORPC_evncped1 12/03/98 cec -# - Added evnosbq1 12/7/98 cec -# - Added evnosbd1 evncpec1 oeorpc_cert 01/07/99 cec -# - Added evnoltd1 01/21/99 cec -# - Added calfdwd, calfdwq1, calnfdwp1, calcpao1, calcpad1, -# calcpaq1, calcpap1, sinfdwd1, sinfdwq1, sinfdwp1, -# sincpao1, sincpad1, sincpaq1, sincpap1, malcpap1, -# malfdwp1 per andy hagenmaier - 01/25/99 cec -# -Added rutoltp1, sinoltd1, sinoltp1, alboltp1, hokoltp1, -# evnoltq1, alpsvr_evncps, alpsvr_evncfm, alpsvr_evnge9, -# alpsvr_evncf6, alpgld_evncps, alpgld_evncfm, alpgld_evnge9, -# alpgld_evncf6, FNDFS_bsp01, FNDFS_bsp02, FNDFS_bsing1, -# FNDFS_bsing2, FNDFS_bsmal01, FNDFS_bsc01, FNDFS_bsc02, -# celfdwd1, celfdwq1, celfdwp1, celcpao1, celcpad1, -# celcpaq1, celcpap1 per Adam Pope - 02/09/99 cec -# -Chged lynoltp1 from bs102 to bsl01 - 03/15/99 cec -# -Added evndssq4 - 03/19/99 cec -# -Chged FNDFS_bsmal01, malosbp1 and maloltp1 to host of bsmal01 - 03/24/99 cec -# -Added evnoltp1 - 03/24/99 cec -# -Added evncpep1 - 04/04/99 cec -# -Chged calnfdwp1 to calfdwp1 - 04/16/99 cec -# -Added evncpeq2 - 04/23/99 - psp -# -Added rutoltp2 and evnoltp2 - 05/06/99 cec -# -Added maloltp1 and malosbp1 back to file as they were missing - 05/25/99 cec -# -Chged host for celfdwp1 from bsc02 to bsc01 -# Added evndssp4 05/27/99 cec -# Added malosbd1 06/03/99 cec -# Chged host on geasoosb from bsing1 to bsing2 06/03/99 cec -# host on evndssq3 from bse02 to bse01 06/03/99 cec -# Chged host on celfdwd1, celfdwq1 from bsc01 to bsc02 06/14//99 tjs -# host on celcpao1, celcpad1, celcpaq1 from bsc01 to bsc02 06/14/99 tjs -# host on celfdwp1, celcpap1 from bsc02 to bsc01 06/14/99 tjs -# Added RRA_bse01, RRA_bsing1, RRA_bsing2, RRA_bsmal01, -# RRA_bsc01, RRA_bsc02 06/14/99 tjs -# Added tmark 07/06/99 cec -# Added elnoltp1 07/12/99 cec -# Added evncpaq2, RRA_bse15, evnapwt2, FNDFS_bse15, OEORPC_bse15 7/14/99 tjs -# Added test items - remove 8-15-99 7/27/99 cec -# Added prod, mktg, jta, jtb, jtc and jtx for Johnson Technology 08/03/99 cec -# Added evncpap1 08/03/99 cec -# Chged host on evnapwp1, evnapwt1 08/12/99 tjs -# Chged host/sid on cp_prd 08/12/99 tjs -# Added RRA_BSE16 08/12/99 tjs -# Remvd evncpaq2, evnapwt2, FNDFS_bse15, 08/12/99 tjs -# OEORPC_bse15, "test items" -# Added evnoltp3 08/31/99 cec -# Added evndssd3 09/23/99 cec -# Added dbcia, dbvrg 09/24/99 cec -# Added HDSK 10/04/99 cec -# Added namaster, naextranet, naintranet 10/05/99 cec -# Revision by Rich Richardson 10/15/99 cec -# Added cia, vrg, pg_bsc01, celapwp1, celapwd1, celapwt1, ramses_hmmp 10/22/99 rr -# Added patorcl.corporate.ge.com and patty.corporate.ge.com 10/26/99 cec -# Added evnmrd1 and evncrmd1 10/29/99 cec -# -# Added Singapore and Malaysia Entries For Consistency 11/3/99 R.Richardson -# -# Added Lynn,Albaquerque,Hookset and Wilmington OLTP2 entries 11/4/99 -# Added d1crp1s entry 11/4/99 R.Richardson -# -# Added Test HA Entries For Production Databases R.Richardson 11/8/99 -# Added Callout Name Into List R.Richardson 11/8/99 -# Added OSB Temp Database Name Into List R.Richardson 11/8/99 -# Added Full Prestwick List R.Richardson 11/8/99 -# Modified , # Modified .ae.ge.com extentions on oltp2 alb,rut,wilsfc instances -# Added Net Analysis Entries -# Added EVNCLMP1 database for Apps Integrity -# R.Richardson 11/10/99 -# Added entry for EVNDMSD1 Rich Richardson 11/10/99 -# Added UNIX callout entry 11/15/99 R.Richardson -# Updated NetAnalysis Entries And Removed Duplicates 11/15/99 R.Richardson -# Added corporate entries and updated base evnosbt1 entry 11/16/99 R. Richardson -# Added E-Commerce Entry evnecod1 11/17/99 R.Richardson -# Added entry for evndmsd1 11/18/1999 R.Richardson -# Dropped ge_prd2 entries 11/19/1999 R. Richardson -# Updated Port Entries 11/19/1999 R. Richardson -# Updated host Entries For Testing 11/23/1999 R. Richardson -# Added entry for Madsfcp2 11/24/1999 R. Richardson -# Updated HA testing Entries 11/29/99 R. Richardson -# Added entry for MRO v1.3 12/1/1999 R. Richardson -# Added entries for bseh01/Corporate and Cleanup of EVNOLTP databases 12/6/1999 -# R. Richardson -# Updated Entry for EVNOSBT1 R.Richardson -# Added ECommerce entry R.Richardson 12/8/1999 -# Updated bseh02 entry R.Richardson 12/15/1999 -# Updated naintranet entry to reflect new location 1/6/2000 -# Added entries for p1ssp1, FND_corpp032,jtitis R.Richardson 1/12/2000 -# Added entries for evnecoq1 and sinfdw R.Richardson 1/12/2000 -# Updated sinfdwp1 entry, incorrect format R.Richardson 1/18/2000 -# Added entry for elatst R.Richardson 1/18/2000 -# Added entry for evncrmq1 R.Richardson 1/24/2000 -# Updated Prestwick FND entries R.Richardson 2/10/00 -# Added entry for evnoltp8, R. Richardson 2/10/00 -# Added entry for evncrmp1, R. Richardson 2/16/00 -# Added entry for evncprg1, R. Richardson 3/3/00 -# Updated entry for RRA_bse01, R. Richardson 3/3/00 -# Added entries for d1ss corporate, R. Richardson 3/6/00 -# Updated corporate entries format, R. Richardson 3/7/00 -# Added entry for Hungarian MRO database, R. Richardson 3/14/00 -# Updated evnecoq1 database entry, R.Richardson 3/19/00 -# Added entry for Elano, elatpro, R. Richardson 3/21/00 -# Changed ae.ge.com to corporate.ge.com for TMARK, PATTY and PATORCL C. Carson 3/23/99 -# Added entry for monitoring database evnmonp1, R. Richardson 3/27/00 -# Updated cp_dev and added an entry for evncpdr1, R.Richardson 3/29/00 -# Updated STAR instances to reflect corporate.ge.com, C. Carson 3/30/00 -# Updated ADE instances to reflect corporate.ge.com CEC 4/7/00 -# Added entry for evnoltd2, Rich Richardson 4/7/00 -# Added entries for new cluster testing, this will be removed, Rich Richardson 4/20/00 -# Cleanup entries for duplicates and bad formatting, Rich Richardson 4/24/00 -# Added evnescd1 and fixed several unbalanced parentheses problems wc 4/28/00 -# Added FNDFS_bsb01,OEORPC_huncpep1,huncpep1,hunoltp1,FNDFS_huncpeq1,huncpeq1,hunoltq1,OEORPC_huncpeq1 WC - 04/28/00 -# fixed the host probelm for idb_dp1_ether WC 05/02/00 -# Added and changed instances for Elano and added a test instance for supply chaian - SR040A -# Added a new entry for ODS - evnodsd1 05/15/2000 WC -# Change port from 1521 to 1526 for calcpap1 and added naenigma - WC 05/25/00 -# Added a new entry for ODS Production - evnodsp1 05/27/2000 WC -# Added a new entry for evnoltq2 05/31/2000 WC -# Added a new entry for evndssd5 and RRA_bse03 06/12/2000 WC -# Added a new entry for nrtosbp1 06/12/2000 WC -# Added new entries for APS Development 06/13/2000 WC -# Added new entries for RRA_bseha00/RRA_bseha00 and removed RRA_bse15,bse16 06/15/2000 WC -# Added a new entry for evncrmr1 06/21/2000 WC -# Added a new entry for RRA_bse15 and removed multiple ports for RRA_bseha00/_bseha01 06/22/2000 WC -# Added a new entry for OEORPC_evncpap1 06/22/2000 WC -# Added new entries for Centerpiece on bseq01 06/29/2000 WC -# Added new entry hunosbp1 for Hungary OSB 06/30/2000 WC -# Added evnapsd2, evncpad1, evnecod2 ETR -# Added new entry evnosbp2 for OSB 07/21/2000 WC -# Added new entry evnapsa1 for OSB 07/26/2000 WC -# Added new entries for CORP. HR 08/01/2000 WC -# Added new entries for evnodsp2 and evnfltt1 08/03/2000 WC -# Added new entry evnosbp3 for OSB 08/10/2000 WC -# Added new entry evnodsq1 for evnodsq1 08/21/2000 WC -# Added new entry evnodsd1 for evnodsd1 08/21/2000 WC -# Added new entry evnes911 09/07/2000 WC -# Added new entry wiloltq1 09/19/2000 WC -# Added new entry ajaoltq1 09/19/2000 WC -# Added new entry japcpeo1 and egtcped1 09/19/2000 WC -# Added new entry evnoltq5 09/24/2000 WC -# Added new entry naminternet 10/02/2000 WC -# Added new entry nasintranet 10/02/2000 WC -# Added new entries ajasrpd1/ajasrpq1 10/02/2000 WC -# Updated evnosbp2/evnosbp3 -# Added evnoltp9 10/30/2000 WC -# Added ajasrpq1 11/01/2000 WC -# Added lynoltq1 11/02/2000 WC -# Added evnoltda 11/03/2000 WC -# Changed sinosbtr to ajaosbq1 11/28/2000 WC -# Added evncpad2 11/28/2000 WC -# Added evnoltq9 11/28/2000 WC -# Added evnosbq2 11/28/2000 WC -# Added evnoltd9 11/28/2000 WC -# Added evnoltpa 12/05/2000 WC -# Added ajasrpt1 12/11/2000 WC -# Added alboltq1 12/11/2000 WC -# Added a bunch of ADC new entries 01/04/2001 WC -# Fix server name for evncpdr1 01/18/2001 WC -# Fix port numer problems for asiosbp1 and ajaosbp1 01/22/2001 WC -# Added evnapsbs 01/26/01 WC -# Fixed port number for amaosbp1 02/01/2001 WC -# Added entry for ajasrpo1 02/01/2001 WC -# Added entry for evncpaq2 02/05/2001 WC -# Added entry for egtcpmp1 02/06/2001 WC -# Added entry for evnoltp1_n,evnoltp2_n,evnoltp5_n 02/07/2001 WC -# Added entry for ajaoltp2 02/20/2001 WC -# Added entry for evnoltp6_n 02/22/2001 WC -# Added entry for aema 02/22/2001 WC -# Added entry for egtcpmq2 02/23/2001 WC -# Added entry for FNDFS_bseha00/FNDFS_evncpap1 02/28/2001 WC -# Added entry for ajasrpp2 03/14/2001 -# Made changes to FNDFS_bsaha10/FNDFS_bsaha11 and port # for amaerpp1 WC -# This change made on 03/16/2001 -# Added entry for evnapsq1 03/26/2001 WC -# Added entry for evnedwd1 03/28/2001 WC -# Added entry for axioltq1/axioabq1 03/28/2001 WC -# Changed entries for evnoltq1, evnoltq2 and evnoltq5/ge_uat1 04/01/2001 -# Disabled Alias for GE_UAT1 -# Added evnoltq9_p for private network 04/03/2001 WC -# Added evncrmq2/evncrmq3 04/03/2001 WC -# Correct ge_uat1 04/04/2001 WC -# Added/change MRO entries 04/05/2001 WC -# Added evnodsq2 04/07/2001 WC -# Corrected entry for evnapwd1(moved from bse29 to bsed09) WC 04/09/2001 -# Added new entries: asiodsd1 and asicrsq1 WC 04/10/2001 -# Change alias naminternet to point to evncrmq1 WC 04/11/2001 -# Added an entry for dw02 and evnoltqa WC 04/12/2001 -# Changed host for hokoltp1/hokoltp2 to bsh02 WC 04/12/2001 -# Changed host for rutoltp1/rutoltp2/rutoltp3 to bsr02 WC 04/17/2001 -# Added evnapsd3/trioltp1 04/18/2001 WC -# Added DAM 04/19/2001 WC -# Added axisrpq1 04/20/2001 WC -# Added calfdwp1 and calapwp1 and evnrdwp1 04/25/2001 WC -# Added axisrpt1 and FNDFS_bsadcd01 05/02/2001 WC -# Added FNDFS_bseq01 05/03/2001 -# Added aliase for evnapsp1_n, FNDFS_bseha40_n and FNDFS_bseha41 05/08 WC -# Added more entries for Hoksett and Rutland 05/11/01 WC -# Added axisrpp1 and evnapst1 05/17/01 WC -# Added dbsimv 05/23/01 WC -# Added entry for FNDFS_bseha01 05/25/2001 WC -# Changed alias naminternet to point to evnoltp2 WC 05/31/2001 -# Added new entry - evncpaq3/evnedwq1 06/06/2001 WC -# Added new entry - evnmond1 06/07/2001 WC -# Changed entries for hokoltp1 and hokoltp2 06/12/2001 WC -# Added axioltp1 and axiosbp1 06/13/2001 WC -# Added entries for bseha20/21 move 06/14/2001 WC -# Added new entries for elano and madsonville 06/15/2001 WC -# Changed rultladn entries for upgrades 06/21/2001 WC -# Added new entries for Corporate HR systems 06/27/2001 WC -# Added evncpap1_n and evnoltp3_n 07/05/2001 WC -# Added evnapsq2 07/10/2001 WC -# Added OEORPC_evncpap1_n, EORPC_evncpap1_n and FNDFS_evncpap1_n 07/11/01 WC -# Added ge_msn2 07/13/01 WC -# Added evnmonp3 and ge_bdw_n, evndssp4_n and ge_pds1_n 07/18/01 WC -# Changed port number for evnapsq2/evnedwq1 07/19/01 WC -# Corrected entry for VRG 07/23/01 WP -# Changed hostname and port number for evnclmp1 07/14/01 WC -# Changed entry for Pay4win per Chuck C. 08/02/01 WC -# Updated evncpad1: it changed host and port number 08/07/01 WC -# Added edaoltq1 08/08/01 SLS -# Added evnecop1_n, evncrmp1_n, evnapwp1_n, evnoltp9_n and evnodsp2_n 08/09/01 SLS -# Added evnrdwq1 08/13/01 SLS -# Added evncpat1 and revised evnapst1 08/15/01 SLS -# Added eloltp4 per request from Randy Wiseman of Elano 08/21/01 SLS -# Revised evnapsd1 per Robert Folmer 08/22/01 SLS -# Deleted evnecod2 per CR# 1638 08/23/01 SLS -# Revised asiodfp1 per Senthil Kumar 08/27/01 SLS -# Added evnapwx1 per Charlie Gay 08/27/01 SLS -# Added evnclmd1 per CR# 1757 08/27/01 SLS -# Revised evncpeq2 08/29/01 SLS -# Added evncpaq1 per CR# 1811 08/29/01 SLS -# Added strwfp1 per CR# 1946 09/04/01 SLS -# Added asicrsp1 and adcmonp1 per Senthil Kumar 09/07/01 SLS -# Added evnosbq3 per Ken Fleenor 09/10/01 SLS -# Revised lynoltq1 09/13/01 SLS -# Added genesis 09/20/01 SLS -# Added hokoltq1 and rutoltq1 09/24/01 SLS -# Revised evnapsp1 per CR# 2561 09/24/01 SLS -# Deleted madsfcp1 and madsfcp2 09/24/01 SLS -# Added dbsim per Craig Riggs 09/24/01 SLS -# Revised aema per CR# 2433 09/25/01 SLS -# Added geae per Service Call 117770 09/26/01 SLS -# Added FNDFS_bseqh50 09/27/01 SLS -# Removed axisrpt1, sinapwt1, asiodsd1 per Senthil Kumar 10/01/01 SLS -# Added evnbscq1 per CR#2777 10/01/01 SLS -# Revised evnapsq1 per CR# 2849 10/02/01 SLS -# Added OEORPC_bseqh50 per Service Call 122626 10/02/01 SLS -# Added edaoltp1 per Victor Kuo 10/05/01 SLS -# Revised edaoltp1 to change hostname 10/08/01 SLS -# Added evnoltq6 and evnoltqb per Dave Corni 10/08/01 SLS -# Added evnapwp2 per CR# 2899 10/08/01 SLS -# Added evnoltq3 per Dave Corni 10/09/01 SLS -# Added eloltp5 and revised eloltp3 per Chuck Carson 10/10/01 SLS -# Added evnifsl1 per CR# 3113 10/11/01 SLS -# Added ucpt per CR# 3241 10/16/01 SLS -# Revised evnapsp1 per CR# 3321 10/18/01 SLS -# Added evnifsd1 per CR# 3362 10/19/01 SLS -# Added evnbscp1 per CR# 3368 10/23/01 SLS -# Revised adctoop1 port 1523 per Weiping Cai 10/23/01 SLS -# Added evnapwl per Weiping Cai 10/24/01 SLS -# Added evnbscp1 per service call 138980 11/1/01 SLS -# Deleted evncrmq2/evncrmq3 per Weiping Cai 11/05/2001 SLS -# Revised evncrmq1 per CR# 3884 11/06/01 SLS -# Added evnoltq8 11/08/01 SLS -# Added stridb per Weiping Cai 11/12/01 SLS -# Deleted cp_dev, cp_qa, evnapsa1, evnapsb1, evnapsd3, evnapsq2, -# evncpaq3, evncpar1, evncpeo1, evncped2, evncpeu1, evncplt1, -# evnapwt1 and evnedwq1 per Weiping Cai 11/15/01 SLS -# Added evnifsq1 per Dave Corni 11/16/01 SLS -# Added evnoltpc per CR# 11/20/01 SLS -# Revised evncprg1 per CR 4431 11/28/01 SLS -# Added evnifsp1 per CR# 3823 11/29/01 SLS -# Added evnoltqc per CR# 3618 12/06/01 SLS -# Added madoltq1 per CR# 4731 12/06/01 SLS -# Added edw and wips per SC# 158968 12/10/01 SLS -# Added RRA_bsahaq00, FNDFS_bsahaq00, amaerpq1, amaoltq1, amasrpq1, -# amaosbq1, amaodfq1 and adctooq1 per Senthil Kumar 12/10/01 SLS -# Added evncpaf1, evnapsf1 and revised evnapst1 per WO# 5882 12/13/01 SLS -# Corrected entry for genesis 12/19/01 SLS -# Revised entry for evnapsp1 per Rob Folmer 12/20/01 SLS -# Added elhdsk and deleted hdsk per Randy Wiseman 12/21/01 SLS -# Revised amaodfp1 per Senthil Kumar 12/31/01 SLS -# Revised ge_wh1 per SLS 02/01/02 -# Added evnlab81 per CR# 5699 SLS 02/06/02 -# Added evnlab73 per CR# 5700 SLS 02/07/02 -# Revised evnifsq1 per WO# 7436 SLS 02/08/02 -# Revised evnoltqc per WO# 7437 SLS 02/08/02 -# Added test734 per WC SLS 02/11/02 -# Added evnoltpd and evnodsq2_n SLS 02/12/02 -# Revised evnlab81 and evnlab73 per CR# 6451 and 6452 per SLS 02/15/02 -# Added evnoltq9_n per SLS 02/15/02 -# Added evnecoq1_n per SLS 02/18/02 -# Deleted evnapsbs, evncpdr2, evnapsd2, evnbasd1, evnsdpd1, -# evnpchd1 and evncpat2 per WO# 7807 SLS 02/21/02 -# Added test817 per CR# 6256 SLS 02/25/02 -# Revised evnoltq6 per WO# 7822 SLS 02/26/02 -# Revised evnifsl1 per CR# 5721 SLS 02/27/02 -# Added evnoltq7 SLS 02/27/02 -# Added evnodsp1_r SLS 02/28/02 -# Added evnapwq1 per WO# 8163 SLS 03/05/02 -# Added prod_R2IA53 per SC# 208428 SLS 03/06/02 -# Added asimonp1 and eurmonp1 SLS 03/07/02 -# Added evnodsp1_n SLS 03/13/02 -# Deleted evnoltq8 and evndssq1 per Vic Gagnon SLS 03/21/02 -# Deleted evncpdr1 per CR# 7449 SLS 03/22/02 -# Revised evnodsp1_n and added evnodst1 per CR# 7627 SLS 03/28/02 -# Added evnoltdb test9i 03/29/02 -# Revised evnodsp1_n SLS 04/01/02 -# Added evnoltd6 per CR# 7537 SLS 04/02/02 -# Revised ge_wh1 and added evnodsp5 CR# 7676 SLS 04/05/02 -# Revised ajaosbq1, ajaoltq1 and ajasrpq1 per S.Kumar SLS 04/09/02 -# Added evnoltd2x per CR# 7545 SLS 04/12/02 -# Added saros_n per CR# 7573 SLS 04/12/02 -# Added evnemct1 and evnemct2 for EMC testing SLS 04/12/02 -# Revised ge_msn per CR# 8211 SLS 04/16/02 -# Revised elattst SLS 04/16/02 -# Revised evnoltd6 per CR# 8278 SLS 04/18/02 -# Added dalora per WO# 9943 SLS 04/25/02 -# Revised evnoltp8 per WO# .... SLS 04/25/02 -# Added evnmonq1 per CR# 5527 SLS 05/02/02 -# Revised evnoltd2 per CR# 8670 SLS 05/03/02 -# Revised evndssp4, ge_wh1 and evnodsp5 per CR# 8503 SLS 05/11/02 -# Revised evnodsp1 and deleted evnodst1 SLS 05/11/02 -# Added evnodsp3 and evnodsp4 SLS 05/13/02 -# Added entries for 35 QA2 instances SLS 05/15/02 -# Revised evnmonp1 per CR# 8503 SLS 05/16/02 -# Revised evnodsp3 per CR# 8503 SLS 05/19/02 -# Revised evnapsf1 & evncpaf1 SLS 05/28/02 -# Revised evncpeq1 per J.Walthour SLS 06/02/02 -# Revised evnoltpd SLS 06/03/02 -# Added evnifsd2 per CR# 8946 SLS 06/04/02 -# Added evnifsq2 per CR# 8943 SLS 06/04/02 -# Revised evnapst1 per CR# 8900 SLS 06/04/02 -# Unix tnsnames.ora will include dual entries for service name SLS 06/11/02 -# Revised evnoltp7 SDU and TDU values SLS 06/11/02 -# Revised ge_bdw, evndssp2, and evnodsp4 SLS 06/16/02 -# Added evnosbq4 per CR# 9021 SLS 06/27/02 -# Added evnifsp2 per CR# 8945 SLS 07/02/02 -# Added evnosbq5 per CR# 9721 SLS 07/02/02 -# Added evnjded1 per CR# 10003 SLS 07/02/02 -# Revised evnapsd1 per V.Kuo SLS 07/10/02 -# Added evnoltd3 per CR# 10713 SLS 07/10/02 -# Added evnmondx per CR# 9212 SLS 07/15/02 -# Removed duplicate entries per CR# 10927 SLS 07/16/02 -# Added accardi.world per SC# 317709 SLS 07/16/02 -# Added FNDFS_bsepa200 per CR# 11000 SLS 07/18/02 -# Removed ge_uat1 per CR# 7580 SLS 07/18/02 -# Revised evnoltq9 per CR# 11003 SLS 07/23/02 -# Revised evnes911 per CR# 9212 SLS 07/24/02 -# Added evncped2 per CR# 9212 SLS 07/25/02 -# Changed evnmond1 to poit to bsed05 and port 1521 WPC 07/29/02 -# Added FND stuff for MRO WPC 07/31/02 -# Added alias evncped1-new 08/02/02 WPC -# Changed evncped1 to point to bsed05 and removed evncped1-new 08/06/02 WPC -# Changed calcpap1, calcpaq1, calcpad3, calfdwp1, calfdwq1, calapwp1, -# calapxd1, calapxt1, huncpep1, huncpeq1, hunoltp1, hunoltq1, hunosbp1, -# and cfacs per GEAE Europe Infrastructure changes SLS 08/10/02 -# Added/changed FNDFS_bsupa100, FNDFS_bsupa101, OEORPC_huncpeq1, OEORPC_huncpep1, -# calfdwd1 and awlosbp1 per GEAE Europe Infrastructure changes SLS 08/12/02 -# Deleted calcpao1, FNDFS_bsp01, FNDFS_bsp02, FNDFS_bsb01 and FNDFS_huncpeq1 -# per GEAE Europe Infrastucture changes SLS 08/12/02 -# Revised evnosbq1 per CR# 9680 SLS 08/13/02 -# Added evnapwp3 per CR# 11504 SLS 08/14/02 -# Added hunosbq1 per Bhavani Prasad SLS 08/15/02 -# Added evnjdeq1 per CR# 11590 SLS 08/19/02 -# Added evncrmd2 per CR# 11508 SLS 08/20/02 -# Removed evndssp2 SLS 08/27/02 -# Added ngm, ng_external, ng_internal, ng_qa per, nmn_qa2, -# ng_external_qa2, ng_internal_qa2 CR# 12531 SLS 09/04/02 -# Added evnjdep1 per CR# 11592 BJM 09/09/02 -# Revised ge_bdw and evnodsp4 per CR# 12136 BJM 09/15/02 -# Added qvnapwp3 SLS 09/16/02 -# Added evnifst1 per CR# 12778 SLS 09/18/02 -# Revised evnjdeq1 to new port SLS 09/18/02 -# Revised axiosbq1, sincpad1, sincpaq1, sincpeq1, sinoltd1, geasoosb, -# sinapwd1, sinfdwd1, sinfdwq1, asicrsq1 per CR# 12820 SLS 09/18/02 -# Added iss per request. SLS 09/23/02 -# Added evnoltdc per CR# 1528 SLS 09/23/02 -# Added amd1 per SC# 372675 SLS 09/23/02 -# Revised edaoltq1 per SC# 372989 SLS 09/23/02 -# Added asisrpq1, asioltq1, asierpq1, asiodfq1, asiosbq1, RRA_bsaded01, -# asierpd1, asiodfd1 per CR# 13239 SLS 09/26/02 -# Added FNDFS_bsepa201, FNDFS_bsepa202, FNDFS_bsepa205, -# FNDFS_bsepa100, FNDFS_bsepa101, FNDFS_bsepa102, FNDFS_bsepa105 -# per WO# 15881 SLS 09/26/02 -# Added etdstst per CR#13354 BJM 10/01/02 -# Added mimont, migeel, midemo per SC# 380809 SLS 10/03/02 -# Revised entry for prod (Johnson Tech) SLS 10/03/02 -# Added ngm_qa, ng_external_qa and ng_internal_qa per SC# 378576 SLS 10/03/02 -# Added gtsjded1, gtsoltd1, gtsoltd2, gtsoltd3 per SLS 10/06/02 -# Revised ng_external_qa BJM 10/07/02 -# Added qvnoltp1 and qvnodsq1 SLS 10/08/02 -# Deleted all QA2 entries SLS 10/10/02 -# Updated evncpaf1 port number BJM 10/15/02 -# Added ge_etds2 and ge_letds2 SLS 10/17/02 -# Revised dw02 BJM 10/24/02 -# Revised ngm. Deleted nagenet, naenigma, natest, nasintranet per CR# 13749 SLS 10/25/02 -# Removed qvnodsq1 and qvnoltq1 SLS 10/30/02 -# Added faidev, faiqa and faiprod per SC# 406410 SLS 11/04/02 -# Revised evnbscq1, evnapsq1, evncpaq1 per CR# 14065 SLS 12/02/02 -# Revised evnosbq1, evnosbq2, evnosbq3 per CR# 14065 SLS 12/06/02 -# Added evn9idb1 per Weiping Cai SLS 12/10/02 -# Revised evnosbq4 per WO# 20308 SLS 12/11/02 -# Added evnodsq5 per Weiping Cai SLS 16/16/02 -# Deleted evnes911, evncpaq2, evncpeq2 per CR# 15889 & 16017 SLS 12/17/02 -# Revised evnjdeq1 and evnrdwq1 per CR# 15889 SLS 12/19/02 -# Revised evncpeq1 and edaoltq1 per CR# 15889 SLS 01/09/03 -# Deleted OERRPC_bseqh50 and added OEORPC_evncpeq1 per CR# 15889 SLS 01/09/03 -# Deleted FNDFS_bseqh50 and added FNDFS_bseqa103 per CR# 15889 SLS 01/09/03 -# Added FNDFS_bseqa100,101,102,104 per CR# 15889 SLS 01/09/03 -# Added evnoltde per CR# 15815 SLS 01/09/03 -# Revised evnoltqb per CR# 16116 BJM 01/10/03 -# Added evnclmd2 per CR# 15684 SLS 01/13/03 -# Revised evnoltq3 and evnoltqa per CR# 16017 SLS 01/16/03 -# Added evnoltqe per CR# 15815 SLS 01/17/03 -# Revised evncrmq1 per CR# 16455 SLS 01/21/03 -# Revised evnifst1 and evnifsl1 per CR# 16116 SLS 01/21/03 -# Added evnapwq3 per CR# 16117 SLS 01/21/03 -# Revised evnifsl1 per CR# 22140 BJM 01/21/03 -# Revised evnoltq9 per CR# 16058 SLS 01/24/03 -# Revised evnodsq5 per CR# 16112 SLS 1/24/03 -# Revised evnifst1 SLS 01/27/03 -# Revised evnmonq1 per CR# 16488 SLS 01/30/03 -# Deleted evnosbq5 per CR# 15487 SLS 01/30/03 -# Added evnoltpe per CR# 16055 SLS 01/30/03 -# Revised iss to evnissd1 and added evnissp1 per SC# 466197 SLS 01/31/03 -# Added testsid2 per CR# 16965 BJM 01/31/03 -# Revised evnissp1 per SC# 466197 SLS 02/03/03 -# Revised vrg per SC# 468209 SLS 02/03/03 -# Added opas per CR# 17128 SLS 02/04/03 -# Added evncrmq2 per CR# 16455 SLS 02/05/03 -# Added celwebp1 and celwebd1 per SC# 470419 SLS 02/05/03 -# Added evn8lab1 per CR# 16906 SLS 02/05/03 -# Revised evnapwq1 per CR# 16056 SLS 02/06/03 -# Added estoltq1 and eonoltq1 per CR# 16122 SLS 02/10/03 -# Added evndssd6 and deleted evnedwd1 per CR# 16914 SLS 02/11/03 -# Added ewioltq1 and revised wiloltq1 per CR# 16122 SLS 02/12/03 -# Revised evnissd1 per SC# 475822 SLS 02/12/03 -# Revised evnoltq4 and evnoltq7 per CR# 16122 SLS 02/13/03 -# Deleted evncrmr1,evnmrd1,evnosbt1,evncrpd1,evnemct1,evnemct2,evnosbq5, -# evncped2,evncpet1,evncprg1 and rutoltp2 per CR# 17517 SLS 02/14/03 -# Revised celfdwd1,celfdwq1,celfdwp1,celcpao1,celcpad1,celcpaq1,celcpap1, -# celapwp1,celapwd1,celapwt1,dbcia,dbsim,dbvrg,dbsimv,celwebp1,celwebd1, -# RRA_bsc01,RRA_bsc02,FNDFS_bsc01,FNDFS_bsc02 per CR# 16978 SLS 02/20/03 -# Added emcoltq1 per CR# SLS 02/20/03 -# Revised evnecoq1 per CR# SLS 02/21/03 -# Removed obsolete entries evnecoq1_n and evnoltq9_n SLS 02/21/03 -# Revised asierpp1 and deleted RRA_bsing2,FNDFS_bsing2,geasoosb,sinapwd1,sincpad1, -# sincpaq1,sinfdwd1,sinfdwq1,sinoltd1,sincpeo1,sincpeq1,ajarpt1,ajasrpo1, -# and asicrsq1 per CR# 17823 SLS 02/24/03 -# Deleted evnbscq1 and added evndssq6 per CR# 17677 SLS 02/25/03 -# Revised evnodsq1 and evnodsq2 per CR# SLS 02/27/03 -# Revised evndssq6 per WO# 25764 SLS 03/03/03 -# Revised wiloltq1 per CR# 16122 SLS 03/04/03 -# Added evnodsq3 and revised evndssq3 per WO# 26237 SLS 03/06/03 -# Added jtoa and FNDFS_mkg1 per Chuck Carson SLS 03/10/03 -# Deleted RRA_bse15,RRA_bseha01,RRA_bseha00,Rep60_evnapsb1,Rep60_evnapsa1,FNDFS_bseha00, -# FNDFS_bseha01,FNDFS_bseha50,FNDFS_bseha51,evnapsp1_n,FNDFS_bseq01,OEORPC_evncpap1_n, -# EORPC_evncpap1_n,evncpap1_n,FNDFS_evncpap1_n,RRA_bse03,FNDFS_bse03,OEORPC_bse03, -# evncpgt1,evncpgq1,evncpec1,OEORPC_cert,evncped3,evncpeq3,huncpeo1,japcpeo1,egtcped1, -# evncpad2,FNDFS_bsed06,OEORPC_bsed06 per WO# 25861 SLS 03/18/03 -# Revised vrg per SC# 504009 SLS 03/18/03 -# Added asicrsq1 per SC# 504509 SLS 03/19/03 -# Revised evndssq4 per WO# 27611 SLS 03/20/03 -# Added evncrmp2 per CR# 18648 SLS 03/20/03 -# Added T345691 per CR#19614 BJM 04/08/03 -# Revised T345691 wrong host per CR#19614 BJM 04/10/03 -# Revised evnclmd1 per WO# 28138 SLS 04/10/03 -# Added evndssp6 and deleted evnbscp1 per CR# 18384 SLS 04/10/03 -# Added etdstest per CR#19009 BJM 04/16/03 -# Revised evncrmd1 per WO# 30355 SLS 04/18/03 -# Revised evncpat1 per WO# 30108 SLS 04/18/03 -# Revised evnosbd1 per WO# 30362 SLS 04/21/03 -# Revised ge_lbr per WO# 30223 SLS 04/21/03 -# Revised ge_qa1 per WO# 30290 SLS 04/22/03 -# Revised ge_letds2 per WO# 30174 BJM 04/22/03 -# Removed etdstest per WO# 30174 BJM 04/22/03 -# Revised ge_dev1 per WO# 30656 SLS 04/23/03 -# Revised ge_dev2 per WO# 30672 SLS 04/23/03 -# Revised ge_dev4 per WO# 30667 SLS 04/23/03 -# Revised evndssd3 per WO# 30573 SLS 04/23/03 -# Revised evndssd4 per WO# 30609 SLS 04/24/03 -# Revised evndssq2 per WO# 30608 SLS 04/24/03 -# Revised rename calapxt1 to calapwq1 per WO# 30897 BJM 04/25/03 -# Revised evnoltd1 per WO# 26514 SLS 04/25/03 -# Revised evn9ilab per WO# 30334 SLS 05/02/03 -# Removed testsid2, test734, test817 and test9i per WO# 30334 SLS 05/02/03 -# Removed celapwt1, celfdwd1, celcpao1, celcpad1 per JBittencort SLS 05/02/03 -# Revised evn8lab1 per WO# 30335 SLS 05/02/03 -# Revised evnecod1 per WO# 31550 SLS 05/05/03 -# Revised evnmond1 per WO# 32272 SLS 05/08/03 -# Revised evnoltd9 per WO# 32428 SLS 05/12/03 -# Revised amaerpp1, amaoltp1, amasrpp1, ajasrpp2, asicrsp1, asisrpp1, axisrpp1, -# axioltp1, deleted FNDFS_bsaha10 and FNDFS_bsaha11, and added FNDFS_bsaha00, -# FNDFS_bsaha01, RRA_bsaha00 and RRA_bsaha01 per WO# 33360 SLS 05/16/03 -# Revised evnodsd1 per WO# 33311 SLS 05/20/03 -# Revised evnodsd2 per WO# 33872 SLS 05/21/03 -# Added evnodsq4 per WO# 33838 SLS 05/21/03 -# Revised evnodsd1 per WO# none BJM 05/23/03 -# Added ecioltt1 per WO# 34006 BJM 06/03/03 -# Added evndevd1 per WO# 34938 SLS 06/04/03 -# Added evnclmq1 per CR# 19924 SLS 06/05/03 -# Added evnclmq2 per WO# 33435 SLS 06/06/03 -# Added entries for ADC QA2 testing per CR# 22340 SLS 06/10/03 -# Added evnosbt1 per WO#34010, evncpet1 per WO#34013 BJM 06/10/03 -# Revised qdctoop1 per SC #571581 BJM 06/13/03 -# Removed RRA_bsaha10,RRA_bsaha11,RRA2_bsaha10,RRA2_bsaha11,FNDFS_bsaha10, -# FNDFS_bsaha11 per SC #571581 BJM 06/13/03 -# Added RRA_bsadp100,RRA_bsadp101,RRA2_bsadp100,RRA2_bsadp101, -# FNDFS_bsadp100,FNDFS_bsadp101 per SC #571581 BJM 06/13/03 -# Revised evnosbt1 to use physical host BJM 06/26/03 -# Revised evndssd5 per WO# 37743 BJM 06/27/03 -# Revised evnodsd1 per WO# 37862 SLS 06/30/03 -# Revised evnapwd1 per WO# 38067 SLS 06/30/03 -# Revised evnjded1 per WO# 38216 SLS 07/01/03 -# Revised evnodsd2 per WO# 38454 BJM 07/02/03 -# Revised WO# 38402, 38403 Remove Xiamen instances BJM 07/02/03 -# Revised evnoltd2 per WO# 39387 SLS 07/10/03 -# Revised evnoltd3 per WO# 41298 SLS 07/17/03 -# Revised evnifsd1, evnifsd2 per WO# 40647 BJM 07/22/03 -# Revised evncpad1 per WO# 40913 BJM 07/23/03 -# Added GEDW per Service Call 601081 BJM 07/25/03 -# Revised evnoltda per WO# 41760 BJM 07/31/03 -# Revised evnrdwd1 per WO# 42126 SLS 08/05/03 -# Added GAMD per Serivce Call 611708 SLS 08/08/03 -# Revised evncped1 per WO# 43537 BJM 08/14/03 -# Added/deleted ADC Oracle Apps entries per WO# 42217 SLS 08/15/03 -# Removed FNDFS_bsed05/OEORPC_bsed05 and added FNDFS_bsedb103 -# and OEORPC_bsedb103 per WO# 43537 SLS 08/15/03 -# Added evnapwq2 per WO# 31194 SLS 08/15/03 -# Added sim and simv per APIA Request SLS 08/19/03 -# Revised evnoltdb per WO# 42131 BJM 08/19/03 -# Added evneccp1 and evneccq1 per SC# 617874 SLS 08/20/03 -# Added evnapwd2 per WO# 44060 BJM 08/20/03 -# Deleted asicrsp1, asicrsq1, qsierpp1, qmaerpp1, qsiodfp1, qmaodfp1, -# qdctoop1, RRA_bsadp100, RRA_bsadp101, RRA2_bsadp100, RRA2_bsadp101, -# qsiosbp1, qjaosbp1, qmaolsp1, qmaoltp1, qsioltp1, qjaoltp2, qsisrpp1, -# qmasrpp1, qjasrpp2, qsicrsp1, fndfs_bsadp100, fndfs_bsadp101 -# per WO# 44095 SLS 08/20/03 -# Added tstrmnt, tstr9it1, tstr8it1, tstr73t1 for RMAN Testing SLS 08/26/03 -# Deleted evncrmd1 and evncrmq1 per WO# 25623 BJM 08/27/03 -# Added evnapwp4, evnapwp5 and evnapwp6 per CR# 24787 SLS 09/04/03 -# Deleted evndssd5 and added evndssq5 per CR# 24876 SLS 09/04/03 -# Revised evneccq1 to correct a typo email from Rob BJM 09/04/03 -# Added evnclmp2 per WO# 42536 SLS 09/08/03 -# Added prod_gessods.supply.ge.com per WO#46244 BJM 09/08/03 -# Revised RRA_bsahaq01, RRA2_bsaaq01 and FNDFS_bsahaq01 per WO# 46175 SLS 09/11/03 -# Revised evnoltd1 and evnoltd9 per WO# 46552 BJM 09/11/03 -# Revised evnclmq2 per WO# 46770 SLS 09/12/03 -# Revised numerous Asia Data Center entries per SC# 638600 SLS 09/16/03 -# Revised evncpat1, evnecod1 and evndssd3 per CR# 22469 SLS 09/16/03 -# Added evnodsd4 and deleted evndssq2 per CR# 22008 SLS 09/24/03 -# Revised ge_dev4, evnosbd1, evndssd4 per WO# 48211 SLS 10/02/03 -# Revised evndevd1, ge_dev1, ge_dev2 per WO# 49763 BJM 10/09/03 -# Added evndssp5 per CR# 27230 SLS 10/15/03 -# Added evnoltpf per CR# 27228 BJM 10/17/03 -# Removed bad character per SC# 663860 SLS 10/21/03 -# Added qemdb.patni.com per SC# 665065 SLS 10/23/03 -# Removed evncrmp1 per CR# 27278 BJM 10/31/03 -# Added evnrmnp1 per WO# 49133 BJM 10/31/03 -# Added evnrmnp2 per WO# 49130 SLS 11/03/03 -# Revised evncrmd2 per WO# 52592 SLS 11/04/03 -# Added asisrpd1 per CR# 28577 SLS 11/10/03 -# Revised evnapst1 per CR# 28479 SLS 11/12/03 -# Revised rkive per SC# 682911 SLS 11/21/03 -# Revised ngm per CR# 29785 SLS 12/04/03 -# Added evnctpq1 per WO# 54843 SLS 12/05/03 -# Added evnoltd7 and revised ge_dev2 per CR# 29780 SLS 12/10/03 -# Revised ge_dev1,ge_dev4, added evnoltd4, evnoltd5 per WO# 56453 SLS 12/16/03 -# Added evnctpp1 per WO# 54853 BJM 12/19/03 -# Added evnoltqf per WO# 49109 BJM 12/22/03 -# Revised evncpaf1 and evnapsf1 per CR# 28479 SLS 1/2/04 -# Revised evnapsd1 per CR# 28479 SLS 1/5/04 -# Added ecioltd1 and revised ge_lbr per WO# 56791 SLS 1/8/04 -# Added evnoltt6 per WO# 58514 SLS 1/12/04 -# Added ciatd1 per CR# 51466 SLS 1/22/04 -# Added ecioltq1 and revised ge_qa1 per WO# 59847 SLS 1/26/04 -# Added tsoastg1 per Web Team Request (R.Nabb) SLS 2/02/04 -# Added ecioltp1 per CR# 51438 SLS 03/16/04 -# Added elgenep1 per SC# 76418 SLS 03/19/04 -# Added tsotprd1.trans.ge.com per SC# 761755 SLS 03/19/04 -# Revised elnoltp1 per CR# 53980 SLS 03/23/04 -# Added geaesdb per SC# 764253 SLS 03/23/04 -# Revised cia,dbcia per P1 ticket #769130 BJM 03/30/04 -# Added evnapwda per CR# 54873 BJM 04/06/04 -# Remove evnoltpd per WO#71832 BJM 04/06/04 -# Remove evnapwd2 pre WO#73886 BJM 04/06/04 -# Remove alpgld_evncps,alpgld_evncfm,alpgld_evncf6,alpgld_evnge9, -# alpsvr_evncps,alpsvr_evncfm,alpsvr_evncf6,alpsvr_evnge9 WO#71873 BJM 04/06/04 -# Revised ge_evsfc per CR# 51438 SLS 04/11/04 -# Added evnapwqa per WO#76180 BJM 04/15/04 -# Remove evnapwq3 per WO#76175 BJM 04/15/04 -# Added eonoltp1 and revised ge_ont per CR# 52880 SLS 04/18/04 -# Added evnlabl1,evnlabl2,evnctpd1 per WO#73934 BJM 04/21/04 -# Added estoltp1 and revised ge_str per CR# 52889 BJM 04/22/04 -# Added gentest per WO#77690 BJM 04/23/04 -# Revised evnoltt6 per Sun UNIX BJM 04/29/04 -# Added evnapwpa per WO#78195 BJM 04/30/04 -# Remove evnclmq1 and ecioltt1 per WO#79272 BJM 05/03/04 -# Removed evnapwp1,evnapwp1test,evnapwp1_n,evnapwx1 per WO#79954 BJM 05/11/04 -# Removed evnapwp2,evnapwp3,evnapwl per WO#79954 BJM 05/11/04 -# Removed ajasrpp1,ajaoltp1 per WO#80763 BJM 05/11/04 -# Added tsirprd1.trans.ge.com & tsinfrd1.trans.ge.com per Alan Cornell SLS 05/19/04 -# Removed gentest per WO#82636 BJM 05/19/04 -# Added pax4-nt11, nav7adco, nav7efco per WO #82952 BJM 05/20/04 -# Added GE Trans Informatica TNS entries per Alan Cornell SLS 05/20/04 -# Added Asia Data Center QA2 Instances SLS 05/21/04 -# Added evnrdwq2 per WO #81347 BJM 06/03/04 -# Added tstr4it1,tstr5it1,tstr6it1 per CR# 56446 SLS 06/07/04 -# Revised elhdsk per SC# 820265 SLS 06/08/04 -# Added Europe Data Center QA2 Instances SLS 06/09/04 -# Added Trans Informatica per SC# 830578 SLS 06/10/04 -# Added evnrdwp2 per WO #81354 BJM 06/15/04 -# Added evnpssp1 per WO #87355 BJM 06/18/04 -# Added evnpssd1 per WO #87419 BJM 06/22/04 -# Added evnpssq1 per WO #87415 BJM 06/23/04 -# Revised evnosbt1 per CR# 57460 SLS 06/24/04 -# Added evnosbq5 per WO #87030 BJM 06/29/04 -# Added evnosbp5 per WO #87032 BJM 07/02/04 -# Added tscwdev1, tscwstg1 and tscwprd1 per SC# 855811 SLS 07/07/04 -# Added pctr_t, tsglosd1, tsgloss1 and tsglosp1 per SC# 862827 SLS 07/07/04 -# Added prdwcgen per SC# 872891 SLS 8/18/04 -# Removed FNDFS_bsadp100, FNDFS_bsadp101, RRA_bsadp100, RRA_bsadp101, RRA2_bsadp100 and -# RRA2_bsadp101 per WO# 99623 SLS 08/25/04 -# Added tsimprd1.trans.ge.com per SC# 904229 SLS 08/25/04 -# Added iman_prd.trans.ge.com per SC# 904926 SLS 08/26/04 -# Added mxciatd1, mxciatq1 and mxciatp1 per SC# 887827 SLS 08/27/04 -# Revised adctooq1,ajaoltq1,ajaosbq1,ajasrpq1,amaerpq1,amaodfq1,amaoltq1,amaosbq1,amasrpq1, -# asierpq1,asiodfq1,asioltq1,asiosbq1 and asisrpq1 per WO# 101651 SLS 08/31/04 -# Added elatp1 per SC# 912071 SLS 09/03/04 -# Added evnoltlx per WO# 101979 SLS 09/20/04 -# Added eurosales per SC# 929766 SLS 09/23/04 -# Added tsoasbx1 per SC# 941591 SLS 10/04/04 -# Added grnoltp1 per WO# 107508 SLS 10/11/04 -# Added evnpinq1 per WO# 109071 SLS 10/15/04 -# Added sourcingdev, sourcingstg, sourcingprd per SC# 967178 SLS 10/28/04 -# Added evnifsq3 per WO# 113620 SLS 10/29/04 -# Added evnoltdf per WO# 108456 SLS 11/17/04 -# Added p1star1s per SC# 987890 SLS 11/18/04 -# Revised evnoltp4 to add additional port 1638 for SC# 988753 SLS 11/29/04 -# Added taat per WO# 119898 SLS 12/07/04 -# Revised tabu per WO# 121797 SLS 12/08/04 -# Added svtsybr3 per WO# 121866 SLS 12/08/04 -# Added devwcgen.trans.ge.com per SC# 1009859 SLS 12/13/04 -# Removed evnoltd7 per WO# 118959 SLS 12/16/04 -# Added evnifsd3 per WO# 124720 BJM 12/23/04 -# Added evncogd1 per WO# 124269 SLS 12/28/04 -# Added evnifsd4 per WO# 128592 SLS 01/14/05 -# Added sourcpingprd.trans.ge.com SC# 1038727 BJM 01/19/05 -# Revised sourcingprd.trans.ge.com SC# 1038727 BJM 01/20/05 -# Added tsdwhsp2.net.erie.ge.com per WO# 129651 SLS 01/24/05 -# Added evncogq1 per WO# 129182 SLS 01/31/05 -# Removed alboltp2, hokoltp2, lynoltp2, madoltp2, rutoltp3 and wilsfcp2 -# per CR# 69603 SLS 02/10/05 -# Removed evnjded2, evnmondx and evnoltdc as cleanup SLS 02/10/05 -# Added wiloltp1 per WO# 132965 SLS 02/15/05 -# Added geeqarun per WO# 135657 BJM 02/21/05 -# Added qutoltp1 per WO# 135974 BJM 02/21/05 -# Revised geeqarun per WO# 137053 BJM 02/24/05 -# Added evncogp1 per CR# 71017 SLS 02/25/05 -# Revised rutoltp1 per WO# 135977 BJM 02/27/05 -# Removed qutoltp1 per WO# 135977 BJM 02/27/05 -# Added qokoltp1 per WO# 138152 JAg 3/3/05 -# Revised hostname for qokoltp1 JAA 3/3/05 -# Removed celfdwp1, celapwd1, asisrpd1, & celwebd1 as per Gary Rieder BJM 03/04/05 -# Added qlboltp1 per WO# 139582 CMR# 68689 JAA 3/11/05 -# Added sabcpad1 per WO# 140980 CMR# 72546 JAA 3/11/05 -# Removed qokoltp1 and Revised hokoltp1 per WO# 138152 JAA 3/13/05 -# Added evnifsp3 per WO# 137293 BJM 03/15/05 -# Revised hostname for alboltp1, removed qlboltp1 per WO#139582 JAA 3/20/05 -# Revised geae per SC#1106495 BJM 03/21/05 -# Added sabdevd1 per SC# 1108011 JAA 3/23/05 -# Revised gamd per SC #1111428 BJM 03/25/05 -# Removed rutoltq1, lynoltq1, madoltq1, hokoltq1, alboltq1 and ewioltq1 per CMR #72110 BJM 03/30/05 -# Added qe_etds2 per WO# 138183 SLS 04/04/05 -# Added qe_letds2 per WO# 138186 SLS 04/04/05 -# Added evnodsl3 per WO# 143755 JAA 04/05/05 -# Revised tabu per WO# 145224 JAA 04/07/2005 -# Added qynoltp1 per WO# 144279 JAA 04/07/2005 -# Revised evnodsl3 to use logical hostname JAA 04/08/2005 -# Revised lynoltp1 per WO# 144279 JAA 04/10/2005 -# Removed qynoltp1 per WO# 144279 JAA 04/10/2005 -# Added GPSORD81 and GPSMFD81 per SC# 1126070 BJM 04/11/05 -# Removed evnoltt6 per WO# 147296 JAA 04/12/05 -# Added evninfd1 per WO# 147222 JAA 04/15/05 -# Removed evnosbt1 per WO# 148256 JAA 04/15/05 -# Revised wilsfcp1 for Wilmington Move BAC 04/17/05 -# Revised AMD1 per SC# 1137631 BAC 04/19/2005 -# Removed qalapwp1,qalcpap1,qalfdwp1,quncpep1,qunoltp1, -# qunosbp1 and qwlosbp1 per WO #148254 SLS 04/23/05 -# Removed evnclmp1 per WO# 150187 JAA 4/27/05 -# Add qadoltp1 per WO# 149222 JAA 4/27/05 -# Added tgetri per WO# 150876 JAA 5/4/05 -# Added euwoltp1 per WO# 153612 JAA 5/16/05 -# Added metrics_prd.corporate and metrics_stg.corporate per -# WO# 155065 JAA 5/17/05 -# Added metrics_prd.corporate.ge.com per WO#155065 JAA 5/18/05 -# Revised evneccq1 per WO# 157973 JAA 6/13/2005 -# Added TSLSPRD1.trans.ge.com per SC#1190733 -# Added evncpad2 and evncpau1 for CP 11i upgrade project -# Added troltpp1.trans.ge.com, troltps1.trans.ge.com and -# troltpd1.trans.ge.com per SC #1216902 JAA 6/28/2005 -# Added art_es_uat per WO # 163985 JAA 7/7/2005 -# Revised madoltp1 for madoltp1 server move and removed qadoltp1 JAA 7/10/05 -# Added ase2000 per WO# 163356 JAA 7/14/2005 -# Added TSCWDEV1,TSCWSTG1 and TSCWPRD1 per SC# 1238072 JAA 7/15/2005 -# Added usnerps1,usnerpu1,usnerpd1 per SC# 1264334 8/02/2005 -# Added evninfq1 ps WO#170798 JAA 8/4/05 -# Revised ase200 per SC# 1328804 JAA 9/22/05 -# Added evnodsp6 per WO# 182723 JAA 9/22/05 -# Revised tsoasbx1.trans.ge.com per WO#183422 JAA 9/27/05 -# Removed calapxd1 per WO# 184168 JAA 10/5/05 -# Added saboltq1 per WO# 184666 JAA 10/5/05 -# Added usnerpc1 per SC# 1353532 BAC 10/12/05 -# Added evnodsq6 per WO# 186220 JAA 10/14/05 -# Added evnipwp1 per WO# 187084 JAA 10/26/05 -# Added evnflrp1 per WO# 187601 JAA 10/26/05 -# Added atlord09 per WO# 187230 JAA 11/1/05 -# Added evnmonp5 and evnmonp6 per SC# 1382046 11/4/05 -# Added evnapwdb and per WO# 191220 JAA 11/22/05 -# Added clearq.trans.ge.com per SC#1408164 JAA 12/1/05 -# Added saboltq2 per WO192038 JAA 12/1/05 -# Added usnerpq1 per SC#1413039 JAA 12/5/05 -# Removed evnodsl3 per WO #158347 JAA 12/8/05 -# Added alias for clearq per SC#1420910 JAA 12/14/05 -# Added tsoapsd1.trans.ge.com per SC# 1424815 JAA 12/20/05 -# Added houdev02 per SC# 1422268 JAA 12/20/05 -# Added duroltp1 per WO# 194837 JAA 12/29/05 -# Added houorp06 per SC# 1433831 JAA 01/05/06 -# Added usnapsd1 per SC# 1436440 JAA 01/09/06 -# Added tsoastg2 per SC# 1462538 JAA 2/6/06 -# Added tsoapss2.trans.ge.com per SC# 1473245 2/16/06 -# Added saboltp1 and sabcpap1 to WO 201650 JAA 2/28/06 -# Revised cia and dbcia per CMR 93024 JAA 3/1/06 -# Add evnhmsd1 per CMR 199875 JAA 3/1/06 -# Revised saboltq2 and added sabapwq1 per WO 203457 -# Revised tsprivp1.trans.ge.com per SC 1522998 JAA 4/12/06 -# Added saboltp2 and sabapwq2 per WO 209183 JAA 4/13/06 -# Added TSOAPSP1.TRANS.GE.COM per SC 1529261 JAA 4/19/06 -# Added evnrdwl2 per WO 206079 JAA 5/3/06 -# Added tst10g2a for 10g testing purposes JAA 5/8/06 -# Added evnapwqb per WO212296 JAA 5/8/06 -# Added evnctpl1 per WO209165 JAA 5/17/06 -# Added evnrmdd1 per WO217286 JAA 5/25/06 -# Added gpsorp99.energy.ge.com and houorp08.energy.ge.com per WO217535 JAA 5/26/06 -# Added qonoltp1 for pre-prod move of eonoltp1 JAA 5/30/06 -# Added qstoltp1 for pre-prod move of estoltp1 JAA 6/1/06 -# Removed duplicate TSPRIVP1 per Gary Rieder JAA 6/1/06 -# Added evnrmdq1 per WO 219000 JAA 06/05/06 -# Added 68 entries for Energy, per Steve S. WO 219251 JAA 6/6/06 -# Revised eonoltp1 for change over JAA 6/11/06 -# Added evncrml2 per wo 220164 JHR 6/12/06 -# Added evnodsp1_test per Richard Hartmann JAA 6/15/06 -# Removed evncpep1_test per Richard Hartmann JAA 6/15/06 -# Added ATLORD20.ENERGY.GE.COM per SC 1618735 JAA 6/19/06 -# Added SCHGPC80.ENERGY.GE.COM per WO 222130 JAA 6/19/06 -# Added tsimdev1.trans.ge.com per WO 225817 JAA 7/12/06 -# Added schchx85.energy.ge.com added per WO 226391 JAA 7/13/06 -# Added entreposto.databras.com.br per SC 1667748 JAA 7/19/06 -# Added hge.databras.com.br per SC 1668153 JAA 7/19/06 -# Added S1RUMLD.corporate.ge.com per SC 1696236 JAA 8/2/06 -# Removed evnoltlx per Gary Rieder JAA 8/03/06 -# Added SCHWSB82.PSAMER.PS.GE.COM and GPSPAX81.PSAMER.PS.GE.COM per WO 231963 JAA 8/9/06 -# Added databras2 per SC 1705767 JAA 8/10/06 -# Added ge.databras.com.br per SC 1712925 JAA 8/17/06 -# Added GPSORS66 and SCHORD52 per CMR 112440 JAA 8/18/06 -# Added evnqtcp1 per WO 235069 JHR 8/23/2006 -# Revised schsb82.psamer.ps.ge.com per WO 234711 JAA 8/23/06 -# Added 3 entries per WO's 235265, 235263, and 235254 JAA 8/23/06 -# Removed evnrmdq1 per WO 238677 JAA 9/12/06 -# Added atlord24.energy.ge.com per WO 238282 JAA 9/13/06 -# Added usnapsq1 per SC 1781882 JAA 9/18/06 -# Added evnlabl3 per 113914 JAA 9/18/06 -# Added gpsmfd81.energy.ge.com per SC 1791723 JAA 9/22/06 -# Added schwst82.energy.ge.com per WO 250763 JHR 11/9/06 -# Added gpspgjp1.corporate.ge.com per WO 250763 JHR 11/9/06 -# Added ts10gtst.trans.ge.com per WO 250763 JHR 11/9/06 -# Added schchs85.energy.ge.com per WO 249209 JHR 11/9/06 -# Added schchcnv.energy.ge.com per WO 249209 JHR 11/9/06 -# Added schchxd1.energy.ge.com per WO 249209 JHR 11/9/06 -# Added WLMDWHD1.energy.ge.com per WO 251034 JHR 11/9/06 -# Added ATLORP25.energy.ge.com per WO 251634 JHR 11/10/06 -# Added ATLORD09.energy.ge.com per WO 251634 JHR 11/10/06 -# Added ATLORT09.energy.ge.com per WO 251634 JHR 11/10/06 -# Added ATLORP73.energy.ge.com per WO 251634 JHR 11/10/06 -# Added gpsord77.energy.ge.com per SC 1883740 JAA 11/15/06 -# Added ordwhr10.corporate.ge.com per WO 252805 JAA 11/22/06 -# Revised usnerpc1 per SC 1905389 JAA 12/07/06 -# Added usnerpp1 per SC 1914544 JAA 12/07/06 -# Added ATLORD67.energy.ge.com per WO256424 JHR 12/07/06 -# Added GPSCHXR1.energy.ge.com per WO257706 JHR 12/07/06 -# Added GPSCHXS1.energy.ge.com per WO257706 JHR 12/07/06 -# Added gpsore40.energy.ge.com per WO254321 JHR 01/16/07 -# Added gpsord77.energy.ge.com per WO252129 JHR 01/16/07 -# Added p1apcinps.corporate.ge.com per WO260143,WO260298,WO260299 JHR 01/16/07 -# Added ewhgned3.energy.ge.com per WO262805 JHR 01/18/2007 -# Added gpspgjd1.energy.ge.com,gpspgjd2.energy.ge.com,gpspgjt1.energy.ge.com,gpspgjs2.energy.ge.com, -# gpspgjx1.energy.ge.com,gpspgjt2.energy.ge.com,gpspgjsb.energy.ge.com,gpspgjs1.energy.ge.com, -# gpspgjp1.corporate.ge.com,gpspgjp1.corporate.ge.com per WO 260767 JHR 01/18/2007 -# Added SCHWSB82.psamer.energy.ge.com,SCHWSD82.psamer.energy.ge.com,SCHWST82.psamer.energy.ge.com, -# SCHWGS82.psamer.energy.ge.com,GPSPGJP1.psamer.energy.ge.com,SCHCHT85.psamer.energy.ge.com, -# GPSPAX81.psamer.energy.ge.com,SCHWDX82.psamer.energy.ge.com,gpspgjd1.psamer.energy.ge.com, -# gpspgjd2.psamer.energy.ge.com,gpspgjt1.psamer.energy.ge.com,gpspgjs2.psamer.energy.ge.com, -# gpspgjx1.psamer.energy.ge.com,gpspgjt2.psamer.energy.ge.com,gpspgjsb.psamer.energy.ge.com, -# gpspgjs1.psamer.energy.ge.com per WO263267 JHR 01/18/2007 -# Added gpscsx40.energy.ge.com, gpsgapn1.energy.ge.com per WO 263043 JHR 01/18/2007 -# Added ewhpwrd3.energy.ge.com per WO263398 JAA 1/19/2007 -# Added gpsgned1.energy.ge.com and gpsgnes1.energy.ge.com per WO 264891 JAA 1/28/07 -# Added gpspgjp1.energy.ge.com per WO 267377 JHR 02/08/2007 -# Changed gpspgjp1.psamer.energy.ge.com, gpspgjp1.corporate.ge.com per WO 267377 JHR 02/08/2007 -# Changed ewhpwrd3.energy.ge.com per WO 266011 JHR 02/08/2007 -# Changed ewhsvcd3.energy.ge.com per WO 265974 JHR 02/08/2007 -# Changed ewhgned3.energy.ge.com per WO 266007 JHR 02/08/2007 -# Added ewhcogd3.energy.ge.com per WO 266006 JHR 02/08/2007 -# Added ewhinfd3.energy.ge.com per WO 265545 JHR 02/08/2007 -# Added gpsess76.energy.ge.com, gpsnst11.energy.ge.com, gpsnss11.energy.ge.com per WO 265244 JHR 02/08/2007 -# Added ewhpwrp3.energy.ge.com per WO 267062 JAA 2/9/07 -# Changed gpspgjt1.psamer.energy.ge.com, gpspgjt1.energy.ge.com per WO 268213 JHR 02/12/2008 -# Added atlord24.geips.ge.com per SC 2047525 JHR 15-Feb-2007 -# Revised usnerpq1 per SC 2060562 JAA 2/21/07 -# Added gpschxx1.energy.ge.com,gpschxc1.energy.ge.com per WO 272299 JHR 09-Mar-2007 -# Added gpschxx1.energy.ge.com, gpschxc1.energy.ge.com, whgneq3.energy.ge.com -# ewhsvcq3.energy.ge.com, ewhpwrq3.energy.ge.com, ewhinfq3.energy.ge.com per WO 271460 JHR 09-Mar-2007 -# Added mascamd1.energy.ge.com, cosmtest.geips.ge.com per WO 272756 JHR 09-Mar-2007 -# Changed whgneq3.energy.ge.com, ewhsvcq3.energy.ge.com, -# ewhpwrq3.energy.ge.com, ewhinfq3.energy.ge.com per WO274048 JHR 12-Mar-2007 -# Added GPSOR252.corporate.ge.com per WO 273640 JAA 3/14/07 -# Added gpsesx76.energy.ge.com per WO 274103 JAA 3/14/07 -# Added schdba19.energy.ge.com per WO 275291 JHR 16-Mar-2007 -# Added tsdxprd1.trans.ge.com, tsdxdev1.trans.ge.com, tspadev1.trans.ge.com, -# tspastg1.trans.ge.com, tspaprd1.trans.ge.com, tsprprd1.trans.ge.com, -# tsprdev1.trans.ge.com, tsprstg1.trans.ge.com, tslsdev1.trans.ge.com, -# tsewprd1.trans.ge.com, tsewdev1.trans.ge.com, tsrmdev1.trans.ge.com, -# tsrmstg1.trans.ge.com, tsrmprd1.trans.ge.com, tsdwhsd1.trans.ge.com, -# tsowprd1.trans.ge.com, tsutilp1.trans.ge.com, tscqdev1.trans.ge.com, -# tscqprd1.trans.ge.com per WO 277888 JHR 06-Apr-2007 -# -# WO 271454 Added gpsoro49.corporate.ge.com, gpsorp49.corporate.ge.com, -# gpsnsp11.corporate.ge.com, gpsesp76.corporate.ge.com -# WO 278813 Added gpspgjt1.energy.ge.com, gpspax81.energy.ge.co, -# gpsors77.energy.ge.com -# WO 282195 Added oradev.mras.ae.ge.com -# 11-May-2007 JAA WO 287073 Revised ewhinfd3.energy.ge.com -# SC 2243200 Revised evnapwf1 -# 14-May-2007 JAA WO 287535 Added tsgingp2, ewhsvcp3 and ewhgnep3.energy.ge.com -# WO 287536 Added tsgcogp2.energy.ge.com -# WO 287603 Added eueodsp1.energy.ge.com -# 22-May-2007 JAA WO 288745 Revised tsginfp2.energy.ge.com and tsgcogp2.energy.ge.com -# JAA WO 289699 Revised ewhinfd3.energy.ge.com -# 23-May-2007 JAA WO 289627 Added gpsord77.energy.ge.com,gpschxs1.energy.ge.com -# gpserp15.ENERGY.GE.COM,GPSCHXD1.ENERGY.GE.COM -# 25-May-2007 JAA WO 290745 Revised ewhsvcp3.energy.ge.com -# 25-May-2007 JAA WO 290036 Added atlort09.geips.ge.com -# 25-May-2007 JAA WO 290177 Added eueodsd2.energy.ge.com -# 04-Jun-2007 JHR WO ?????? Added temp entries for QABOAPWP1, QABCPAP1, QABOLTP1, QABOLTP2 -# WO 293122 Added gpschxp1.energy.ge.com -# WO 291418 Added enpp.atlord09.energy.ge.com, schodm05.gegdc.ad.energy.ge.com -# WO 291357 Added eueodsq2.energy.ge.com -# WO 292280 Added gpsot252.corporate.ge.com -# WO 293394 Revised ewhgned3.energy.ge.com, ewhpwrd3.energy.ge.com, ewhsvcd3.energy.ge.com -# ewhgnep3.energy.ge.com, ewhsvcp3.energy.ge.com, -# 13-Jun-2007 JAA WO 294509 Added ttptmcp1.energy.ge.com -# 15-Jun-2007 JAA WO 295139 Added medaorcl.energy.ge.com -# 05-Jul-2007 JAA WO 297360 Added eueodsp2.energy.ge.com, gpsgnet1.energy.ge.com, -# 08-Jun-2007 JHR WO 297535 Added masdsd001.energy.ge.com, etppteq1.energy.ge.com, masqsca001.energy.ge.com -# WO 297824 Added etpptep1.energy.ge.com -# SC 2395990 Added RRA_tsgsq00198/199/200 -# WO 279261 Added hrdwrp_n.corporate.ge.com -# CMR 140929 Renamed evnrdwl2 to evnrdwd2 -# 17-Jul-2007 JHR WO 300788 Added atlord10.energy.ge.com -# WO 300920 Updated houorp09.energy.ge.com -# 23-Jul-2007 JAA WO 301737 Revised eurosales.trans.ge.com -# WO 302982 Added atlors10.energy.ge.com -# WO 303376 Added atlorp10.energy.ge.com -# 09-Aug-2007 JAA WO 291964 Added euerdwq1 -# WO 304422 Added cdb02, sdb06, sdb08 and sdb09 -# WO 299311 Added euerdwp1 -# 21-Aug-2007 JAA WO 304442 Removed tsirprd1,tslsprd1 and tsoadev5 -# 23-Aug-2007 JAA WO 308146 Added gpsore66.corporate.ge.com and schort34.sch.ge.com -# 6-Sep-2007 JAA SC 2554790 Added gpsord77.energy.ge.com -# WO 314534 Added Storefront entries: etppted1.energy.ge.com, etpptet1.energy.ge.com, -# etppteq1.energy.ge.com, gpsnsd11.energy.ge.com, gpsesx76.energy.ge.com, -# gpserp02.corporate.ge.com, -# WO 315923 Added gpschxt1.energy.ge.com -# WO 317112 Added gpsgps80.energy.ge.com -# WO 316002 Added etpcamq1.energy.ge.com, etpcamt1.energy.ge.com -# WO 322649 Added gpswms76.energy.ge.com -# WO 322561 Added sjcsd004.energy.ge.com -# 25-Oct-2007 JAA WO 323962 added etpcamp1.energy.ge.com -# 09-Nov-2007 JHR WO 326869 Added gpsnsx11.energy.ge.com -# 21-Nov-2007 JAA WO 327189 Added evnifsr3 -# 13-Jan-2008 JHR WO 342102 Added erpesed2.energy.ge.com -# 24-Jan-2008 JHR WO 345563 Added erppgjh1.energy.ge.com,erppgfr1.energy.ge.com -# 28-JAN-2008 JAA WO 346661 Revised host entry for evnodsd4 -# 11-Feb-2008 JHR WO 351787 Added etppegq1.energy.ge.com -# 11-Feb-2008 JHR WO 348727 Updated tsprivs1.trans.ge.com, tsprivd1.trans.ge.com -# 12-Feb-2008 JHR WO 352370 Added etppegd1.energy.ge.com -# 12-Feb-2008 JHR WO 352498 Added etppegs1.energy.ge.com -# 12-Feb-2008 JHR WO 351964 Added gpsspt10.energy.ge.com -# 18-FEB-2008 JAA TK 3079330 Added DDEVDS01.AE.GE.COM -# 19-FEB-2008 JAA WO 353685 Added italyprod -# 22-FEB-2008 JAA WO 355001 Added erpesev1.energy.ge.com -# 06-Mar-2008 JHR WO 358116 Added gpsiix80.energy.ge.com -# 06-Mar-2008 JHR WO 358486 Added etppegs1.energy.ge.com -# 13-Mar-2008 JHR WO 359747 Added etpeaip2.corporate.ge.com -# 14-Mar-2008 JHR WO 362328 Added gpspgjr1.energy.ge.com -# 17-Mar-2008 JHR SC 3184121 Updated p1apcinps.corporate.ge.com -# 24-Mar-2008 JAA SC 3203915 Updated p1apcinps.corporate.ge.com -# 25-Mar-2008 JAA SC 3206450 Updated evncogp1 -# 04-APR-2008 JAA WO 365214 Added erpesex1 -# 04-APR-2008 JAA WO 366059 Added gpsmfd77 -# 04-APR-2008 JAA WO 365368 Revised svtsybr7 -# 04-APR-2008 JAA WO 367380 Added etppegp1.energy.ge.com -# 09-APR-2008 JAA SC 3254734 Revised HOUORT18.energy.ge.com -# 10-APR-2008 JAA WO 366605 Removed evnipwp1 -# 21-APR-2008 JAA WO 371503 Added atlord57.energy.ge.com -# 24-APR-2008 JAA WO 373395 Added ap_atpoltp1 and hpsd_evnoltpa -# 25-APR-2008 JAA WO 374039 Revised evndssp4 -# 08-May-2008 JAA WO 378825 Added eueoltd5 -# 08-May-2008 JAA WO 377453 Added eueoltq5 and eueoltp5 -# 08-May-2008 JAA WO 378247 Added adwodsq1 and adwodsp1 -# 08-May-2008 JAA WO 376947 Added ttpoltd1 -# 08-May-2008 JAA WO 374939 Revised erppgfs2.energy.ge.com erppdfb2.energy.ge.com -# erppgfp2.corporate.ge.com -# 12-May-2008 JAA SC 3361131 Added GEGS_APPS_TEST -# 12-May-2008 JAA WO 380309 Added gpsort77.energy.ge.com -# 12-May-2008 JAA WO 377073 Revised gpsorp99.energy.ge.com, and gpsorp77.energy.ge.com -# 13-May-2008 JAA WO 380509 Added evnapwl1 -# 15-May-2008 JAA SC 3390355 Added troltpd1-mig -# 18-May-2008 JHR WO 380587 Updated gpsorp77.energy.ge.com and gpsorp99.energy.ge.com -# 19-May-2008 JAA SC 3403978 Revised schort34 with Approval from Vic Gagnon -# 21-May-2008 JAA SC 3415531 Added erppgfp2.corporate.ge.com -# 15-Jun-2008 JHR WO 391108 Added aob920d1.tsg.ge.com -# WO 391112 Added aob920q1.tsg.ge.com -# 07-Jul-2008 JAA WO 391343 Added TROLTPD1 -# 07-Jul-2008 JAA WO 393598 Added espl, atlord65 -# 07-Jul-2008 JAA WO 394825 Added GPSMFD77.energy.ge.com -# 07-Jul-2008 JAA WO 396458 Revised gpsot252.corporate.ge.com -# WO 398184 Added gpspad81.psamer.energy.ge.com -# 17-Jul-2008 JAA WO 399508 Added HOUORZ08 -# 17-Jul-2008 JAA WO 400471 Added GPSORS77.PSAMER.PS.GE.COM -# 18-Jul-2008 JHR SC 3602816 Added tsoadev1.trans.ge.com -# WO 401021 Modified mascamd1.energy.ge.com to etpcamd1.energy.ge.com -# 21-Jul-2008 JAA SC 3634271 Revised genesis -# 21-Jul-2008 JAA WO 400628 Added HOUORP08 -# 22-Jul-2008 GMR WO 401786 Added GPSOR252 -# 24-Jul-2008 JHR WO 402848 Modified troltps1.trans.ge.com -# 25-Jul-2008 JHR WO 403734 Added blsorv51.energy.ge.com -# 08-AUG-2008 JHR WO 405052 Added ttpoltq1.trans.ge.com -# 08-AUG-2008 JHR WO 405391 Added schorm41.energy.ge.com -# 08-AUG-2008 JHR WO 406188 Added etps06p1.energy.ge.com -# 18-AUG-2008 JHR WO 411115 Added erppgfr2.energy.ge.com -# 19-AUG-2008 JAA WO 410918 Added houorp05.energy.ge.com -# 22-AUG-2008 JHR WO 413056 Added ttpoltp1.trans.ge.com -# 22-AUG-2008 JAA WO 413410 Added etppega.corporage.ge.com -# 28-AUG-2008 JHR WO 414339 Added erpeses1.energy.ge.com -# 28-AUG-2008 JHR WO 413929 Added erppgji1.energy.ge.com -# 28-AUG-2008 JHR WO 415203 Added etporbd1.energy.ge.com -# 09-Sep-2008 JHR WO 418429 Added erpeses1.energy.ge.com -# 22-Sep-2008 JAA WO 421647 Added erpesep1 and erpeses1 -# 24-Sep-2008 JAA SC 3874562 Revised gedw per P1 ticket noted -# 03-Oct-2008 JHR WO 424478 Added gpsot252.energy.ge.com -# 03-Oct-2008 JHR WO 425109 Added gpsfoxtr.energy.ge.com -# 03-Oct-2008 JHR WO 426890 Added houorp06.energy.ge.com -# 03-Oct-2008 JHR WO 421498 Added etpcamq1.energy.ge.com -# 05-Oct-2008 JAA SC 3909953 Revised troltpp1.trans.ge.com per P1 ticket -# 07-Oct-2008 JAA WO 425628 Added gpspax81 -# 09-Oct-2008 JHR WO 424249 Changed tsprivp1.trans.ge.com -# 09-Oct-2008 JHR SC 3924487 Changed sourcingprd.trans.ge.com, tsglosp1.trans.ge.com -# 09-Oct-2008 JHR WO 429181 Added etpessd1.energy.ge.com -# 09-Oct-2008 JHR WO 429445 Added houord22.energy.ge.com -# 09-Oct-2008 JHR WO 429445 Added gpsirc80.energy.ge.com -# 15-Oct-2008 JHR WO 431898 Added newpatch.energy.ge.com -# 20-Oct-2008 LC SC 3963762 Changed etppegq1 entry -# 21-Oct-2008 JAA WO 434315 Added etpcamd1 -# 24-Oct-2008 JAA WO 435267 Added MASCAMD1 -# 06-Nov-2008 JHR WO 438165 Added tdwodsd1.trans.ge.com -# 06-Nov-2008 JHR WO 438582 Added houorr20.energy.ge.com -# 06-Nov-2008 JHR WO 438741 Updated tsimdev1.trans.ge.com -# 06-Nov-2008 JHR WO 440560 Added gpswds82.energy.ge.com -# 06-Nov-2008 JHR WO 441089 Added gpswdp82.energy.ge.com -# 06-Nov-2008 JHR WO 440845 Updated gpschxr1.energy.ge.com -# 10-Nov-2008 JAA WO 442628 Added erppgrb1 and erppgrt1 -# 11-Nov-2008 JHR WO 444089 Added ecvinfp1.tsg.ge.com -# 14-Nov-2008 JHR WO 445973 Added atxoltp5.tsg.ge.com -# 14-Nov-2008 JHR WO 445994 Added ecvcogp1.tsg.ge.com -# 14-Nov-2008 JHR WO 444089 Added ecvinfp1.tsg.ge.com -# 14-Nov-2008 JHR WO 445998 Added ecvrmnp1.tsg.ge.com -# 16-Nov-2008 JAA SC 4061704 Revised TSIMPRD1.trans.ge.com per P1 -# 18-Nov-2008 JAA WO 446629 Added gpswdp82 -# 21-Nov-2008 JAA WO 446780 Revised etppegd1 -# 04-Dec-2008 JAA WO 451843 TROLTPS1 -# 04-Dec-2008 JAA WO 451571 erppgre1 -# 04-Dec-2008 JAA WO 451536 tdwodsq1.trans.ge.com -# 04-Dec-2008 JAA WO 451719 etpwgrq1,etpwgrd1 -# 09-Dec-2008 JHR WO 445482 Added etxorbp1.energy.ge.com -# 09-Dec-2008 JHR WO 445519 Added etxorbs1.energy.ge.com -# 09-Dec-2008 JHR WO 455711 Added atlord21.energy.ge.com -# 09-Dec-2008 JAA WO 451050 Added schotm05.energy.ge.com -# 06-Jan-2009 JAA WO 459967 Added ewhpwrd3 -# 13-Jan-2009 JAA WO 462069 Added gpspgjs2 -# 13-Jan-2009 JAA WO 459594 Added ecvinfq1 -# 13-Jan-2009 JAA WO 461407 atxoltq5 -# 15-Jan-2009 JAA WO 465105 Added etpwgrp1 -# 15-Jan-2009 JAA WO 465791 Added gpspgjd2, gpspgjp2 -# 20-Jan-2009 JAA WO 459448 Revised sjcsd004.energy.ge.com, -# Added sjcsd003.energy.ge.com,WLMNEXD1.energy.ge.com, -# WLMNEXP1.energy.ge.com,erpgnea1.energy.ge.com -# 21-Jan-2009 JAA WO 462812 Added etpemdd1 -# 23-Jan-2009 JHR Fixed multiple bad entries - -# 23-Jan-2009 JAA WO 466189 Added ttptmcq1 -# 06-Feb-2009 JHR WO 470997 Added etpessu1.energy.ge.com -# 06-Feb-2009 JHR WO 470566 Added erpshsr1.energy.ge.com -# 06-Feb-2009 JHR WO 471343 Added erppgrp1.energy.ge.com -# 06-Feb-2009 JHR WO 469629 Added ecvcogq1.tsg.ge.com -# 06-Feb-2009 JHR WO 469642 Added ecvipwp1.tsg.ge.com -# 06-Feb-2009 JHR WO 470094 Added ecvrmnp2.tsg.ge.com -# 06-Feb-2009 JHR WO 470084 Added tdwodsp1.trans.ge.com -# 09-Feb-2009 JAA WO 468520 Added erppgfs1.energy.ge.com -# 13-Feb-2009 JHR WO 475855 Added atpkrnp1.tsg.ge.com -# 17-Feb-2009 JHR Fixed numerous ill formatted entries. -# 20-Feb-2009 JHR WO 478662 Added cts.energy.ge.com -# 05-Mar-2009 JHR WO 483467 Added ntxoltd1.energy.ge.com -# 05-Mar-2009 JHR WO 480734 Added erppgrc1.energy.ge.com -# 05-Mar-2009 JHR WO 482100 Added atxoltd5.tsg.ge.com -# 05-Mar-2009 JHR WO 482644 Added bsts.trans.ge.com -# 12-Mar-2009 JHR WO 4827866 Added atlorp38.energy.ge.com -# 12-Mar-2009 JAA WO 487760 Added chemd.energy.ge.com and chemp.energy.ge.com -# 03-Apr-2009 JHR WO 489530 Added gpsgnex1.energy.ge.com, erpgneb1.energy.ge.com, erpgnec1.energy.ge.com -# 03-Apr-2009 JHR WO 493438 Added italyprd.trans.ge.com -# 03-Apr-2009 JHR WO 494256 Added erppgrc1.energy.ge.com -# 06-Apr-2009 JAA WO 498879 Added borop001.world,SCHORL15 and SCHORI43.WORLD -# 09-Apr-2009 JHR WO 500233 Added gpserp01.corporate.ge.com -# 13-Apr-2009 JAA WO 499407 Revised cts.energy.ge.com -# 14-Apr-2009 JAA WO 500598 Added erppgje1.energy.ge.com -# 14-Apr-2009 JAA WO 502689 Added etpjenp1 -# 14-Apr-2009 JAA WO 502014 Added etpjend1 -# 16-Apr-2009 JAA WO 503814 Added gpsgneg1.energy.ge.com -# 16-Apr-2009 JAA WO 504643 Added schort19.energy.ge.com -# 17-Apr-2009 JAA WO 503063 Added ATLORP01,GPSORP58.CORPORATE.GE.COM -# 21-Apr-2009 JAA WO 505590 Added atxoltn5 -# 24-Apr-2009 JAA WO 507853 Added atlorp38 -# 24-Apr-2009 JAA WO 507767 Added erpshsd1 -# 07-May-2009 JHR WO 510550 Added gibdev.energy.ge.com alias to atlord21.energy.ge.com -# 08-May-2009 JAA WO 508198 Revised gpschxc1.energy.ge.com -# 14-May-2009 JAA WO 516167 Added erpshsp1.tsg.ge.com -# 14-May-2009 JAA WO 516049 Added SSI0.world -# 14-May-2009 JAA WO 515441 Added erppgjj1.energy.ge.com -# 28-May-2009 JAA WO 521556 Added gpsescs1 -# 04-Jun-2009 JHR WO 522273 Added gpsgpd80.energy.ge.com -# 04-Jun-2009 JHR WO 519434 Updated gpspgjp2.energy.ge.com -# 04-Jun-2009 JHR WO 512735 Added etpjenq1.energy.ge.com -# 05-Jun-2009 JAA WO 524952 Added imandevl -# 08-Jun-2009 JAA WO 525993 Added hrmart.energy.ge.com -# 11-Jun-2009 JAA WO 529267 Added erpg1d -# 14-Jun-2009 JHR WO 529150 Added ctsp.energy.ge.com -# 08-Jul-2009 JHR WO 531140 Added erppgzd2.energy.ge.com -# 08-Jul-2009 JHR WO 535153 Added gpswdx82.energy.ge.com -# 09-Jul-2009 JHR WO 540966 Added gpswds82.energy.ge.com -# 21-Jul-2009 JAA TK 5060982 Added erppgfr2 -# 24-Jul-2009 JAA WO 549675 Added etpschd3.tsg.ge.com -# 24-Jul-2009 JAA WO 549166 Added gpsescp1 -# 06-Aug-2009 JHR SC 5124275 Updated troltpd1.trans.ge.com -# 06-Aug-2009 JHR SC 5100295 Updated etpcamp1.energy.ge.com -# 06-Aug-2009 JHR WO 555035 Added ntxprmq1.energy.ge.com -# 06-Aug-2009 JHR WO 555035 Added ntxprmd1.energy.ge.com -# 06-Aug-2009 JHR WO 551420 Added etpschq3.tsg.ge.com -# 06-Aug-2009 JHR WO 552307 Added etpschp3.tsg.ge.com -# 11-Aug-2009 JAA WO 556447 Tons of updates for B800 dev migration to Hamilton -# 20-Aug-2009 JHR WO 564745 added erppgzs2.tsg.ge.com -# 20-Aug-2009 JHR WO 565300 added atxtmcs1.tsg.ge.com -# 20-Aug-2009 JHR Removed atlmc2p1.energy.ge.com, atlmc2p2.energy.ge.com,atlmc2p3.energy.ge.com, -# cs_prd.corporate.ge.com, gpsorp49.corporate.ge.com, gpsoro49.corporate.ge.com, -# schop251.energy.ge.com, houorr16.energy.ge.com, gpsort37.energy.ge.com -# 21-Aug-2009 JAA WO 566546 Added atpplmd1 -# 21-Aug-2009 JAA WO 565442 Added ntxoltq1 -# 02-Sep-2009 JAA WO 571294 TPDMJEN.JENBACHER -# 03-Sep-2009 JHR WO 568264 added edwemdp2.energy.ge.com, edwemdp1.energy.ge.com -# 03-Sep-2009 JHR WO 568295 added atpucmd1.tsg.ge.com -# 03-Sep-2009 JHR WO 568954 added rpshst1.energy.ge.com -# 03-Sep-2009 JHR WO 568264 added edwemdp2.energy.ge.com, edwemdp1.energy.ge.com -# 08-Sep-2009 JHR WO 574263 added atpmonq1.tsg.ge.com -# 03-Sep-2009 JHR WO 574325 added erppgjg1.energy.ge.com -# 08-Sep-2009 JAA WO 574906 added blsoru51 -# 08-Sep-2009 JAA WO 574437 added eueoltda -# 10-Sep-2009 JAA WO 574820 added ctsqa.energy.ge.com -# 17-Sep-2009 JAA WO 576712 added etpsblt2 -# 17-Sep-2009 JAA WO 579700 added 6chon141, schon141.energy.ge.com -# 02-Oct-2009 JAA WO 584989 added erppgfs1 -# 02-Oct-2009 JAA WO 584418 added eueoltpa -# 02-Oct-2009 JAA WO 583280 added eueoltqa -# 02-Oct-2009 JAA WO 581364 added atpmonp1 -# 02-Oct-2009 JAA WO 583926 added euerdwd2 -# 02-Oct-2009 JAA WO 584444 added etpinfp1 -# 02-Oct-2009 JAA WO 583375 added etpeaiq2 -# 02-Oct-2009 JAA WO 583467 added etpsanq1 -# 05-Oct-2009 JAA WO 581247 added etpmonp1 -# 05-Nov-2009 JHR WO 605841 added infaprd96.energy.ge.com, pmprd58.energy.ge.com, dwprd.energy.ge.com, -# dwprd59.energy.ge.com, dwdev.energy.ge.com, dwdev58.energy.ge.com, -# dwtst58.energy.ge.com -############################### -ANOOLD02=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=3.14.102.3)(PORT = 1522)))(CONNECT_DATA=(SID=anoold02))) -anoold01,anoold01.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold01.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold01))) - -################################ -# CP Prod DB Names -################################ - -FNDFS_bse13, FNDFS_bse13.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse13.ae.ge.com)(Port=1528)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse13.ae.ge.com)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse13.ae.ge.com)(Port=1601))) - (CONNECT_DATA = (SID = FNDFS) (GLOBAL_NAME = FNDFS_bse13.ae.ge.com))) - -FNDFS_evncpep1= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpep1.ae.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_evncpep1.ae.ge.com))) - -FNDFS_tsgsp00171, FNDFS_tsgsp00171.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00171.ae.ge.com) (Port=1829))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_tsgsp00171.ae.ge.com))) - -FNDFS_tsgsp00170, FNDFS_tsgsp00170.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00170.ae.ge.com) (Port=1829))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_tsgsp00171.ae.ge.com))) - -FNDFS_tsgsp00172, FNDFS_tsgsp00172.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00172.ae.ge.com)(Port=1829))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_tsgsp00172.ae.ge.com))) - -FNDFS_tsgsp00174, FNDFS_tsgsp00174.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00174.ae.ge.com)(Port=1829))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_tsgsp00174.ae.ge.com))) - -OEORPC_evncpep1, OEORPC_evncpep1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpep1.ae.ge.com)(Port=1530))) - (CONNECT_DATA=(SID=OEORPC_evncpep1)(GLOBAL_NAME=OEORPC_evncpep1.ae.ge.com))) - -EORPC_evncpap1, EORPC_evncpap1.ae.ge.com= - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=evncpap1.ae.ge.com)(Port=1601)) - (CONNECT_DATA=(SID=OEORPC)) - ) - -OEORPC_bse13, OEORPC_bse13.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse13.ae.ge.com)(Port=1529)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse13.ae.ge.com)(Port=1606)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse13.ae.ge.com)(Port=1607))) - (CONNECT_DATA=(SID=OEORPC_bse13)(GLOBAL_NAME=OEORPC_bse13.ae.ge.com))) - -aapsbld1, aapsbld1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=aapsbld1.ae.ge.com)(Port=1529)) - (CONNECT_DATA = (SID = AAPSBLD1))) - -aapsblq1, aapsblq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=aapsblq1.ae.ge.com)(Port=1529)) - (CONNECT_DATA = (SID = AAPSBLQ1))) - -aapsblp1, aapsblp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = aapsblp1.ae.ge.com)(PORT = 1529))) - (CONNECT_DATA = (SID = aapsblp1))) - -adxodsd1, adxodsd1.ae.ge.com, adxodsd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = adxodsd1.tsg.ge.com)(PORT = 1534)) - (CONNECT_DATA = (SID = adxodsd1))) - -adxodsq1,adxodsq1.tsg.ge.com,adxodsq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adxodsq1.tsg.ge.com) (PORT = 1528))) - (CONNECT_DATA = (SID = adxodsq1))) - -adxodsp1, adxodsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adxodsp1.ae.ge.com) (PORT = 1528))) - (CONNECT_DATA = (SID = adxodsp1))) - -atpbatp1, atpbatp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpbatp1.tsg.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID = atpbatp1))) - -atpoltd1, atpoltd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpoltd1.ae.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID = atpoltd1))) - -# changed 7/11/11 jaf 1010778 -atpoltq1, atpoltq1.ae.ge.com, atpoltq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpoltq1.tsg.ge.com)(PORT = 1835))) - (CONNECT_DATA = (SID = atpoltq1))) - -atpoltp1, atpoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpoltp1.ae.ge.com)(PORT = 1528))) - (CONNECT_DATA = (SID = atpoltp1))) - -atxoltd1,atxoltd1.tsg.ge.com,atxoltd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltd1.tsg.ge.com)(PORT = 1535)) - (CONNECT_DATA = (SID = atxoltd1))) - -atxoltl1, atxoltl1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltl1.ae.ge.com)(PORT = 1532))) - (CONNECT_DATA = (SID = atxoltl1))) - -atxoltq1,atxoltq1.tsg.ge.com,atxoltq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltq1.tsg.ge.com) (PORT = 1529))) - (CONNECT_DATA = (SID = atxoltq1))) - -atxoltp1, atxoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltp1.ae.ge.com) (PORT = 1529))) - (CONNECT_DATA = (SID = atxoltp1))) - -atxtmcd1, atxtmcd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcd1.tsg.ge.com)(PORT = 1546))) - (CONNECT_DATA = (SID = atxtmcd1))) - -awxrdwq1,awxrdwq1.tsg.ge.com,awxrdwq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = awxrdwq1.tsg.ge.com) (PORT = 1530))) - (CONNECT_DATA = (SID = awxrdwq1))) - -awxrdwp1, awxrdwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = awxrdwp1.ae.ge.com) (PORT = 1530))) - (CONNECT_DATA = (SID = awxrdwp1))) - -caltna, caltna.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = pikeu02ora.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = caltna))) - -evncpep1, evncpep1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpep1.ae.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=evncpep1)(GLOBAL_NAME=evncpep1.ae.ge.com))) - -etppegd1, etppegd1.tsg.ge.com, etppegd1.energy.ge.com, etppegd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = etppegd1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etppegd1))) - -evncpep1t, evncpep1t.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse16.ae.ge.com)(Port=1612)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse16.ae.ge.com)(Port=1613))) - (CONNECT_DATA=(SID=evncpep1)(GLOBAL_NAME=evncpep1.ae.ge.com))) - -cp_prd, cp_prd.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpap1.ae.ge.com)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpap1.ae.ge.com)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpap1.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=evncpap1)(GLOBAL_NAME=cp_prd.ae.ge.com))) - -RRA_bse01, RRA_bse01.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse01.ae.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=RRA)(GLOBAL_NAME=RRA_bse01.ae.ge.com))) - -OEORPC_bse01, OEORPC_bse01.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse01.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=OEORPC)(GLOBAL_NAME=OEORPC_bse01.ae.ge.com))) - -cp_clm, cp_clm.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse01.ae.ge.com)(Port=1526)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse01.ae.ge.com)(Port=1615)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse01.ae.ge.com)(Port=1616))) - (CONNECT_DATA=(SID=cp_clm)(GLOBAL_NAME=cp_clm.ae.ge.com))) - -evnodsq3, evnodsq3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq3.ae.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=evnodsq3))) - -euwoltp1, euwoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bswap01.ae.ge.com)(Port=1826))) - (CONNECT_DATA=(SID=euwoltp1))) - -evndssq3, evndssq3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq3.ae.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=evnodsq3))) - -evnodsq4,evnodsq4.tsg.ge.com,evnodsq4.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq4.tsg.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evnodsq4))) - -evndssq4,evndssq4.tsg.ge.com,evndssq4.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evndssq4.tsg.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evndssq4))) - -old_evndssq4, old_evndssq4.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bse01.ae.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evndssq4))) - -evnclmp2, evnclmp2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnclmp2.ae.ge.com)(Port=1525))) - (CONNECT_DATA = (SID = evnclmp2))) - -evncped1, evncped1.ae.ge.com = - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncped1.ae.ge.com)(Port=1522)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncped1.ae.ge.com)(Port=1618)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncped1.ae.ge.com)(Port=1619))) - (CONNECT_DATA=(SID=evncped1)(GLOBAL_NAME=evncped1.ae.ge.com))) - -evncpeq1, evncpeq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpeq1.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evncpeq1)(GLOBAL_NAME=evncpeq1.ae.ge.com))) - -evncpet1, evncpet1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsel93.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evncpet1)(GLOBAL_NAME=evncpet1.ae.ge.com))) - -evnoltd5, evnoltd5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltd5.ae.ge.com)(Port=1631))) - (CONNECT_DATA=(SID=evnoltd5))) - -ge_dev1, ge_dev1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltd5.ae.ge.com)(Port=1631))) - (CONNECT_DATA=(SID=evnoltd5))) - -ecioltd1,ecioltd1.tsg.ge.com,ecioltd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltd1.tsg.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=ecioltd1))) - -ntxprmq1,ntxprmq1.tsg.ge.com,ntxprmq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ntxprmq1.tsg.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=ntxprmq1))) - -ge_lbr,ge_lbr.tsg.ge.com,ge_lbr.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltd1.tsg.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=ecioltd1))) - -ecioltq1,ecioltq1.tsg.ge.com,ecioltq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1528)(Host=ecioltq1.tsg.ge.com))) - (CONNECT_DATA=(SID=ecioltq1))) - -ge_qa1, ge_qa1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1528)(Host=ecioltq1.tsg.ge.com))) - (CONNECT_DATA=(SID=ecioltq1))) - -evnoltd4, evnoltd4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltd4.ae.ge.com)(Port=1531))) - (CONNECT_DATA=(SID=evnoltd4))) - -ge_dev4, ge_dev4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltd4.ae.ge.com)(Port=1531))) - (CONNECT_DATA=(SID=evnoltd4))) - -evnodsd4, evnodsd4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsd4.ae.ge.com)(Port=1633))) - (CONNECT_DATA=(SID=evnodsd4))) - -# host changed wo 946133 4/12/11 jaf -evnodsd6, evnodsd6.ae.ge.com, evnodsd6.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = evnodsd6.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SERVICE_NAME = evnodsd6))) - -evndssd3, evndssd3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evndssd3.ae.ge.com)(Port=1630))) - (CONNECT_DATA=(SID=evndssd3))) - -evnoltq4, evnoltq4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq4.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evnoltq4))) - -evndssd4, evndssd4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evndssd4.ae.ge.com)(Port=1632))) - (CONNECT_DATA=(SID=evndssd4))) - -evnosbq1, evnosbq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbq1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnosbq1))) - -evnosbd1, evnosbd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=evnosbd1.ae.ge.com)(PORT=1525))) - (CONNECT_DATA=(SID=evnosbd1))) - -evnoltd1, evnoltd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=evnoltd1.ae.ge.com)(PORT=1634))) - (CONNECT_DATA=(SID=evnoltd1))) - -evnoltq1,evnoltq1.tsg.ge.com,evnoltq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq1.tsg.ge.com)(Port=1615))) - (CONNECT_DATA=(SID=evnoltq1))) - -evnflrp1, evnflrp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnflrp1.ae.ge.com)(Port=1532))) - (CONNECT_DATA=(SID=evnflrp1))) - -evnoemp1, evnoemp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoemp1.ae.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=evnoemp1))) - -aapsbld1, aapsbld1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=aapsbld1.ae.ge.com)(Port=1529)) - (CONNECT_DATA = (SID = AAPSBLD1))) - -aapsblq1, aapsblq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=aapsblq1.ae.ge.com)(Port=1529)) - (CONNECT_DATA = (SID = AAPSBLQ1))) - -usnerps1, usnerps1.ae.ge.com, usnerps1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnerps1.tsg.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=usnerps1))) - -usnapsp1, usnapsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnapsp1.ae.ge.com)(Port=1532))) - (CONNECT_DATA=(SID=usnapsp1))) - -usnerpq1, usnerpq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnerpq1.ae.ge.com)(Port=1525))) - (CONNECT_DATA=(SID=usnerpq1))) - -usnerpu1, usnerpu1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnerpu1.ae.ge.com)(Port=1527))) - (CONNECT_DATA=(SID=usnerpu1))) - -usnapsq1, usnapsq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnapsq1.ae.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=usnapsq1))) - -usnerpd1, usnerpd1.ae.ge.com,usnerpd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnerpd1.tsg.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=usnerpd1))) - -usnerpc1, usnerpc1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsed500.ae.ge.com)(Port=1525))) - (CONNECT_DATA=(SID=usnerpc1))) - -usnerpp1, usnerpp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnerpp1.ae.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=usnerpp1))) - -usnapsd1, usnapsd1.ae.ge.com, usnapsd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=usnapsd1.tsg.ge.com)(Port=1527))) - (CONNECT_DATA=(SID=usnapsd1))) - -usnapsu1, usnapsu1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsedb101.ae.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=usnapsu1))) - -utptmcp1, utptmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = utptmcp1.ae.ge.com)(PORT = 1531))) - (CONNECT_DATA = (SID = utptmcp1))) - -utptmcp2, utptmcp2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = utptmcp2.ae.ge.com)(PORT = 1535))) - (CONNECT_DATA = (SID = utptmcp2))) - -utptmcp3, utptmcp3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = utptmcp3.ae.ge.com)(PORT = 1527))) - (CONNECT_DATA = (SID = utptmcp3))) - -ge_letds, ge_letds.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=letds.ae.ge.com)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=letds.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=letds.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=ge_letds))) - -ge_etds, ge_etds.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=etds1.ae.ge.com)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=etds1.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=etds1.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=ge_etds))) - -ge_etds2, ge_etds2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=etds1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=ge_etds2))) - -geletds2,ge_letds2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=etds2.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=ge_letds2))) - -qe_etds2, qe_etds2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=etds3.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=ge_etds2))) - -qeletds2, qeletds2.ae.ge.com, qe_letds2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=etds4.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=ge_letds2))) - - -ge_prd1, ge_prd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp5.ae.ge.com)(Port=1609)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp5.ae.ge.com)(Port=1610))) - (CONNECT_DATA=(SID=evnoltp5))) - -evnoltp5, evnoltp5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp5.ae.ge.com)(Port=1609)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp5.ae.ge.com)(Port=1610))) - (CONNECT_DATA=(SID=evnoltp5))) - -ge_prd3, ge_prd3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp7.ae.ge.com)(Port=1630))) - (CONNECT_DATA=(SID=evnoltp7))) - -evnoltp7, evnoltp7.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp7.ae.ge.com)(Port=1630))) - (CONNECT_DATA=(SID=evnoltp7))) - -ase2000, ase2000.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=dcvm2051.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=ase2000))) - -awhrdwd1, awhrdwd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=awhrdwd1.ae.ge.com)(Port=1529))) - (CONNECT_DATA = (SID = AWHRDWD1))) - -adwodsd1, adwodsd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=adwodsd1.ae.ge.com)(Port=1531))) - (CONNECT_DATA = (SID = ADWODSD1))) - -adwodsq1, adwodsq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=adwodsq1.ae.ge.com)(Port=1529))) - (CONNECT_DATA = (SID = ADWODSQ1))) - -adwodsp1, adwodsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=adwodsp1.ae.ge.com)(Port=1526)) - (CONNECT_DATA = (SID = ADWODSP1))) - -aob920d1, aob920d1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = aob920d1.ae.ge.com)(PORT = 1536))) - (CONNECT_DATA = (SID = aob920d1))) - -aob920q1, aob920q1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = aob920q1.ae.ge.com)(PORT = 1536))) - (CONNECT_DATA = (SID = aob920q1))) - -aob920p1, aob920p1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = aob920p1.ae.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID = aob920p1))) - -aox920p1, aox920p1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = aox920p1.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA = (SID = aox920p1))) - -awhipwp1, awhipwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = awhipwp1.ae.ge.com)(PORT = 1531))) - (CONNECT_DATA = (SID = awhipwp1))) - -#changed 6/22/11 jaf 995318 -awhrdwq1, awhrdwq1.ae.ge.com, awhrdsq1.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=awhrdwq1.tsg.ge.com)(Port=1634))) - (CONNECT_DATA = (SID = AWHRDWQ1))) - -awhrdwp1, awhrdwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=awhrdwp1.ae.ge.com)(Port=1529)) - (CONNECT_DATA = (SID = awhrdwp1))) - -eueodsd1,eueodsd1.tsg.ge.com,eueodsd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsd1.ae.ge.com)(PORT = 1597)) - (CONNECT_DATA = (SID = eueodsd1))) - -eueoltda, eueoltda.tsg.ge.com,eueoltda.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltda.tsg.ge.com)(PORT = 1539)) - (CONNECT_DATA = (SID = eueoltda))) - -eueodsd2,eueodsd2.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsd2.energy.ge.com)(PORT = 1545)) - (CONNECT_DATA = (SID = eueodsd2))) - -eueodsq2.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsq2.energy.ge.com)(PORT = 1521)) - (CONNECT_DATA = (SID = eueodsq2))) - -euerdwd1, euerdwd1.ae.ge.com,euerdwd1.energy.ge.com,euerdwd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwd1.tsg.ge.com)(PORT = 1599)) - (CONNECT_DATA = (SID = euerdwd1))) - -euerdwq1,euerdwq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwq1.ae.ge.com)(PORT = 1521)) - (CONNECT_DATA = (SID = euerdwq1))) - -euerdwp1,euerdwp1.tsg.ge.com,euerdwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwp1.ae.ge.com)(PORT = 1521)) - (CONNECT_DATA = (SID = euerdwp1))) - -enpp.gpsore66.corporate.ge.com= - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora66.corporate.ge.com)(PORT = 1522)) - (CONNECT_DATA = (SID = gpsore66))) - -eueodsq1,eueodsq1.tsg.ge.com,eueodsq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsq1.ae.ge.com)(PORT = 1597)) - (CONNECT_DATA = (SID = eueodsq1))) - -eueodsp1,eueodsp1.tsg.ge.com,eueodsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsp1.ae.ge.com)(PORT = 1599)) - (CONNECT_DATA = (SID = eueodsp1))) - -eueoltd1, eueoltd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltd1.ae.ge.com)(PORT = 1598)) - (CONNECT_DATA = (SID = eueoltd1))) - -eueoltq1, eueoltq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltq1.ae.ge.com)(PORT = 1598)) - (CONNECT_DATA = (SID = eueoltq1))) - -eueoltp1, eueoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=eueoltp1.ae.ge.com)(Port=1598)) - (CONNECT_DATA = (SID = EUEOLTP1))) - -ge_osb, ge_osb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbp1.ae.ge.com)(Port=1621)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbp1.ae.ge.com)(Port=1622))) - (CONNECT_DATA=(SID=evnosbp1))) - -evnosbp1, evnosbp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbp1.ae.ge.com)(Port=1621)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbp1.ae.ge.com)(Port=1622))) - (CONNECT_DATA=(SID=evnosbp1))) - -evnoltp4, evnoltp4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp4.ae.ge.com)(Port=1638)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp4.ae.ge.com)(Port=1639))) - (CONNECT_DATA=(SID=evnoltp4))) - -evnoltp1, evnoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp1.ae.ge.com)(Port=1615)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp1.ae.ge.com)(Port=1616))) - (CONNECT_DATA = (SID = evnoltp1))) - -evnoltp2, evnoltp2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp2.ae.ge.com)(Port=1618)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp2.ae.ge.com)(Port=1619))) - (CONNECT_DATA = (SID = evnoltp2))) - -faiprod, faiprod.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp2.ae.ge.com)(Port=1618))) - (CONNECT_DATA = (SID = evnoltp2))) - -evnoltp3, evnoltp3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp3.ae.ge.com)(Port=1627)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp3.ae.ge.com)(Port=1628))) - (CONNECT_DATA=(SID=evnoltp3))) - -evndssp4,evndssp4.tsg.ge.com,evndssp4.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evndssp4.ae.ge.com)(PORT=1521))) - (CONNECT_DATA= (SID=evndssp4))) - -ge_wh1, ge_wh1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp5.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evnodsp5))) - -evnodsp5,evnodsp5.tsg.ge.com,evnodsp5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp5.ae.ge.com)(Port=1522)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp5.ae.ge.com)(Port=1523)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp5.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnodsp5))) - -evnodsp6, evnodsp6.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp6.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnodsp6))) - -evndssp1t, evndssp1t.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=BSE15.ae.ge.com)(Port=1606)) - (ADDRESS=(PROTOCOL=TCP)(Host=BSE15.ae.ge.com)(Port=1607))) - (CONNECT_DATA=(SID=dp1_test))) - - -ge_bdw, ge_bdw.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp4.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnodsp4))) - -ge_pds1, ge_pds1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp3.ae.ge.com)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp3.ae.ge.com)(Port=1636)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp3.ae.ge.com)(Port=1637))) - (CONNECT_DATA=(SID=evnodsp3))) - -evndssp3t, evndssp3t.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bse18)(Port=1636)) - (ADDRESS=(PROTOCOL=TCP)(Host=bse18)(Port=1637))) - (CONNECT_DATA=(SID=dp3_test))) - -estoltp1, estoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bss01.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=estoltp1))) - -qstoltp1, qstoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=qbss01)(Port=1521))) - (CONNECT_DATA=(SID=estoltp1))) - -qestoltp1, qestoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=qbss01)(Port=1521))) - (CONNECT_DATA=(SID=estoltp1))) - -ge_str, ge_str.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bss01)(Port=1521))) - (CONNECT_DATA=(SID=estoltp1))) - -qstoltp1, qstoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=qbss01)(Port=1521))) - (CONNECT_DATA=(SID=estoltp1))) - -eonoltp1, eonoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=eonoltp1.ae.ge.com)(Port=1521)) - (CONNECT_DATA=(SID=eonoltp1))) - -qonoltp1, qonoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=eonoltp1)(Port=1521)) - (CONNECT_DATA=(SID=eonoltp1))) - -ge_ont, ge_ont.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=eonoltp1)(Port=1521)) - (CONNECT_DATA=(SID=eonoltp1))) - -aemdv3_gesfc, aemdv3_gesfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=aemdv3)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=aemdv3)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=aemdv3))) - (CONNECT_DATA=(SID=gesfc))) - -aemdv3_gesfcp, aemdv3_gesfcp.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=aemdv3)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1603)(Host=aemdv3)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1604)(Host=aemdv3))) - (CONNECT_DATA=(SID=gesfcp))) - -evfms1_gesfc, evfms1_gesfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=evfms1)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=evfms1)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=evfms1))) - (CONNECT_DATA=(SID=gesfc))) - -evfms2_gesfc, evfms2_gesfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=evfms2)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=evfms2)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=evfms2))) - (CONNECT_DATA=(SID=gesfc))) - -hkfms1_gesfc, hkfms1_gesfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=hkfms1)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=hkfms1)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=hkfms1))) - (CONNECT_DATA=(SID=gesfc))) - -hkfms2_gesfc, hkfms2_gesfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=hkfms2)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=hkfms2)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=hkfms2))) - (CONNECT_DATA=(SID=gesfc))) - -rtfms1_gesfc, rtfms1_gesfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=rtfms1)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=rtfms1)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=rtfms1))) - (CONNECT_DATA=(SID=gesfc))) - -rtfms2_gesfc, rtfms2_gesfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=rtfms2)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=rtfms2)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=rtfms2))) - (CONNECT_DATA=(SID=gesfc))) - -ecioltp1, ecioltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltp1.ae.ge.com)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltp1.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltp1.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=ecioltp1))) - -ge_evsfc, ge_evsfc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltp1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltp1)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=ecioltp1)(Port=1601))) - (CONNECT_DATA=(SID=ecioltp1))) - -oradev.mras.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erpdev.mras.ae.ge.com)(PORT = 1552))) - (CONNECT_DATA = (SID = ORADEV))) - -gpsesx76,gpsesx76.tsg.ge.com,gpsesx76.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsesx76.tsg.ge.com)(PORT = 1554)) - (CONNECT_DATA = (SID = gpsesx76))) - -gpsor252,gpsor252.energy.ge.com,gpsor252.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsor252.CORPORATE.GE.COM)(PORT = 1521)) - (CONNECT_DATA = (SID = gpsor252))) - -gpsdba58.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = GPSDBA58.CORPORATE.GE.COM)(PORT = 1521)) - (CONNECT_DATA = (SID = DWDEV))) - -gpsdba59.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = GPSDBA59.CORPORATE.GE.COM)(PORT = 1521)) - (CONNECT_DATA = (SID = DWPRD))) - -hrdwrp_n.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = cihcispdb015.corporate.ge.com)(Port = 1539))) - (CONNECT_DATA =(SID = hrdwrp))) - -ordwhr10.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=TCP.corporate.ge.com)(PROTOCOL=TCP) - (Host=3.39.46.20)(Port=1531))) - (CONNECT_DATA=(SID=ORDWHR10))) - -d1stars.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=TCP.corporate.ge.com)(PROTOCOL=TCP) - (Host=cisdvdb1.corporate.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=star)(GLOBAL_NAME=d1stars.corporate.ge.com))) - -p1apcinps.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(COMMUNITY=TCP.corporate.ge.com) (HOST=apcinpp001c.corporate.ge.com)(Port=1571))) - (CONNECT_DATA = (SID = apcinp))) - -S1RUMLD.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP) (Host = cisdwd001.corporate.ge.com) (Port = 1583)) - (CONNECT_DATA = (SID = ruml))) - -SCHORD52 = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP) (Host = schdba52.sch.ge.com) (Port = 1521)) - (CONNECT_DATA = (SID = schord52))) - -blsoru51, blsoru51.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP) (Host = schdba51.sch.ge.com) (Port = 1521)) - (CONNECT_DATA = (SID = blsoru51))) - -GPSORS66, GPSORS66.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP) (Host = gpsora66.corporate.ge.com) (Port = 1522)) - (CONNECT_DATA = (SID = gpsors66))) - -p1stars.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=TCP.corporate.ge.com)(PROTOCOL=TCP) - (Host=corpp012.corporate.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=star)(GLOBAL_NAME=p1stars.corporate.ge.com))) - -p1star1s.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=TCP.corporate.ge.com)(PROTOCOL=TCP) - (Host=corpvc1069.corporate.ge.com)(Port=1580))) - (CONNECT_DATA=(SID=star1)(GLOBAL_NAME=p1star1s.corporate.ge.com))) - -wales_dw, wales_dw.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(Host=3.253.252.24)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1600)(Host=3.253.252.24)) - (ADDRESS=(PROTOCOL=TCP)(PORT=1601)(Host=3.253.252.24))) - (CONNECT_DATA=(SID=dw01))) - -ge_msn, ge_msn.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=s051)(Port=1521))) - (CONNECT_DATA = (SID = ge_msn2))) - -wh_pltsb_spx.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=spx.world)(PROTOCOL=SPX)(Service=wh_pltsb_spx))) - (CONNECT_DATA = (SID = ORCL))) - -wh_pltsb_tcp.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.world)(PROTOCOL=TCP) - (Host=wh_nt_svr3.ae.ge.com)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.world)(PROTOCOL=TCP) - (Host=wh_nt_svr3.ae.ge.com)(Port=1526))) - (CONNECT_DATA = (SID = ORCL))) - -el_paris, el_paris.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bselan1)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bselan1)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bselan1)(Port=1600))) - (CONNECT_DATA=(SID=elnimnp1)(GLOBAL_NAME=el_paris.ae.ge.com))) - -lynoltp1, lynoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=lynoltp1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=lynoltp1))) - -lyntmcp1, lyntmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = lyntmcp1.ae.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = lyntmcp1))) - -grnoltp1, grnoltp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=grnoltp1.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=grnoltp1))) - -grntmcp1, grntmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = grntmcp1.ae.ge.com)(PORT = 1532))) - (CONNECT_DATA = (SID = grntmcp1))) - -evnapwd1, evnapwd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwd1)(Port=1531))) - (CONNECT_DATA=(SID=evnapwd1))) - -evnapwdb, evnapwdb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwdb.tsg.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnapwdb))) - -evnapwqb, evnapwqb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwqb.tsg.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evnapwqb))) - -evnapwqb_19, evnapwqb_19.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseadm19.ae.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=evnapwqb))) - -evnapwf1, evnapwf1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwf1)(Port=1524))) - (CONNECT_DATA=(SID=evnapwf1))) - -databras2 = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(Host=3.59.241.17) (Port=1521))) - (CONNECT_DATA=(SID=ge))) - -entreposto.databras.com.br = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(Host=3.59.241.15) (Port=1521))) - (CONNECT_DATA=(SID=repetro))) - -sabcpad1, sabcpad1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabcpad1)(Port=1521))) - (CONNECT_DATA=(SID=sabcpad1))) - -hge.databras.com.br = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=3.59.241.15)(Port=1521))) - (CONNECT_DATA=(SID=hge))) - -ge.databras.com.br = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=3.59.241.17)(Port=1521))) - (CONNECT_DATA=(SID=ge))) - -svtsybr7, svtsybr7.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.22.82.4)(PORT = 1521))) - (CONNECT_DATA = (SID = svtsybr7))) - -sabcpaq1, sabcpaq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabcpaq1)(Port=1521))) - (CONNECT_DATA=(SID=sabcpaq1))) - -sabdevd1, sabdevd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabdevd1)(Port=1532))) - (CONNECT_DATA=(SID=sabdevd1))) - -sabdevd2, sabdevd2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sabdevd2.ae.ge.com)(PORT = 1526))) - (CONNECT_DATA = (SID = sabdevd2))) - -saboltq1, saboltq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=saboltq1)(Port=1522))) - (CONNECT_DATA=(SID=saboltq1))) - -sabapwq1, sabapwq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabapwq1)(Port=1522))) - (CONNECT_DATA=(SID=sabapwq1))) - -sabapwp1, sabapwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabapwp1)(Port=1522))) - (CONNECT_DATA=(SID=sabapwp1))) - -saboltp1, saboltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp1)(Port=1521))) - (CONNECT_DATA=(SID=saboltp1))) - -sabcpap1, sabcpap1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabcpap1)(Port=1521))) - (CONNECT_DATA=(SID=sabcpap1))) - -saboltq2, saboltq2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=saboltq2)(Port=1522))) - (CONNECT_DATA=(SID=saboltq2))) - -saboltp2, saboltp2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp2)(Port=1522))) - (CONNECT_DATA=(SID=saboltp2))) - -qabapwp1, qabapwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.236.60.19)(PORT = 1522))) - (CONNECT_DATA = (SERVICE_NAME = qabapwp1))) - - -qabcpap1, qabcpap1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = qabcpap1.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = qabcpap1))) - - -qaboltp1, qaboltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = qaboltp1.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = qaboltp1))) - - -qaboltp2, qaboltp2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = qaboltp2.ae.ge.com)(PORT = 1522))) - (CONNECT_DATA = (SERVICE_NAME = qaboltp2))) - -evnapwda, evnapwda.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwda)(Port=1507))) - (CONNECT_DATA=(SID=evnapwda))) - -evnapwqa, evnapwqa.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwqa)(Port=1521))) - (CONNECT_DATA=(SID=evnapwqa))) - -evnapwpa, evnapwpa.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwpa.ae.ge.com)(Port=1527))) - (CONNECT_DATA=(SID=evnapwpa))) - -evnapwpb, evnapwpb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = evnapwpb.ae.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = evnapwpb)(GLOBAL_NAME=evnapwpb.ae.ge.com))) - -elnimnd1, elnimnd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bselan1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bselan1)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=bselan1)(Port=1601))) - (CONNECT_DATA=(SID=elnimnd1))) - -elnimnp1, elnimnp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bselan1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bselan1)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=bselan1)(Port=1604))) - (CONNECT_DATA = (SID = elnimnp1))) - -wilsfcp1, wilsfcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=wiloltp1.ae.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=wiloltp1))) - -wiloltp1, wiloltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=wiloltp1.ae.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=wiloltp1))) - -wiltmcp1, wiltmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = wiltmcp1.ae.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = wiltmcp1))) - -atpwjep1, atpwjep1.db.wlm.geaerospace.net = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = atpwjep1.db.wlm.geaerospace.net)(PORT = 1532))) - (CONNECT_DATA = (SID = atpwjep1))) - -DES2 = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = AVIALL) (PROTOCOL = TCP) (Host = 139.64.11.134) (Port = 1521))) - (CONNECT_DATA = (SID = DES2))) - -MSS = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = AVIALL) (PROTOCOL = TCP) (HOST = 3.219.184.126) (PORT = 1521))) - (CONNECT_DATA = (SID = MSS))) - -EPSILON = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = AVIALL) (PROTOCOL = TCP) (HOST = 3.219.184.124) (PORT = 1521))) - (CONNECT_DATA = (SID = EPSILON))) - -DATALOAD = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = AVIALL) (PROTOCOL = TCP) (Host = 3.219.184.134) (Port = 1521))) - (CONNECT_DATA = (SID = DATALOAD))) - -genesis, genesis.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.ae.ge.com) (PROTOCOL = TCP) (Host = cal21.ae.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = GENESIS))) - -tabu, tabu.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.ae.ge.com) (PROTOCOL = TCP) (Host = cal22.ae.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = TABU))) - -rkive, rkive.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = pik001oraaege.ae.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = RKIVE))) - -ENIGMA = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = AVIALL) (PROTOCOL = TCP) (Host = 3.219.184.133) (Port = 1521))) - (CONNECT_DATA = (SID = ENIGMA))) - -TESTA = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = AVIALL) (PROTOCOL = TCP) (Host = 3.219.184.133) (Port = 1521))) - (CONNECT_DATA = (SID = TESTA))) - -prime, prime.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.ae.ge.com) (PROTOCOL = TCP) (Host = cal24) (Port = 1521))) - (CONNECT_DATA = (SID = PRIME))) - -calcpap1, calcpap1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = calcpap1)(Port = 1521))) - (CONNECT_DATA = (SID = calcpap1)(GLOBAL_NAME=calcpap1.ae.ge.com))) - -cfacs, cfacs.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = pik001oraaege)(Port = 1521))) - (CONNECT_DATA = (SID = cfacs)(GLOBAL_NAME=cfacs.ae.ge.com))) - -calcpad3, calcpad3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = calcpad3)(Port = 1521))) - (CONNECT_DATA = (SID = calcpad3)(GLOBAL_NAME=calcpad3.ae.ge.com))) - -calcpaq1, calcpaq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = calcpaq1)(Port = 1521))) - (CONNECT_DATA = (SID = calcpaq1)(GLOBAL_NAME=calcpaq1.ae.ge.com))) - -#changed 6/22/11 jaf 995318 -calfdwq1, calfdwq1.ae.ge.com, calfdwq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = calfdwq1.tsg.ge.com)(Port = 1635))) - (CONNECT_DATA = (SID = calfdwq1)(GLOBAL_NAME=calfdwq1.ae.ge.com))) - -calfdwd1, calfdwd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = calfdwd1)(Port = 1521))) - (CONNECT_DATA = (SID = calfdwd1)(GLOBAL_NAME=calfdwd1.ae.ge.com))) - -calapwq1, calapwq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = calapwq1)(Port = 1521))) - (CONNECT_DATA = (SID = calapwq1)(GLOBAL_NAME=calapwq1.ae.ge.com))) - -# host and port changed 2/22/11 908844 -awxrdwd1, awxrdwd1.ae.ge.com, awxrdwd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = awxrdwd1.tsg.ge.com)(PORT = 1540)) - (CONNECT_DATA = (SID = awxrdwd1))) - -awlosbp1, awlosbp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = awlosbp1)(Port = 1521))) - (CONNECT_DATA = (SID = awlosbp1)(GLOBAL_NAME=awlosbp1.ae.ge.com))) - -FNDFS_bsupa100, FNDFS_bsupa100.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsupa100)(Port=1538)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsupa100)(Port=1540))) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_bsupa101, FNDFS_bsupa101.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsupa101)(Port=1538)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsupa101)(Port=1540))) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_bsmal01, FNDFS_bsmal01.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1601))) - (CONNECT_DATA=(SID=FNDFS))) - -OEORPC_bsmal01, OEORPC_bsmal01.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=ae.ge.com)(PROTOCOL=TCP)(HOST=bsmal01)(PORT=1521)) - (ADDRESS=(COMMUNITY=ae.ge.com)(PROTOCOL=TCP)(HOST=bsmal02)(PORT=1603)) - (ADDRESS=(COMMUNITY=ae.ge.com)(PROTOCOL=TCP)(HOST=bsmal02)(PORT=1604))) - (CONNECT_DATA=(SID=OEORPC_bsmal01)(GLOBAL_NAME=OEORPC_bsmal01.ae.ge.com))) - -malosbp1, malosbp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=amaosbp1)(Port=1527))) - (CONNECT_DATA=(SID=amaosbp1))) - -malcpap1, malcpap1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1606)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1607))) - (CONNECT_DATA=(SID=malcpap1))) - -malfdwp1, malfdwp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1609)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1610))) - (CONNECT_DATA=(SID=malfdwp1))) - -malapwp1, malapwp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1612)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1613))) - (CONNECT_DATA=(SID=malapwp1))) - - -maloltp1, maloltp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1615)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1616))) - (CONNECT_DATA=(SID=maloltp1))) - -malcpep1, malcpep1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1618)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1619))) - (CONNECT_DATA=(SID=malcpep1))) - -maloltt1, maloltt1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1621)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal01)(Port=1622))) - (CONNECT_DATA=(SID=maloltt1))) - -FNDFS_bsmal02, FNDFS_bsmal02.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1601))) - (CONNECT_DATA=(SID=FNDFS))) - -OEORPC_bsmal02, OEORPC_bsmal02.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=ae.ge.com)(PROTOCOL=TCP)(HOST=bsmal02)(PORT=1521)) - (ADDRESS=(COMMUNITY=ae.ge.com)(PROTOCOL=TCP)(HOST=bsmal02)(PORT=1603)) - (ADDRESS=(COMMUNITY=ae.ge.com)(PROTOCOL=TCP)(HOST=bsmal02)(PORT=1604))) - (CONNECT_DATA=(SID=OEORPC_bsmal02)(GLOBAL_NAME=OEORPC_bsmal02))) - - -maloltd1, maloltd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1606)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1607))) - (CONNECT_DATA=(SID=maloltd1))) - -malosbd1, malosbd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1609)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1610))) - (CONNECT_DATA=(SID=malosbd1))) - -malcped1, malcped1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1612)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1613))) - (CONNECT_DATA=(SID=malcped1))) - -malcpeo1, malcpeo1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1615)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1616))) - (CONNECT_DATA=(SID=malcpeo1))) - -malcpeq1, malcpeq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1618)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1619))) - (CONNECT_DATA=(SID=malcpeq1))) - -RRA_bsing1, RRA_bsing1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1601))) - (CONNECT_DATA=(SID=RRA))) - -FNDFS_bsing1, FNDFS_bsing1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1604))) - (CONNECT_DATA=(SID=FNDFS))) - -sinapwp1, sinapwp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsing1)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsing1)(Port=1606)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsing1)(Port=1607))) - (CONNECT_DATA=(SID=sinapwp1)(GLOBAL_NAME=sinapwp1.ae.ge.com))) - -sing_osb= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=asiosbp1)(Port=1531))) - (CONNECT_DATA=(SID=asiosbp1))) - -nrtosbp1, nrtosbp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=ajaosbp1)(Port=1530))) - (CONNECT_DATA=(SID=ajaosbp1))) - -sincpap1, sincpap1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1612)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1613))) - (CONNECT_DATA=(SID=sincpap1))) - -sinfdwp1, sinfdwp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1615)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1616))) - (CONNECT_DATA=(SID=sinfdwp1))) - -sinoltp1, sinoltp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1618)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1619))) - (CONNECT_DATA=(SID=sinoltp1))) - -sincpep1, sincpep1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1621)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsing1)(Port=1622))) - (CONNECT_DATA=(SID=sincpep1))) - -gtsjded1, gtsjded1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsid04)(Port=1521))) - (CONNECT_DATA=(SID=gtsjded1))) - -gtsoltd1, gtsoltd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsid04)(Port=1521))) - (CONNECT_DATA=(SID=gtsoltd1))) - -gtsoltd2, gtsoltd2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsid04)(Port=1521))) - (CONNECT_DATA=(SID=gtsoltd2))) - -gtsoltd3, gtsoltd3.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsid04)(Port=1521))) - (CONNECT_DATA=(SID=gtsoltd3))) - -alboltp1, alboltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=alboltp1.ae.ge.com)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=alboltp1.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=alboltp1.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=alboltp1))) - -albtmcp1, albtmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = albtmcp1.ae.ge.com)(PORT = 1532))) - (CONNECT_DATA = (SID = albtmcp1))) - -tmark.corporate.ge.com = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) - (Host=corpp016.corporate.ge.com)(Port=1522)) - (CONNECT_DATA = (SID = pcep))) - -# uncommented 3/24/11 per 934658 jaf -metrics_prd, metrics_prd.corporate.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP) - (Host=gpsora49.corporate.ge.com)(Port=1521)) - (CONNECT_DATA = (SID = gpsorp49))) - -#gpsorp49.corporate.ge.com = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora49.corporate.ge.com)(PORT = 1521))) -# (CONNECT_DATA = (SID = gpsorp49)) -# ) - -#gpsoro49.corporate.ge.com = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora49.corporate.ge.com)(PORT = 1526))) -# (CONNECT_DATA = (SID = gpsoro49)) -# ) - -metrics_stg.corporate.ge.com = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) - (Host=gpsdba55.corporate.ge.com)(Port=1521)) - (CONNECT_DATA = (SID = gpsors55))) - -metrics_qa.corporate.ge.com = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) - (Host=cltlhst51-52.geips.ge.com)(Port=1521)) - (CONNECT_DATA = (SID = cltorq51))) - -art_es_uat = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) - (Host=atlord09.geips.ge.com)(Port=1521)) - (CONNECT_DATA = (SID = atlord09))) - -gpswms76,gpswms76.tsg.ge.com,gpswms76.energy.ge.com = - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpswms76.energy.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID = gpswms76))) - -sjcsd004.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd004.ne.ge.com) (PORT = 1522))) - (CONNECT_DATA = (SID = CHEMD))) - -gpsiix80,gpsiix80.tsg.ge.com,gpsiix80.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsiix80.tsg.ge.com)(PORT=1599))) - (CONNECT_DATA=(SID=gpsiix80))) - -erp_sit_gpschxx1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgsd1003.energy.ge.com)(PORT = 1564))) - (CONNECT_DATA = (SERVICE_NAME = gpschxx1))) - -gpschxx1, gpschxx1.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpschxx1.tsg.ge.com)(PORT = 1592)) - (CONNECT_DATA = (SERVICE_NAME = gpschxx1))) - -gpschxc1.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgsd1003.energy.ge.com)(PORT = 1566)) - (CONNECT_DATA = (SERVICE_NAME = gpschxc1))) - -gpschxp1,gpschxp1.corporate.ge.com,gpschxp1.tsg.ge.com,gpschxp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp15.corporate.ge.com)(PORT = 25000))) - (CONNECT_DATA = (SERVICE_NAME = gpschxp1))) - -erppgjh1,erppgjh1.tsg.ge.com,erppgjh1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgjh1.energy.ge.com)(PORT = 1541))) - (CONNECT_DATA = (SID = erppgjh1))) - -erppgfr1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgsd1006.energy.ge.com)(PORT = 1538))) - (CONNECT_DATA = (SID = erppgfr1))) - -etppegs1, etppegs1.tsg.ge.com, etppegs1.energy.ge.com, etppegs1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = etppegs1.tsg.ge.com)(PORT = 1526))) - (CONNECT_DATA = (SID = etppegs1))) - -etppegq1,etppegq1.tsg.ge.com,etppegq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etppegq1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = etppegq1))) - -etppteq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etppteq1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etppteq1))) - -atlipwp1,atlipwp1.tsg.ge.com,atlipwp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlipwp1.energy.ge.com)(PORT = 1532))) - (CONNECT_DATA =(SID = atlipwp1))) - -ewhgneq3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhgneq3.energy.tsg.ge.com) (PORT = 1522))) - (CONNECT_DATA = (SID = ewhgneq3))) - -ewhsvcq3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhsvcq3.energy.tsg.ge.com) (PORT = 1523))) - (CONNECT_DATA = (SID = ewhsvcq3))) - -ewhpwrq3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhpwrq3.energy.tsg.ge.com) (PORT = 1524))) - (CONNECT_DATA = (SID = ewhpwrq3))) - -ewhinfq3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhinfq3.energy.tsg.ge.com) (PORT = 1525))) - (CONNECT_DATA = (SID = ewhinfq3))) - -etpcamd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = masdsd001.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (sid = etpcamd1))) - -mascamd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = masdsd001.energy.ge.com)(PORT = 1521)) - (CONNECT_DATA =(sid = mascamd1))) - -masdsd001.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = masdsd001.energy.ge.com)(PORT = 1527))) - (CONNECT_DATA =(sid = etppted1))) - -masqsca001.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = masqsca001.energy.ge.com)(PORT = 1583))) - (CONNECT_DATA =(sid = etpptet1))) - -gpsgned1,gpsgned1.tsg.ge.com,gpsgned1.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL=tcp)(HOST=gpsgned1.tsg.ge.com)(PORT=1550)) - (CONNECT_DATA = (SID=gpsgned1))) - -ewhpwrp3.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL=tcp)(HOST=ewhpwrp3.energy.tsg.ge.com)(PORT=1525)) - (CONNECT_DATA = (SID=ewhpwrp3))) - -gpsgnes1,gpsgnes1.tsg.ge.com,gpsgnes1.energy.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=gpsgnes1.energy.ge.com)(PORT=1594)) - (CONNECT_DATA=(SID=gpsgnes1))) - -gpsord77,gpsord77.tsg.ge.com,gpsord77.energy.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS= (PROTOCOL = TCP)(HOST = gpsord77.tsg.ge.com)(PORT = 1556))) - (CONNECT_DATA = (SID=gpsord77))) - -gpsspt10,gpsspt10.tsg.ge.com,gpsspt10.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpsspt10.tsg.ge.com)(PORT = 1612))) - (CONNECT_DATA= (SID = gpsspt10))) - -gpsmfd81.energy.ge.com = -(DESCRIPTION= - (ADDRESS= (PROTOCOL=tcp)(HOST=schd001a.sch.ge.com)(PORT=1535)) - (CONNECT_DATA=(SID=gpsmfd81))) - -cosmtest.geips.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(Host = atloru60.geips.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = atloru60))) - -atlord10,atlord10.tsg.ge.com,atlord10.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlord10.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = atlord10))) - -atlors10,atlors10.tsg.ge.com,atlors10.energy.ge.com = - (description = - (address_list = - (address = (protocol = tcp)(host = atlors10.geips.ge.com)(port = 1521))) - (connect_data =(sid = atlors10))) - -atlorp10,atlorp10.tsg.ge.com,atlorp10.energy.ge.com = - (description = - (address_list = - (address = (protocol = tcp)(host = atlorp10.geips.ge.com)(port = 1521))) - (connect_data = (sid = atlorp10))) - -atlord24,atlord24.tsg.ge.com,atlord24.geips.ge.com,atlord24.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlord24.geips.ge.com)(PORT = 1521)) - (CONNECT_DATA = (SID = atlord24) (SERVER = DEDICATED))) - -atlorp25,atlorp25.tsg.ge.com,atlorp25.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp25.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atlorp25) (SERVER = DEDICATED))) - -atlort09.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.198.187)(PORT = 1521))) - (CONNECT_DATA = (SID = atlort09) (SERVER = DEDICATED))) - -atlort09.geips.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlort09.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atlort09) (SERVER = DEDICATED))) - -atlorp73,atlorp73.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp73.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atlorp73))) - -atlord09,atlord09.ae.ge.com,atlord09.tsg.ge.com,atlord09.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlord09.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = atlord09))) - -enpp.atlord09.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlord09.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = atlord09))) - -atlord20,atlord20.tsg.ge.com,atlord20.energy.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) (Host=atlord20.geips.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = atlord20))) - -atlord67.energy.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=atlord67.geips.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = atlord67)(SERVER = DEDICATED))) - -erpesed2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erpesed2.energy.ge.com)(PORT = 1532))) - (CONNECT_DATA = (SID = ERPESED2))) - -schiic80.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) (Host=schd014.sch.ge.com)(Port=26001))) - (CONNECT_DATA = (SID = schiic80))) - -schgps80.energy.ge.com = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) - (Host=schd001b.sch.ge.com)(Port=26101)) - (CONNECT_DATA = (SID = schgps80))) - -schodm05.gegdc.ad.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba05.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = schodm05)(SID = schodm05))) - -#schop251.energy.ge.com = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (PROTOCOL = TCP)(HOST = schop251.sch.ge.com)(PORT = 1521))) -# (CONNECT_DATA = (SERVICE_NAME = schop251))) - -gpsescp1,gpsescp1.tsg.ge.com,gpsescp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) (Host=gpsescp1.corporate.ge.com)(Port=1537)) - (CONNECT_DATA = (SID = gpsescp1))) - -schgpc80.energy.ge.com = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP) (Host=schd001b.sch.ge.com)(Port=25001)) - (CONNECT_DATA = (SID = schgpc80))) - -schchx85.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd001c.sch.ge.com)(PORT = 25500))) - (CONNECT_DATA = (SERVICE_NAME = schchx85))) - -schdba19.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba19.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = schorl19))) - -schwst82.energy.ge.com= - (DESCRIPTION= - (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=schd014.sch.ge.com)(PORT=1593))) - (CONNECT_DATA=(SID=schwst82))) - -schchs85.energy.ge.com= - (DESCRIPTION= - (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=schd014.sch.ge.com)(PORT=25300))) - (CONNECT_DATA=(SID=schchs85)(SERVER=DEDICATED))) - -schchcnv.energy.ge.com= - (DESCRIPTION= - (ADDRESS_LIST=(ADDRESS=(PROTOCOL = TCP)(HOST = SCHD014.SCH.GE.COM)(PORT = 25500))) - (CONNECT_DATA=(SERVICE_NAME=schchcnv))) - -schchxd1.energy.ge.com= - (DESCRIPTION= - (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=schd014.sch.ge.com)(PORT=25200))) - (CONNECT_DATA=(SID=schchxd1)(SERVER=DEDICATED))) - -WLMDWHD1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=wlmpscb001.wilm.ge.com)(PORT = 1523))) - (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=WLMDWHD1.wilm.ge.com))) - -elnoltp1, elnoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=elnoltp1)(Port=1535)) - (CONNECT_DATA = (SID = elnoltp1))) - -elgenep1, elgenep1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = el002dbms)(Port = 1521)) - (ADDRESS = (PROTOCOL = TCP)(Host = el002dbms)(Port = 1526))) - (CONNECT_DATA = (SID = gene))) - -ewhcogd3.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhcogd3.energy.ge.com)(PORT = 1523)) - (CONNECT_DATA = (SID = ewhcogd3))) - -ewhgned3.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhgned3.energy.tsg.ge.com)(PORT = 1521)) - (CONNECT_DATA = (SID = ewhgned3))) - -ewhinfd3.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhinfd3.energy.tsg.ge.com)(PORT = 1525)) - (CONNECT_DATA = (SID = ewhinfd3))) - -ewhpwrd3.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhpwrd3.energy.tsg.ge.com)(PORT = 1522)) - (CONNECT_DATA = (SID = ewhpwrd3))) - -ewhsvcd3.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhsvcd3.energy.tsg.ge.com)(PORT = 1524)) - (CONNECT_DATA = (SID = ewhsvcd3))) - -gpsess76,gpsess76.energy.ge.com,gpsess76.tsg.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsess76.tsg.ge.com)(PORT = 1553)) - (CONNECT_DATA = (SID = gpsess76))) - -gpsnss11,gpsnss11.tsg.ge.com,gpsnss11.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsnss11.tsg.ge.com)(PORT = 1557)) - (CONNECT_DATA = (SID = gpsnss11))) - -gpsnst11.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsnst11.energy.ge.com)(PORT = 1541)) - (CONNECT_DATA = (SID = gpsnst11))) - -gpsnsx11,gpsnsx11.tsg.ge.com,gpsnsx11.energy.ge.com = - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpsnsx11.tsg.ge.com)(PORT = 1543))) - (CONNECT_DATA = (SID = gpsnsx11))) - -gpspgjp1,gpspgjp1.tsg.ge.com,gpspgjp1.psamer.energy.ge.com,gpspgjp1.energy.ge.com,gpspgjp1.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjp1.corporate.ge.com)(PORT=27000)) - (CONNECT_DATA=(SID=gpspgjp1))) - -gpspgjr1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjr1.energy.ge.com)(PORT = 1588))) - (CONNECT_DATA = (SID = gpspgjr1))) - -gpspad81.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspad81.energy.ge.com)(PORT = 1525))) - (CONNECT_DATA = (SERVICE_NAME = GPSPAD81))) - -SCHWSB82.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd014.sch.ge.com) - (PORT = 28871)) (CONNECT_DATA = (SID = SCHWSB82))) - -SCHWSD82.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd014.sch.ge.com) - (PORT = 28171)) (CONNECT_DATA = (SID = SCHWSD82))) - -SCHWST82.psamer.energy.ge.com= - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd014.sch.ge.com) - (PORT = 1593)) (CONNECT_DATA = (SID = SCHWST82))) - -SCHWGS82.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd014.sch.ge.com) - (PORT = 1596)) (CONNECT_DATA = (SID = SCHWGS82))) - -SCHCHT85.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = SCHD014.SCH.GE.COM) - (PORT = 1618)) (CONNECT_DATA = (SERVICE_NAME = schcht85))) - -GPSPAX81.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd001a.sch.ge.com) - (PORT = 1540)) (CONNECT_DATA = (SID = GPSPAX81))) - -SCHWDX82.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = SCHD014.SCH.GE.COM) - (PORT = 28071)) (CONNECT_DATA = (SERVICE_NAME = SCHWDX82))) - -# added alias, changed host and port 5/19/11 jaf -gpspgjd1, gpspgjd1.tsg.ge.com, gpspgjd1.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjd1.tsg.ge.com)(PORT = 1541)) - (CONNECT_DATA = (SID = gpspgjd1))) - -gpspgjd2.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjd2.energy.ge.com)(PORT = 1584)) - (CONNECT_DATA = (SID = gpspgjd2))) - -gpspgjt1, gpstgjp1.energy.ge.com, gpspgjt1.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjt1.tsg.ge.com)(PORT = 1544)) - (CONNECT_DATA = (SID = gpspgjt1))) - -gpspgjs2.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjs2.energy.ge.com)(PORT = 1582)) - (CONNECT_DATA = (SID = gpspgjs2))) - -gpspgjx1.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjx1.energy.ge.com)(PORT = 1587)) - (CONNECT_DATA = (SID = gpspgjx1))) - -gpspgjt2.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjt2.energy.ge.com)(PORT = 1586)) - (CONNECT_DATA = (SID = gpspgjt2))) - -gpspgjsb.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjsb.energy.ge.com)(PORT = 1588)) - (CONNECT_DATA = (SID = gpspgjsb))) - -gpspgjs1.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjs1.energy.ge.com)(PORT = 1581)) - (CONNECT_DATA = (SID = gpspgjs1))) - -gpsgapn1,gpsgapn1.tsg.ge.com,gpsgapn1.energy.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=gpsgapn1.tsg.ge.com)(PORT=1601)) - (CONNECT_DATA=(SID=gpsgapn1))) - -gpspgjd1.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjd1.energy.ge.com)(PORT = 1583))(CONNECT_DATA = (SID = gpspgjd1))) - -gpspgjd2.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjd2.energy.ge.com)(PORT = 1584))(CONNECT_DATA = (SID = gpspgjd2))) - -gpspgjt1.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjt1.energy.ge.com)(PORT = 1585))(CONNECT_DATA = (SID = gpspgjt1))) - -gpspgjs2.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjs2.energy.ge.com)(PORT = 1582))(CONNECT_DATA = (SID = gpspgjs2))) - -gpspgjx1.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjx1.energy.ge.com)(PORT = 1587))(CONNECT_DATA = (SID = gpspgjx1))) - -gpspgjt2.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjt2.energy.ge.com)(PORT = 1586))(CONNECT_DATA = (SID = gpspgjt2))) - -gpspgjsb.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjsb.energy.ge.com)(PORT = 1588))(CONNECT_DATA = (SID = gpspgjr1))) - -gpspgjs1,gpspgjs1.tsg.ge.com,gpspgjs1.energy.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = gpspgjs1.tsg.ge.com)(PORT = 1522))(CONNECT_DATA = (SID = gpspgjs1))) - -prod.world = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=TCP.world)(PROTOCOL=TCP)(Host=jtitis.jt.ae.com)(Port=1521)) - (CONNECT_DATA=(SID=PROD)(GLOBAL_NAME=prod.world))) - -mkgt.world = - (DESCRIPTION = - (ADDRESS=(COMMUNITY=TCP.world)(PROTOCOL=TCP)(Host=jtitis2)(Port=1521)) - (CONNECT_DATA=(SID=MKGT)(GLOBAL_NAME=mkgt.world))) - -jta.world = - (DESCRIPTION = - (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=jtmfgnt5)(Port=1521))) - (CONNECT_DATA=(SID=JTA)(GLOBAL_NAME=jta.world))) - -jtb.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=jtmfgnt5)(Port=1521))) - (CONNECT_DATA=(SID=JTB)(GLOBAL_NAME=jtb.world))) - -jtc.world = - (DESCRIPTION = - (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=jtmfgnt5)(Port=1521))) - (CONNECT_DATA=(SID=JTC)(GLOBAL_NAME=jtc.world))) - -jtx.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=jtmfgnt5)(Port=1521))) - (CONNECT_DATA=(SID=JTX)(GLOBAL_NAME=jtx.world))) - -jtoa.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=mkg1.jt.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=jtoa)(SERVER=DEDICATED))) - -FNDFS_mkg1.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=mkg1.jt.ae.ge.com)(Port=1626))) - (CONNECT_DATA=(SID=FNDFS))) - -evncpap1,evncpap1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpap1.ae.ge.com)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpap1.ae.ge.com)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpap1.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=evncpap1)(GLOBAL_NAME=evncpap1.ae.ge.com))) - -evncpar1, evncpar1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY = tcp.ae.ge.com)(PROTOCOL = TCP)(Host = evncpar1.tsg.ge.com)(Port = 1542))) - (CONNECT_DATA = (SID = evncpar1)(GLOBAL_NAME = evncpar1.ae.ge.com))) - -dbcia, dbcia.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) - (Host=saboltp1)(Port=1521))(ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) - (Host=saboltp1)(Port=1600))(ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) - (Host=saboltp1)(Port=1601)))(CONNECT_DATA=(SID=saboltp1))) - -dbvrg, dbvrg.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) - (Host=saboltp2)(Port=1522)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) - (Host=saboltp2)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) - (Host=saboltp2)(Port=1601))) - (CONNECT_DATA=(SID=saboltp2))) - -crdleod1= - (DESCRIPTION = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP) - (Host=leonardo.crd.ge.com)(Port=1521)) - (CONNECT_DATA=(SID=dev1)(GLOBAL_NAME=dev1.crd.ge.com))) - -ge_iw, ge_iw.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=aebdw1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=aebdw1)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=aebdw1)(Port=1601))) - (CONNECT_DATA=(SID=ge_iw))) - -ge_aph, ge_aph.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=c0531)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=c0531)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=c0531)(Port=1601))) - (CONNECT_DATA=(SID=ge_aph))) - -ge_sb, ge_sb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=c0197)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=c0197)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=c0197)(Port=1601))) - (CONNECT_DATA=(SID=ge_sb))) - -cms_dev, cms_dev.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = aecms1) (Port = 1521))) - (CONNECT_DATA = (SID = ge_cms))) - -ehs_ether, ehs_ether.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = lhp099) (Port = 1526))) - (CONNECT_DATA = (SID = EHS))) - -ge_pdmd7, ge_pdmd7.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = c0600) (Port = 1521))) - (CONNECT_DATA = (SID = ge_pdmd7))) - -idb, idb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = bse31) (Port = 1521))) - (CONNECT_DATA = (SID = IDB))) - -idb_dp1_ether, idb_dp1_ether.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = bse31) (Port = 1526))) - (CONNECT_DATA = (SID = IDB))) - -idb_dp2_ether, idb_dp2_ether.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = aeedp2) (Port = 1526))) - (CONNECT_DATA = (SID = IDB))) - - -mfa, mfa.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = aemap1_1) (Port = 1521))) - (CONNECT_DATA = (SID = ge_mfaprd))) - -mfa_pc, mfa_pc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = aemap1) (Port = 1526))) - (CONNECT_DATA = (SID = ge_mfaprd))) - -mfad, mfad.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = aes0a1) (Port = 1526))) - (CONNECT_DATA = (SID = ge_mfad))) - -mfad_pc, mfad_pc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = aesda1) (Port = 1526))) - (CONNECT_DATA = (SID = ge_mfad))) - -orcl1, orcl1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = 3.31.7.57) (Port = 1521))) - (CONNECT_DATA = (SID = orcl))) - -orcl2, orcl2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = 3.31.7.95) (Port = 1521))) - (CONNECT_DATA = (SID = orcl))) - -sarostst, sarostst.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = ae3ds1) (Port = 8000))) - (CONNECT_DATA = (SID = saro))) - -ae3ds1, ae3ds1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ae3ds1)(Port=8000)) - (ADDRESS=(PROTOCOL=TCP)(Host=ae3ds1)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=ae3ds1)(Port=1601))) - (CONNECT_DATA=(SID=saro))) - -ge_trn, ge_trn.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=aesda1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=aesda1)(Port=1612)) - (ADDRESS=(PROTOCOL=TCP)(Host=aesda1)(Port=1613))) - (CONNECT_DATA=(SID=ge_trn))) - -ge_uat, ge_uat.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=aesda1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=aesda1)(Port=1615)) - (ADDRESS=(PROTOCOL=TCP)(Host=aesda1)(Port=1616))) - (CONNECT_DATA=(SID=ge_uat))) - -bseh01, bseh01.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseh01)(Port=8000)) - (ADDRESS=(PROTOCOL=TCP)(Host=bseh01)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=bseh01)(Port=1601))) - (CONNECT_DATA=(SID=saro))) - -saro, saro.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseh01)(Port=8000))) - (CONNECT_DATA = (SID = saro))) - -edm1geae, edm1geae.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseh01)(Port=8000))) - (CONNECT_DATA = (SID = saro))) - -hpiw, hpiw.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseh01)(Port=8000))) - (CONNECT_DATA=(SID=hpiw))) - - -elhdsk, elhdsk.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = el002dbms)(PORT = 1521)) - (CONNECT_DATA = (SID = gene))) - -RRA_tsgsq00198, RRA_tsgsq00198.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00198)(PORT=1521)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00198)(PORT=1600)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00198)(PORT=1601))) - (CONNECT_DATA=(SID=RRA))) - -FNDFS_tsgsq00198, FNDFS_tsgsq00198.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00198)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00198)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00198)(Port=1604))) - (CONNECT_DATA=(SID=FNDFS))) - - -RRA_tsgsq00199, RRA_tsgsq00199.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00199)(PORT=1521)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00199)(PORT=1600)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00199)(PORT=1601))) - (CONNECT_DATA=(SID=RRA))) - -FNDFS_tsgsq00199, FNDFS_tsgsq00199.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00199)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00199)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00199)(Port=1604))) - (CONNECT_DATA=(SID=FNDFS))) - - -RRA_tsgsq00200, RRA_tsgsq00200.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00200)(PORT=1521)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00200)(PORT=1600)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsq00200)(PORT=1601))) - (CONNECT_DATA=(SID=RRA))) - -FNDFS_tsgsq00200, FNDFS_tsgsq00200.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00200.ae.ge.com)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00200.ae.ge.com)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00200.ae.ge.com)(Port=1604)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsq00200.ae.ge.com)(Port=1704))) - (CONNECT_DATA=(SID=FNDFS))) - - -RRA_bsc01, RRA_bsc01.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=bsc01)(PORT=1521)) - (ADDRESS=(PROTOCOL=tcp)(HOST=bsc01)(PORT=1600)) - (ADDRESS=(PROTOCOL=tcp)(HOST=bsc01)(PORT=1601))) - (CONNECT_DATA=(SID=RRA))) - -RRA_tsgsp00271, RRA_tsgsp00271.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsp00271)(PORT=1521)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsp00271)(PORT=1600)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsp00271)(PORT=1601))) - (CONNECT_DATA=(SID=RRA))) - -RRA_tsgsp00270, RRA_tsgsp00270.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsp00270)(PORT=1521)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsp00270)(PORT=1600)) - (ADDRESS=(PROTOCOL=tcp)(HOST=tsgsp00270)(PORT=1601))) - (CONNECT_DATA=(SID=RRA))) - -RRA_bsc02, RRA_bsc02.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=tcp)(HOST=bsc02)(PORT=1521)) - (ADDRESS=(PROTOCOL=tcp)(HOST=bsc02)(PORT=1600)) - (ADDRESS=(PROTOCOL=tcp)(HOST=bsc02)(PORT=1601))) - (CONNECT_DATA=(SID=RRA))) - - -FNDFS_bsc01, FNDFS_bsc01.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsc01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsc01)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsc01)(Port=1604))) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_tsgsp00271, FNDFS_tsgsp00271.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00271)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00271)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00271)(Port=1604))) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_tsgsp00270, FNDFS_tsgsp00270.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00270)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00270)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00270)(Port=1604))) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_bsc02, FNDFS_bsc02.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=bsc02)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsc02)(Port=1603)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsc02)(Port=1604))) - (CONNECT_DATA=(SID=FNDFS))) - -celcpad1, celcpad1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=celcpad1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=celcpad1)(Port=1612)) - (ADDRESS=(PROTOCOL=TCP)(Host=celcpad1)(Port=1613))) - (CONNECT_DATA=(SID=celcpad1))) - -celcpaq1, celcpaq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=celcpaq1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=celcpaq1)(Port=1615)) - (ADDRESS=(PROTOCOL=TCP)(Host=celcpaq1)(Port=1616))) - (CONNECT_DATA=(SID=celcpaq1))) - -celcpap1, celcpap1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabcpap1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=sabcpap1)(Port=1609)) - (ADDRESS=(PROTOCOL=TCP)(Host=sabcpap1)(Port=1610))) - (CONNECT_DATA=(SID=sabcpap1))) - -cia, cia.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp1)(Port=1612)) - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp1)(Port=1613))) - (CONNECT_DATA=(SID=saboltp1))) - -vrg, vrg.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp2)(Port=1522)) - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp2)(Port=1615)) - (ADDRESS=(PROTOCOL=TCP)(Host=saboltp2)(Port=1616))) - (CONNECT_DATA=(SID=saboltp2))) - -pg_bsc01, pg_bsc01.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsc01)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsc01)(Port=1618)) - (ADDRESS=(PROTOCOL=TCP)(Host=bsc01)(Port=1619))) - (CONNECT_DATA=(SID=pg_bsc01))) - -celapwp1, celapwp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=sabapwp1)(Port=1522)) - (ADDRESS=(PROTOCOL=TCP)(Host=sabapwp1)(Port=1621)) - (ADDRESS=(PROTOCOL=TCP)(Host=sabapwp1)(Port=1622))) - (CONNECT_DATA=(SID=sabapwp1))) - -celapwt1, celapwt1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=celapwt1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=celapwt1)(Port=1621)) - (ADDRESS=(PROTOCOL=TCP)(Host=celapwt1)(Port=1622))) - (CONNECT_DATA=(SID=celapwt1))) - -SVTSYBR3 = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.237.204.150)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = SVTSYBR3))) - -ramses_hmmp.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = ramses.mras.ae.ge.com) (Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = ramses.mras.ae.ge.com) (Port = 1526))) - (CONNECT_DATA = (SID = hmmp))) - -patorcl.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = 3.34.221.205) (Port = 1522)) - (ADDRESS = (PROTOCOL = TCP) (Host = 3.34.221.205) (Port = 1526))) - (CONNECT_DATA = (SID = sixs))) - -patty.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.corporate.ge.com) (PROTOCOL = TCP) (Host = 3.34.221.170) (Port = 1529)) - (ADDRESS = (COMMUNITY = tcp.corporate.ge.com) (PROTOCOL = TCP) (Host = 3.34.221.170) (Port = 1526))) - (CONNECT_DATA = (SID = leg2))) - -FNDFS_gpsdba40, FNDFS_gpsdba40.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= gpsdba40.corporate.ge.com)(Port= 1540)) - (CONNECT_DATA = (SID = FNDFS))) - -d1crp1s, d1crp1s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= gpsdba40.corporate.ge.com)(Port= 1521)) - (CONNECT_DATA = (SID = crp1))) - -d1ssd1s, d1ssd1s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= gpsdba40.corporate.ge.com)(Port= 1522)) - (CONNECT_DATA = (SID = ssd1))) - -d1ssd2s, d1ssd2s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= gpsdba40.corporate.ge.com)(Port= 1523)) - (CONNECT_DATA = (SID = ssd2))) - -d1ssd3s, d1ssd3s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= gpsdba40.corporate.ge.com)(Port= 1524)) - (CONNECT_DATA = (SID = ssd3))) - -gpspgjp2.corporate.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = tsgp1403.corporate.ge.com)(PORT = 28001))(CONNECT_DATA = (SID = gpspgjp2))) - -ngm, ngm.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = evnoltpe)(Port = 1528))) - (CONNECT_DATA = (SID = evnoltpe))) - -naextranet, naextranet.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = evndssp4)(Port = 1521))) - (CONNECT_DATA =(SID = evndssp4))) - -ng_internal, ng_internal.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = evndssp4)(Port = 1521))) - (CONNECT_DATA =(SID = evndssp4))) - -naintranet, naintranet.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(Host = evnecop1)(Port = 1631))) - (CONNECT_DATA =(SID = evnecop1))) - -naminternet, naminternet.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp2)(Port=1618))) - (CONNECT_DATA = (SID = evnoltp2))) - -ng_external, ng_external.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp2)(Port=1618))) - (CONNECT_DATA = (SID = evnoltp2))) - -ng_qa,ng_qa.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq2.tsg.ge.com)(Port=1600))) - (CONNECT_DATA = (SID = evnoltq2))) - -ng_external,ng_external_qa.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq2.tsg.ge.com)(Port=1621))) - (CONNECT_DATA = (SID = evnodsq2))) - -ng_internal_qa, ng_internal_qa.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq1)(Port=1521))) - (CONNECT_DATA = (SID = evnodsq1))) - -evncogp1, evncogp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evncogp1.ae.ge.com)(Port=1527))) - (CONNECT_DATA = (SID = evncogp1))) - -evncogq1, evncogq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evncogq1.ae.ge.com)(Port=1527))) - (CONNECT_DATA = (SID = evncogq1))) - -evncogd1, evncogd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evncogd1.ae.ge.com)(Port=1533))) - (CONNECT_DATA = (SID = evncogd1))) - -evnecod1, evnecod1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnecod1.ae.ge.com)(Port=1635))) - (CONNECT_DATA = (SID = evnecod1))) - -evnecoq1,evnecoq1.tsg.ge.comevnecoq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnecoq1.tsg.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evnecoq1))) - -evnodsd2, evnodsd2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsd2.ae.ge.com)(Port=1639))) - (CONNECT_DATA = (SID = evnodsd2))) - -#changed 6/22/1 jaf 995318 -evndssq5, evndssq5.ae.ge.com, evndssq5.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evndssq5.tsg.ge.com)(Port=1560))) - (CONNECT_DATA = (SID = evndssq5))) - -evnescd1, evnescd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bse07)(Port=1521))) - (CONNECT_DATA = (SID = evnescd1))) - -evndmsd1, evndmsd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseh02)(Port=1521))) - (CONNECT_DATA = (SID = evndmsd1))) - -uhrp.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP.corporate.ge.com) (PROTOCOL = TCP) (Host = corpp014.corporate.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = uhrp) (GLOBAL_NAME = usprod.corporate.ge.com))) - -ehrp.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP.corporate.ge.com) (PROTOCOL = TCP) (Host = corpp015.corporate.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = ehrp) (GLOBAL_NAME = ukprod.corporate.ge.com))) - -ahrp.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP.corporate.ge.com) (PROTOCOL = TCP) (Host = corpp014.corporate.ge.com) (Port = 1523))) - (CONNECT_DATA = (SID = ahrp) (GLOBAL_NAME = asprod.corporate.ge.com))) - -evncpeq3= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse03)(Port=1526)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse03)(Port=1527)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bse03)(Port=1528))) - (CONNECT_DATA=(SID=evncpeq3)(GLOBAL_NAME=evncpeq3.ae.ge.com))) - -bseh02, bseh02.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseh02)(Port=1521))) - (CONNECT_DATA=(SID=evndmsd1))) - -evnecop1, evnecop1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnecop1.ae.ge.com)(Port=1631)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnecop1.ae.ge.com)(Port=1632))) - (CONNECT_DATA = (SID = evnecop1))) - -evnodsp1, evnodsp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp1.ae.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evnodsp1))) - -extproc_connection_data, extproc_connection_data.ae.ge.com= - (DESCRIPTION= - (ADDRESS=(PROTOCOL=IPC)(KEY=callout)) - (CONNECT_DATA=(SID=callout))) - - -FNDFS_jtitis, FNDFS_jtitis.ae.ge.com = - (DESCRIPTION = - (PROGRAM=FNDFS) - (ADDRESS = (COMMUNITY = TCP.world) (PROTOCOL = TCP) (Host = jtitis.jt.ae.ge.com) (Port = 1522)) - (CONNECT_DATA = (SID = FNDFS) (GLOBAL_NAME = FNDFS_jtitis.world))) - - -FNDFS_corpp032, FNDFS_corpp032.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= corpp032.corporate.ge.com)(Port= 1540)) - (CONNECT_DATA = (SID = FNDFS))) - - -p1ssp1s, p1ssp1s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= corpp032.corporate.ge.com)(Port= 1526)) - (CONNECT_DATA = (SID = ssp1))) - -elattst, elattst.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=el001odbsaege)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=el001odbsaege)(Port=1526))) - (CONNECT_DATA = (SID = CLEO))) - -elattng, elattng.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=elano3)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=elano3)(Port=1526))) - (CONNECT_DATA = (SID = MATT))) - -eloltp3, eloltp3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=el001dbmsaege)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=el001dbmsaege)(Port=1526))) - (CONNECT_DATA = (SID = MARY))) - -elatp1, elatp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=el017site)(Port=1521))) - (CONNECT_DATA = (SID = elatp1))) - -evncrmq2,evncrmq2.tsg.ge.com,evncrmq2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evncrmq2.tsg.ge.com)(Port=1527))) - (CONNECT_DATA = (SID = evncrmq2))) - -evncrmp2, evncrmp2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evncrmp2.ae.ge.com)(Port=1522))) - (CONNECT_DATA = (SID = evncrmp2))) - -d1ssi1s, d1ssi1s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= corpt030.corporate.ge.com)(Port= 1521)) - (CONNECT_DATA = (SID = ssi1))) - -d1ssi0s, d1ssi0s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= corpt030.corporate.ge.com)(Port= 1523)) - (CONNECT_DATA = (SID = ssi0))) - -d1sst1s, d1sst1s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= corpt030.corporate.ge.com)(Port= 1522)) - (CONNECT_DATA = (SID = sst1))) - - -p1ssp0s, p1ssp0s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= corpp032.corporate.ge.com)(Port= 1522)) - (CONNECT_DATA = (SID = ssp0))) - -d1ssd9s, d1ssd9s.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL= TCP)(Host= gpsdba40.corporate.ge.com)(Port= 1521)) - (CONNECT_DATA = (SID = ssd9))) - -OEORPC_huncpep1, OEORPC_huncpep1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=huncpep1)(Port=1530))) - (CONNECT_DATA=(SID=OEORPC_huncpep1)(GLOBAL_NAME=OEORPC_huncpep1.ae.ge.com))) - -huncpep1, huncpep1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = huncpep1)(Port = 1521))) - (CONNECT_DATA = (SID = huncpep1)(GLOBAL_NAME=huncpep1.ae.ge.com))) - -hunoltp1, hunoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = hunoltp1)(Port = 1521))) - (CONNECT_DATA = (SID = hunoltp1)(GLOBAL_NAME=hunoltp1.ae.ge.com))) - -huncpeq1, huncpeq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = huncpeq1)(Port = 1521))) - (CONNECT_DATA = (SID = huncpeq1)(GLOBAL_NAME=huncpeq1.ae.ge.com))) - -hunoltq1, hunoltq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = hunoltq1)(Port = 1521))) - (CONNECT_DATA = (SID = hunoltq1)(GLOBAL_NAME=hunoltq1.ae.ge.com))) - -OEORPC_huncpeq1, OEORPC_huncpeq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=huncpeq1)(Port=1530))) - (CONNECT_DATA=(SID=OEORPC_huncpeq1)(GLOBAL_NAME=OEORPC_huncpeq1.ae.ge.com))) - -hunosbp1,hunosbp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = hunosbp1.ae.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = hunosbp1)(GLOBAL_NAME=hunosbp1.ae.ge.com))) - -elatpro, elatpro.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=eloltp2)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=eloltp2)(Port=1526))) - (CONNECT_DATA = (SID = LUKE))) - -evnmonp1, evnmonp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnmonp1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnmonp1)(GLOBAL_NAME=evnmonp1.ae.ge.com))) - -evnmonp5, evnmonp5.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=mse05)(Port=1521))) - (CONNECT_DATA=(SID=evnmonp5)(GLOBAL_NAME=evnmonp5.ae.ge.com))) - -evnmonp6, evnmonp6.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=mse06)(Port=1521))) - (CONNECT_DATA=(SID=evnmonp6)(GLOBAL_NAME=evnmonp6.ae.ge.com))) - -evnoltd2, evnoltd2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltd2.ae.ge.com)(Port=1600))) - (CONNECT_DATA = (SID = evnoltd2))) - -faidev, faidev.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltd2)(Port=1600))) - (CONNECT_DATA = (SID = evnoltd2))) - -evnoltq2,evnoltq2.tsg.ge.com,evnoltq2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq2.tsg.ge.com)(Port=1600))) - (CONNECT_DATA = (SID = evnoltq2))) - -faiqa, faiqa.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq2.tsg.ge.com)(Port=1600))) - (CONNECT_DATA = (SID = evnoltq2))) - -naintranettest, naintranettest.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(Host = evnecop1test)(Port = 1631))) - (CONNECT_DATA =(SID = evnecop1))) - -SR040A, SR040A.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = - (PROTOCOL = TCP) - (HOST = bslab4) - (PORT = 1521))) - (CONNECT_DATA = - (SID = SR040A)) - ) - -RRA_bseq01, RRA_bseq01.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bseq01)(Port=1526))) - (CONNECT_DATA=(SID=RRA)(GLOBAL_NAME=RRA_bseq01.ae.ge.com))) - -OEORPC_bseq01, OEORPC_bseq01.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bseq01)(Port=1527))) - (CONNECT_DATA=(SID=OEORPC))) - -evncpad1, evncpad1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpad1.tsg.ge.com)(Port=1538))) - (CONNECT_DATA=(SID=evncpad1)(GLOBAL_NAME=evncpad1.ae.ge.com))) - -evncpad2, evncpad2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpad2.ae.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=evncpad2)(GLOBAL_NAME=evncpad2.ae.ge.com))) - -evncpau1, evncpau1.ae.ge.com,evncpau1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = evncpau1.tsg.ge.com)(PORT = 1563))) - (CONNECT_DATA = (SID = evncpau1))) - -evncpas1, evncpas1.ae.ge.com,evncpas1.tsg.ge.com= -(DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpas1.tsg.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=evncpas1)(GLOBAL_NAME=evncpas1.tsg.ge.com))) - - - -evnosbp2, evnosbp2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbp2.ae.ge.com)(Port=1621))) - (CONNECT_DATA=(SID=evnosbp2))) - -evnosbp3, evnosbp3.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbp3.ae.ge.com)(Port=1621))) - (CONNECT_DATA=(SID=evnosbp3))) - -evnosbp5, evnosbp5.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbp5.ae.ge.com)(Port=1634))) - (CONNECT_DATA=(SID=evnosbp5))) - -evnapsd1, evnapsd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnapsd1.tsg.ge.com)(Port=1539))) - (CONNECT_DATA=(SID=evnapsd1)(GLOBAL_NAME=evnapsd1.ae.ge.com))) - -evnapsr1, evnapsr1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.ae.ge.com)(PROTOCOL = TCP)(Host = evnapsr1.ae.ge.com)(Port = 1527))) - (CONNECT_DATA = (SID = evnapsr1)(GLOBAL_NAME = evnapsr1.ae.ge.com))) - -evngrid1, evngrid1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bseadm19.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evngrid1)(GLOBAL_NAME=evngrid1.ae.ge.com))) - - -evnapsd2, evnapsd2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnapsd2.ae.ge.com)(Port=1523))) - (CONNECT_DATA=(SID=evnapsd2)(GLOBAL_NAME=evnapsd2.ae.ge.com))) - - -p1borps.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP) (HOST = corpp019.corporate.ge.com) (PORT = 1531)) - (CONNECT_DATA = (SID = borp))) - -evnodsp2, evnodsp2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp2.ae.ge.com)(Port=1650))) - (CONNECT_DATA = (SID = evnodsp2))) - -evnfltt1, evnfltt1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bseq03)(Port=1521))) - (CONNECT_DATA = (SID = evnfltt1))) - -evnodsq1, evnodsq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq1.ae.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evnodsq1))) - -evnodsd1, evnodsd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsd1.ae.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evnodsd1))) - -phicpap1, phicpap1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=3.51.48.18)(Port=1521))) - (CONNECT_DATA = (SID = phicpap1))) - -evnoltq5, evnoltq5.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnoltq5)(Port=1521))) - (CONNECT_DATA=(SID=evnoltq5)(GLOBAL_NAME=evnoltq5.ae.ge.com))) - -evnapsp1, evnapsp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnapsp1)(Port=1522))) - (CONNECT_DATA=(SID=evnapsp1)(GLOBAL_NAME=evnapsp1.ae.ge.com))) - -Rep60_evnapsp1,Rep60_evnapsp1.world= - (ADDRESS=(PROTOCOL=tcp)(HOST=evnapsp1)(PORT=7010)) - -evnoltp6, evnoltp6.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnoltp6)(Port=1526))) - (CONNECT_DATA=(SID=evnoltp6)(GLOBAL_NAME=evnoltp6.ae.ge.com))) - -evnoltp9, evnoltp9.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltp9.ae.ge.com)(Port=1631))) - (CONNECT_DATA = (SID = evnoltp9))) - -evnoltda, evnoltda.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltda.ae.ge.com)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltda.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evnoltda))) - -evnoltq9,evnoltq9.tsg.ge.com,evnoltq9.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq9.tsg.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=evnoltq9))) - -evnoltd9, evnoltd9.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltd9.ae.ge.com)(Port=1637))) - (CONNECT_DATA=(SID=evnoltd9))) - -evnosbq2, evnosbq2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbq2.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnosbq2))) - -evnoltpa, evnoltpa.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltpa.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnoltpa))) - -asierpp1, asierpp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asierpp1)(Port=1526)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asierpp1)(Port=1625)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asierpp1)(Port=1626))) - (CONNECT_DATA=(SID=asierpp1)(GLOBAL_NAME=asierpp1.ae.ge.com))) - -asiosbp1,asiosbp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asiosbp1.ae.ge.com)(Port=1531)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asiosbp1.ae.ge.com)(Port=1631)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asiosbp1.ae.ge.com)(Port=1632))) - (CONNECT_DATA=(SID=asiosbp1)(GLOBAL_NAME=asiosbp1.ae.ge.com))) - -ajaosbp1, ajaosbp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=ajaosbp1)(Port=1530)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=ajaosbp1)(Port=1634)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=ajaosbp1)(Port=1635))) - (CONNECT_DATA=(SID=ajaosbp1)(GLOBAL_NAME=ajaosbp1.ae.ge.com))) - -amaosbp1, amaosbp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=amaosbp1)(Port=1527))) - (CONNECT_DATA=(SID=amaosbp1)(GLOBAL_NAME=amaosbp1.ae.ge.com))) - -asiodfp1, asiodfp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asiodfp1)(Port=1524)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asiodfp1)(Port=1640)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asiodfp1)(Port=1641))) - (CONNECT_DATA=(SID=asiodfp1)(GLOBAL_NAME=asiodfp1.ae.ge.com))) - -amaodfp1, amaodfp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=amaodfp1)(Port=1525)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=amaodfp1)(Port=1643)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=amaodfp1)(Port=1644))) - (CONNECT_DATA=(SID=amaodfp1)(GLOBAL_NAME=amaodfp1.ae.ge.com))) - -adctoop1, adctoop1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=adctoop1)(Port=1523)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=adctoop1)(Port=1646)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=adctoop1)(Port=1647))) - (CONNECT_DATA=(SID=adctoop1)(GLOBAL_NAME=adctoop1.ae.ge.com))) - - -asioltp1, asioltp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asioltp1)(Port=1522)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asioltp1)(Port=1649)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asioltp1)(Port=1650))) - (CONNECT_DATA=(SID=asioltp1)(GLOBAL_NAME=asioltp1.ae.ge.com))) - -ajaoltp2, ajaoltp2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=ajaoltp2)(Port=1725))) - (CONNECT_DATA=(SID=ajaoltp2)(GLOBAL_NAME=ajaoltp2.ae.ge.com))) - -amaerpp1, amaerpp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=amaerpp1)(Port=1822))) - (CONNECT_DATA=(SID=amaerpp1)(GLOBAL_NAME=amaerpp1.ae.ge.com))) - -amaoltp1, amaoltp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=amaoltp1)(Port=1821))) - (CONNECT_DATA=(SID=amaoltp1)(GLOBAL_NAME=amaoltp1.ae.ge.com))) - -amasrpp1, amasrpp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=amasrpp1)(Port=1823))) - (CONNECT_DATA=(SID=amasrpp1)(GLOBAL_NAME=amasrpp1.ae.ge.com))) - -ajasrpp2, ajasrpp2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=ajasrpp2)(Port=1824))) - (CONNECT_DATA=(SID=ajasrpp2)(GLOBAL_NAME=ajasrpp2.ae.ge.com))) - -asisrpp1, asisrpp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=asisrpp1)(Port=1826))) - (CONNECT_DATA=(SID=asisrpp1)(GLOBAL_NAME=asisrpp1.ae.ge.com))) - -RRA2_bsaha00, RRA2_bsaha00.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsaha00)(Port=1841))) - (CONNECT_DATA=(SID=RRA2)(GLOBAL_NAME=RRA2_bsaha00.ae.ge.com))) - -RRA2_bsahaq01, RRA2_bsahaq01.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp)(PROTOCOL=TCP)(Host=bsahaq01)(Port=1528))) - (CONNECT_DATA=(SID=RRA2)(GLOBAL_NAME=RRA2_bsahaq01.ae.ge.com))) - -egtcpmp1, egtcpmp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=3.185.113.12)(Port=1521))) - (CONNECT_DATA=(SID=egtcpmp1)(GLOBAL_NAME=egtcpmp1.ae.ge.com))) - -egtcpmq2, egtcpmq2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=3.185.113.10)(Port=1521))) - (CONNECT_DATA=(SID=egtcpmq2)(GLOBAL_NAME=egtcpmq2.ae.ge.com))) - -aema, aema.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =3.8.4.89) (Port = 1521))) - (CONNECT_DATA = (SID = aema))) - -strctp1, strctp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =strbh2) (Port = 1521))) - (CONNECT_DATA = (SID = strctp1))) - -FNDFS_evncpap1, FNDFS_evncpap1.ae.ge.com= - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=evncpap1)(Port=1601)) - (CONNECT_DATA=(SID=FNDFS))) - -OEORPC_evncpap1, OEORPC_evncpap1.ae.ge.com= - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=evncpap1)(Port=1601)) - (CONNECT_DATA=(SID=OEORPC))) - -evnapsq1, evnapsq1.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evnapsq1.tsg.ge.com)(PORT=1524)) - (CONNECT_DATA=(SID=evnapsq1))) - -evnrdwd1, evnrdwd1.ae.ge.com, evnrdwd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =evnrdwd1.tsg.ge.com) (Port = 1524))) - (CONNECT_DATA = (SID = evnrdwd1))) - -evnrmdd1, evnrmdd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =evnrmdd1) (Port = 1526))) - (CONNECT_DATA = (SID = evnrmdd1))) - -evninfd1, evninfd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =evninfd1) (Port = 1535))) - (CONNECT_DATA = (SID = evninfd1))) - -evninfd1_temp, evninfd1_temp.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =tsgsd00176) (Port = 1565))) - (CONNECT_DATA = (SID = evninfd1))) - -evninfp1, evninfp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =evninfp1.ae.ge.com) (Port = 1525))) - (CONNECT_DATA = (SID = evninfp1))) - -# host changed 7/12/11 jaf 1010784 -evninfq1, evninfq1.ae.ge.com, evninfq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host =evninfq1.tsg.ge.com) (Port = 1533))) - (CONNECT_DATA = (SID = evninfq1))) - -evndssd6, evndssd6.ae.ge.com, evndssd6.tsg.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evndssd6.tsg.ge.com)(PORT=1622)) - (CONNECT_DATA=(SID=evndssd6))) - -malfdwq1, malfdwq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsmal02)(Port=1521))) - (CONNECT_DATA=(SID=malfdwq1))) - -evnodsq2,evnodsq2.tsg.ge.com,evnodsq2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq2.tsg.ge.com)(Port=1621))) - (CONNECT_DATA = (SID = evnodsq2))) - -evnctpd1,evnctpd1.tsg.ge.com, evnctpd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnctpd1.tsg.ge.com)(Port=1525))) - (CONNECT_DATA = (SID = evnctpd1))) - -evnctpp1, evnctpp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnctpp1.ae.ge.com)(Port=1523))) - (CONNECT_DATA = (SID = evnctpp1))) - -evnctpq1,evnctpq1.tsg.ge.com,evnctpq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnctpq1.tsg.ge.com)(Port=1526))) - (CONNECT_DATA = (SID = evnctpq1))) - -evnctpl1, evnctpl1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnctpl1.ae.ge.com)(Port=1527))) - (CONNECT_DATA = (SID = evnctpl1))) - -evnctpl2, evnctpl2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnctpl2.ae.ge.com)(Port=1527))) - (CONNECT_DATA = (SID = evnctpl2))) - -dw02, dw02.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=dw02.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=dw02))) - -evnoltqa, evnoltqa.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltqa)(Port=1521))) - (CONNECT_DATA=(SID=evnoltqa))) - -trioltp1, trioltp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bstp01)(Port=1521))) - (CONNECT_DATA=(SID=trioltp1))) - -dam, dam.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=orageae.gecits.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=geae))) - -calfdwp1, calfdwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = calfdwp1)(Port = 1521))) - (CONNECT_DATA = (SID = calfdwp1)(GLOBAL_NAME=calfdwp1.ae.ge.com))) - -calapwp1, calapwp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=calapwp1)(Port=1521))) - (CONNECT_DATA=(SID=calapwp1)(GLOBAL_NAME=calapwp1.ae.ge.com))) - -evnrdwp1,evnrdwp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnrdwp1.ae.ge.com)(Port=1525))) - (CONNECT_DATA=(SID=evnrdwp1))) - -evnpssp1, evnpssp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnpssp1.ae.ge.com)(Port=1533))) - (CONNECT_DATA=(SID=evnpssp1))) - -evnpssq1, evnpssq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnpssq1)(Port=1537))) - (CONNECT_DATA=(SID=evnpssq1))) - -evnpssd1, evnpssd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnpssd1)(Port=1539))) - (CONNECT_DATA=(SID=evnpssd1))) - -evnpinq1, evnpinq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnpinq1)(Port=1522))) - (CONNECT_DATA=(SID=evnpinq1))) - -FNDFS_bsadcd01, FNDFS_bsadcd01.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=3.185.112.187)(Port=1529))) - (CONNECT_DATA=(SID=FNDFS))) - -evnqtcd1, evnqtcd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnqtcd1)(Port=1528))) - (CONNECT_DATA=(SID=evnqtcd1))) - -# host changed 7/12/11 jaf 1010784 -evnqtcq1, evnqtcq1.ae.ge.com, evnqtcq1.tsg.ge.com = - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnqtcq1.tsg.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=evnqtcq1))) - -evnqtcp1, evnqtcp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnqtcp1.ae.ge.com)(Port=1532))) - (CONNECT_DATA=(SID=evnqtcp1))) - -rutoltp1, rutoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=rutoltp1.ae.ge.com)(Port=1532))) - (CONNECT_DATA=(SID=rutoltp1))) - -ruttmcp1, ruttmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ruttmcp1.ae.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = ruttmcp1))) - -hokoltp1, hokoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=hokoltp1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=hokoltp1))) - -hoktmcp1, hoktmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = hoktmcp1.ae.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID = hoktmcp1))) - -duroltp1, duroltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=duroltp1.ae.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=duroltp1))) - -emcoltp1, emcoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=emcoltp1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=emcoltp1))) - -emcoltq1, emcoltq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=emcoltq1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=emcoltq1))) - -evnapst1, evnapst1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = evnapst1.ae.ge.com)(PORT=1593))) - (CONNECT_DATA = (SID = evnapst1))) - - -dbsimv, dbsimv.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsimv)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsimv)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsimv)(Port=1601))) - (CONNECT_DATA=(SID=simv ))) - -simv, simv.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsimv)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsimv)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsimv)(Port=1601))) - (CONNECT_DATA=(SID=simv ))) - -evnmond1, evnmond1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnmond1)(Port=1636))) - (CONNECT_DATA=(SID=evnmond1)(GLOBAL_NAME=evnmond1.ae.ge.com))) - -Pay4Win, Pay4Win.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.ae.ge.com)(PROTOCOL = TCP)(Host = el001adpaege)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.ae.ge.com)(PROTOCOL = TCP)(Host = el001adpaege)(Port = 1526))) - (CONNECT_DATA = (SID = PCPW))) - -madoltp1, madoltp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=madoltp1.ae.ge.com)(Port=1531))) - (CONNECT_DATA=(SID=madoltp1))) - -madoltp2, madoltp2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsm01)(Port=1521))) - (CONNECT_DATA=(SID=madoltp2))) - -madtmcp1, madtmcp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = madtmcp1.ae.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = madtmcp1))) - -evnoltpb, evnoltpb.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltpb.ae.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=evnoltpb))) - -p1dprps.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP.corporate.ge.com) (PROTOCOL = TCP) (Host = corpp019.corporate.ge.com) (Port = 1522) ) - (CONNECT_DATA = (SID = dprp) (GLOBAL_NAME = p1dprps.corporate.ge.com))) - - ## BO PRODUCTION TEST -p1borps.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = corpp019.corporate.ge.com) (Port = 1531) ) ) - (CONNECT_DATA = (SID = borp) ) ) - - - # NEW COMP PLANNING PROD DATABASE -ucmp.corporate.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP.corporate.ge.com) (PROTOCOL = TCP) (Host = corpp040.corporate.ge.com) (Port = 1527) ) - (CONNECT_DATA = (SID = ucmp) (GLOBAL_NAME = ucmp.corporate.ge.com))) - -ge_msn2, ge_msn2.ae.ge.com= - (DESCRIPTION = - (ADDRESS=(PROTOCOL=TCP)(Host=s051)(Port=1521)) - (CONNECT_DATA=(SID=ge_msn2))) - -evnmonp3, evnmonp3.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=mse01)(Port=1521))) - (CONNECT_DATA=(SID=evnmonp3))) - -edaoltq1, edaoltq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=edaoltq1)(Port=1525))) - (CONNECT_DATA=(SID=edaoltq1))) - -estoltq1,estoltq1.tsg.ge.com,estoltq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=estoltq1.tsg.ge.com)(Port=1523))) - (CONNECT_DATA=(SID=estoltq1))) - -eonoltq1,eonoltq1.tsg.ge.com,eonoltq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=eonoltq1.tsg.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=eonoltq1))) - -evnrdwq1,evnrdwq1.tsg.ge.com,evnrdwq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnrdwq1.tsg.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = evnrdwq1))) - -evnrdwq2,evnrdwq2.tsg.ge.com,evnrdwq2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnrdwq2.tsg.ge.com)(Port=1530))) - (CONNECT_DATA = (SID = evnrdwq2))) - -evnrdwp2, evnrdwp2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnrdwp2.ae.ge.com)(Port=1532))) - (CONNECT_DATA = (SID = evnrdwp2))) - -evnrdwd2,evnrdwd2.tsg.ge.com, evnrdwd2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnrdwd2.tsg.ge.com)(Port=1526))) - (CONNECT_DATA = (SID = evnrdwd2))) - -evncpat1, evncpat1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evncpat1.ae.ge.com)(Port=1522))) - (CONNECT_DATA = (SID = evncpat1))) - -eloltp4, eloltp4.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=el001dbmsaege)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=el001dbmsaege)(Port=1526))) - (CONNECT_DATA = (SID = mary))) - -evnclmd1, evnclmd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnclmd1)(Port=1527))) - (CONNECT_DATA = (SID = evnclmd1))) - -evncpaq1, evncpaq1.ae.ge.com,evncpaq1.tsg.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evncpaq1.tsg.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evncpaq1)(GLOBAL_NAME=evncpaq1.ae.ge.com))) - -strwfp1, strwfp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=ws4stro)(Port=1521))) - (CONNECT_DATA=(SID=csdb))) - -adcmonp1, adcmonp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=adcmonp1)(Port=1546))) - (CONNECT_DATA=(SID=adcmonp1)(GLOBAL_NAME=adcmonp1.ae.ge.com))) - -evnosbq3, evnosbq3.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnosbq3)(Port=1521))) - (CONNECT_DATA=(SID=evnosbq3))) - -dbsim, dbsim.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsim)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsim)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsim)(Port=1601))) - (CONNECT_DATA=(SID=sim))) - -sim, sim.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsim)(Port=1521)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsim)(Port=1600)) - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=tcp) (Host=dbsim)(Port=1601))) - (CONNECT_DATA=(SID=sim))) - -geae, geae.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=orageae.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=geae))) - -FNDFS_bsel93, FNDFS_bsel93.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsel93)(Port=1528))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_bsel93.ae.ge.com))) - -FNDFS_tsgsq00198, FNDFS_tsgsq00198.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpeq1.ae.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_tsgsq00198.ae.ge.com))) - -FNDFS_tsgsq00199, FNDFS_tsgsq00199.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpeq1.ae.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_tsgsq00199.ae.ge.com))) - -tsgipwl1, tsgipwl1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsel71.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=tsgipwl1))) - -evndssq6,evndssq6.tsg.ge.com,evndssq6.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evndssq6.tsg.ge.com)(Port=1523))) - (CONNECT_DATA=(SID=evndssq6))) - -OEORPC_evncpeq1, OEORPC_evncpeq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncpeq1)(Port=1529))) - (CONNECT_DATA=(SID=OEORPC_evncpeq1)(GLOBAL_NAME=OEORPC_evncpeq1.ae.ge.com))) - -edaoltp1, edaoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=edaoltp1)(Port=1521))) - (CONNECT_DATA=(SID=edaoltp1)(GLOBAL_NAME=edaoltp1.ae.ge.com))) - -evnoltq6, evnoltq6.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq6)(Port=1525))) - (CONNECT_DATA=(SID=evnoltq6)(GLOBAL_NAME=evnoltq6.ae.ge.com))) - -evnoltqb,evnoltqb.tsg.ge.com,evnoltqb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltqb.tsg.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=evnoltqb)(GLOBAL_NAME=evnoltqb.ae.ge.com))) - -evnapwp4, evnapwp4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwp4)(Port=1524))) - (CONNECT_DATA=(SID=evnapwp4)(GLOBAL_NAME=evnapwp4.ae.ge.com))) - -evnapwp5, evnapwp5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwp5)(Port=1525))) - (CONNECT_DATA=(SID=evnapwp5)(GLOBAL_NAME=evnapwp5.ae.ge.com))) - -evnapwp6, evnapwp6.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnapwp6)(Port=1526))) - (CONNECT_DATA=(SID=evnapwp6)(GLOBAL_NAME=evnapwp6.ae.ge.com))) - -evnoltq3, evnoltq3.ae.ge.com, evnoltq3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltq3.tsg.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evnoltq3)(GLOBAL_NAME=evnoltq3.ae.ge.com))) - -eloltp5, eloltp5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=el001dipaege)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=el001dipaege)(Port=1526))) - (CONNECT_DATA = (SID = JOHN))) - -evnifsl1, evnifsl1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnifsl1)(Port=1529))) - (CONNECT_DATA=(SID=evnifsl1)(GLOBAL_NAME=evnifsl1.ae.ge.com))) - -ucpt.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.corporate.ge.com)(PROTOCOL=TCP)(Host=corpp025.corporate.ge.com)(Port=1532))) - (CONNECT_DATA=(SID=ucpt)(GLOBAL_NAME=ucpt.corporate.ge.com))) - -evnifsd1, evnifsd1.ae.ge.com, evnifsd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnifsd1.tsg.ge.com)(Port=1553))) - (CONNECT_DATA=(SID=evnifsd1)(GLOBAL_NAME=evnifsd1.ae.ge.com))) - -evndssp5, evndssp5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evndssp5.ae.ge.com)(Port=1527))) - (CONNECT_DATA=(SID=evndssp5)(GLOBAL_NAME=evndssp5.ae.ge.com))) - -evndssp6, evndssp6.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evndssp6.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evndssp6)(GLOBAL_NAME=evndssp6.ae.ge.com))) - -stridb, stridb.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=strbh1)(Port=1531))) - (CONNECT_DATA=(SID=idb)(GLOBAL_NAME=stridb.ae.ge.com))) - -evnifsq1,evnifsq1.tsg.ge.com,evnifsq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnifsq1.tsg.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=evnifsq1)(GLOBAL_NAME=evnifsq1.ae.ge.com))) - -evnifsr3 = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnifsr3.ae.ge.com)(Port=1530))) - (CONNECT_DATA=(SID=evnifsr3)(GLOBAL_NAME=evnifsr3.ae.ge.com))) - -qvnifsq1, qvnifsq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = qvnifsq1.ae.ge.com)(PORT = 1531))) - (CONNECT_DATA = (SERVICE_NAME = evnifsq1))) - -evnoltpc, evnoltpc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltpc)(Port=1528))) - (CONNECT_DATA=(SID=evnoltpc)(GLOBAL_NAME=evnoltpc.ae.ge.com))) - -evnifsp1, evnifsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnifsp1.ae.ge.com)(Port=1531))) - (CONNECT_DATA=(SID=evnifsp1)(GLOBAL_NAME=evnifsp1.ae.ge.com))) - -qvnifsp1, qvnifsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = qvnifsp1.ae.ge.com)(PORT = 1531))) - (CONNECT_DATA = (SERVICE_NAME = evnifsp1))) - -evnifsp3, evnifsp3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnifsp3.ae.ge.com)(Port=1527))) - (CONNECT_DATA=(SID=evnifsp3)(GLOBAL_NAME=evnifsp3.ae.ge.com))) - -evnoltqc, evnoltqc.ae.ge.com, evnoltqc.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltqc.tsg.ge.com)(Port=1531))) - (CONNECT_DATA=(SID=evnoltqc)(GLOBAL_NAME=evnoltqc.ae.ge.com))) - -wips, wips.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=geaesap2)(Port=1521))) - (CONNECT_DATA=(SID=dw01)(GLOBAL_NAME=wips.ae.ge.com))) - -edw, edw.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=geaedwp2)(Port=1521))) - (CONNECT_DATA=(SID=dw02)(GLOBAL_NAME=edw.ae.ge.com))) - -RRA_bsahaq01, RRA_bsahaq01.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=tcp)(PROTOCOL=TCP)(Host=bsahaq01)(Port=1628))) - (CONNECT_DATA=(SID=RRA))) - -FNDFS_bsahaq01, FNDFS_bsahaq01.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=bsahaq01)(Port=1629))) - (CONNECT_DATA=(SID=FNDFS))) - -evncpaf1, evncpaf1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evncpaf1.ae.ge.com)(PORT=1522))) - (CONNECT_DATA= (SID=evncpaf1))) - -evnapsf1, evnapsf1.ae.ge.com,evnapsf1.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnapsf1.tsg.ge.com)(PORT=1533))) - (CONNECT_DATA= (SID=evnapsf1))) - -evnlab81, evnlab81.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnlab81)(PORT=1528))) - (CONNECT_DATA= (SID=evnlab81))) - -evnlabl1, evnlabl1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnlabl1)(PORT=1524))) - (CONNECT_DATA= (SID=evnlabl1))) - -evnlabl2, evnlabl2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnlabl2)(PORT=1527))) - (CONNECT_DATA= (SID=evnlabl2))) - -evnlabl3, evnlabl3.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnlabl3)(PORT=1521))) - (CONNECT_DATA= (SID=evnlabl3))) - -evnlabl3_dg, evnlabl3_dg.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=masdsd201.energy.ge.com)(PORT=1524))) - (CONNECT_DATA= (SID=evnlabl3))) - -evnlab73, evnlab73.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnlab73)(PORT=1526))) - (CONNECT_DATA= (SID=evnlab73))) - -evnoltq7,evnoltq7.tsg.ge.com,evnoltq7.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnoltq7.tsg.ge.com)(PORT=1621))) - (CONNECT_DATA= (SID=evnoltq7))) - -evnapwq1, evnapwq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnapwq1)(PORT=1527))) - (CONNECT_DATA= (SID=evnapwq1))) - -evnapwq2, evnapwq2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnapwq2)(PORT=1531))) - (CONNECT_DATA= (SID=evnapwq2))) - -prod_R2IA53, prod_R2IA53.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=erp_prod.mras.ae.ge.com)(PORT=1551))) - (CONNECT_DATA= (SID=R2IA53))) - -asimonp1, asimonp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=msadc01)(PORT=1521))) - (CONNECT_DATA= (SID=asimonp1))) - -eurmonp1, eurmonp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=mseur01)(PORT=1521))) - (CONNECT_DATA= (SID=eurmonp1))) - -evnoltdb, evnoltdb.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnoltdb)(PORT=1522))) - (CONNECT_DATA= (SID=evnoltdb))) - -evnoltd6, evnoltd6.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnoltd6)(PORT=1523))) - (CONNECT_DATA= (SID=evnoltd6))) - -evnmonp2, evnmonp2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=mse02)(PORT=1521))) - (CONNECT_DATA= (SID=evnmonp2))) - -dalora, dalora.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=3.51.68.138)(PORT=1521))) - (CONNECT_DATA= (SID=orcl))) - -evnmonq1, evnmonq1.ae.ge.com, evnmonq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=evnmonq1.tsg.ge.com)(PORT=1526))) - (CONNECT_DATA= (SID=evnmonq1))) - -evnodsp3, evnodsp3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp3.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnodsp3))) - -evnodsp4, evnodsp4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsp4.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnodsp4))) - -FNDFS_tsgsp00150, FNDFS_tsgsp00150.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpep1)(PORT=1528)) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_tsgsp00151, FNDFS_tsgsp00151.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpep1)(PORT=1528)) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_tsgsp00152, FNDFS_tsgsp00152.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpep1)(PORT=1528)) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_tsgsp00153, FNDFS_tsgsp00153.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpep1)(PORT=1528)) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_tsgsp00155, FNDFS_tsgsp00155.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpep1)(PORT=1601)) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_bsepa101, FNDFS_bsepa101.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpap1)(PORT=1601)) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_bsepa102, FNDFS_bsepa102.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpap1)(PORT=1601)) - (CONNECT_DATA=(SID=FNDFS))) - -FNDFS_bsepa105, FNDFS_bsepa105.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evncpap1)(PORT=1601)) - (CONNECT_DATA=(SID=FNDFS))) - -evnifsd2, evnifsd2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnifsd2)(Port=1522))) - (CONNECT_DATA=(SID=evnifsd2))) - -evnifsd3, evnifsd3.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnifsd3)(Port=1530))) - (CONNECT_DATA=(SID=evnifsd3))) - -evnifsd4, evnifsd4.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnifsd4)(Port=1524))) - (CONNECT_DATA=(SID=evnifsd4))) - -evnifsq2, evnifsq2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnifsq2)(Port=1529))) - (CONNECT_DATA=(SID=evnifsq2))) - -evnifsq3, evnifsq3.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnifsq3)(Port=1527))) - (CONNECT_DATA=(SID=evnifsq3))) - -evnosbq4, evnosbq4.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnosbq4)(Port=1521))) - (CONNECT_DATA=(SID=evnosbq4))) - -evnosbq5, evnosbq5.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnosbq5)(Port=1538))) - (CONNECT_DATA=(SID=evnosbq5))) - -evnifsp2, evnifsp2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnifsp2)(Port=1522))) - (CONNECT_DATA=(SID=evnifsp2))) - -evnjded1, evnjded1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnjded1.ae.ge.com)(Port=1540))) - (CONNECT_DATA=(SID=evnjded1))) - -evnoltd3, evnoltd3.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnoltd3)(Port=1528))) - (CONNECT_DATA=(SID=evnoltd3))) - -accardi.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcpcom.world)(PROTOCOL = TCP) - (Host=accardi.crd.ge.com)(Port = 1521))) - (CONNECT_DATA = (SERVICE_NAME = accardi.world))) - -FNDFS_bsedb103, FNDFS_bsedb103.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsedb103)(Port=1528))) - (CONNECT_DATA=(SID=FNDFS)(GLOBAL_NAME=FNDFS_bsedb103.ae.ge.com))) - -OEORPC_bsedb103, OEORPC_bsedb103.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=bsedb103)(Port=1528))) - (CONNECT_DATA=(SID=OEORPC)(GLOBAL_NAME=OEORPC_bsedb103.ae.ge.com))) - -hunosbq1, hunosbq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=hunosbq1)(Port=1521))) - (CONNECT_DATA=(SID=hunosbq1)(GLOBAL_NAME=hunosbq1.ae.ge.com))) - -# changed 7/19/11 jaf 1012612 -evnjdeq1, evnjdeq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnjdeq1.ae.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=evnjdeq1))) - -evncrmd2, evncrmd2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncrmd2)(Port=1524))) - (CONNECT_DATA=(SID=evncrmd2))) - -evncrml2, evncrml2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evncrml2)(Port=1528))) - (CONNECT_DATA=(SID=evncrml2))) - - -evnjdep1, evnjdep1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=evnjdep1.ae.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=evnjdep1)(GLOBAL_NAME=evnjdep1.ae.ge.com))) - -evnifst1, evnifst1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnifst1)(Port=1532))) - (CONNECT_DATA=(SID=evnifst1))) - -evnissd1, evnissd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=129.202.16.133)(Port=1521))) - (CONNECT_DATA=(SID=evnissd1)(SRVR=SHARED))) - -evnissp1, evnissp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=ecstorage2)(Port=1521))) - (CONNECT_DATA=(SID=evnissp1))) - -amqc, amqc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=oraamd1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=amqc))) - -asisrpq1, asisrpq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=asisrpq1)(PORT=1640))) - (CONNECT_DATA= (SID=asisrpq1)(GLOBAL_NAME=asisrpq1.ae.ge.com))) - -asioltq1, asioltq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=asioltq1)(PORT=1641))) - (CONNECT_DATA= (SID=asioltq1)(GLOBAL_NAME=asioltq1.ae.ge.com))) - -asierpq1, asierpq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=asierpq1)(PORT=1643))) - (CONNECT_DATA= (SID=asierpq1)(GLOBAL_NAME=asierpq1.ae.ge.com))) - -# changed 6/22/11 jaf 995318 -asiodfq1, asiodfq1.ae.ge.com, asiodfq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=asiodfq1.tsg.ge.com)(PORT=1644))) - (CONNECT_DATA= (SID=asiodfq1)(GLOBAL_NAME=asiodfq1.ae.ge.com))) - -asiosbq1, asiosbq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=asiosbq1)(PORT=1645))) - (CONNECT_DATA= (SID=asiosbq1)(GLOBAL_NAME=asiosbq1.ae.ge.com))) - -RRA_bsadcd01, RRA_bsadcd01.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsadcd01)(Port=1528))) - (CONNECT_DATA=(SID=RRA)(GLOBAL_NAME=RRA_bsadcd01.ae.ge.com))) - -asierpd1, asierpd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=asierpd1)(Port=1523))) - (CONNECT_DATA=(SID=asierpd1)(GLOBAL_NAME=asierpd1.ae.ge.com))) - -asiodfd1, asiodfd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=asiodfd1)(Port=1524))) - (CONNECT_DATA=(SID=asiodfd1)(GLOBAL_NAME=asiodfd1.ae.ge.com))) - -etdstst, etdstst.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=afs026)(Port=1521))) - (CONNECT_DATA=(SID=etdstst))) - -mimont, mimont.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=el001candaege)(Port=1521))) - (CONNECT_DATA=(SID=mont)(GLOBAL_NAME=mont.ae.ge.com))) - -migeel, migeel.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=el001candaege)(Port=1521))) - (CONNECT_DATA=(SID=geel)(GLOBAL_NAME=geel.ae.ge.com))) - -midemo, midemo.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=el001candaege)(Port=1521))) - (CONNECT_DATA=(SID=demo)(GLOBAL_NAME=demo.ae.ge.com))) - -evn9ilab, evn9ilab.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsel90)(Port=1521))) - (CONNECT_DATA=(SID=evn9ilab)(GLOBAL_NAME=evn9ilab.ae.ge.com))) - -evn9idb1, evn9idb1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsedb110)(Port=1525))) - (CONNECT_DATA=(SID=evn9idb1)(GLOBAL_NAME=evn9idb1.ae.ge.com))) - -evnodsq5,evnodsq5.tsg.ge.com,evnodsq5.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq5.tsg.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evnodsq5)(GLOBAL_NAME=evnodsq5.ae.ge.com))) - -evnodsq6, evnodsq6.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnodsq6.ae.ge.com)(Port=1522))) - (CONNECT_DATA=(SID=evnodsq6)(GLOBAL_NAME=evnodsq6.ae.ge.com))) - -evnoltde, evnoltde.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltde)(Port=1528))) - (CONNECT_DATA=(SID=evnoltde)(GLOBAL_NAME=evnoltde.ae.ge.com))) - -evnoltqe, evnoltqe.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltqe)(Port=1528))) - (CONNECT_DATA=(SID=evnoltqe)(GLOBAL_NAME=evnoltqe.ae.ge.com))) - -evnoltqf, evnoltqf.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltqf)(Port=1523))) - (CONNECT_DATA=(SID=evnoltqf)(GLOBAL_NAME=evnoltqf.ae.ge.com))) - -hpas_qa, hpas_qa.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltqf)(Port=1523))) - (CONNECT_DATA=(SID=evnoltqf)(GLOBAL_NAME=evnoltqf.ae.ge.com))) - -# host changed and alias added 947326 4/12/11 jaf -evnoltdf, evnoltdf.ae.ge.com, evnoltdf.tsg.ge.com = - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltdf.ae.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=evnoltdf))) - -evnoltlf,evnoltlf.tsg.ge.com, evnoltlf.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evnoltlf.tsg.ge.com)(PORT=1533)) - (CONNECT_DATA=(SID=evnoltlf)) - ) - -evnoltrf,evnoltrf.tsg.ge.com, evnoltrf.ae.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=evnoltrf.tsg.ge.com)(PORT=1537)) - (CONNECT_DATA=(SID=evnoltrf)) - ) - -evnclmd2, evnclmd2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnclmd2)(Port=1529))) - (CONNECT_DATA=(SID=evnclmd2)(GLOBAL_NAME=evnclmd2.ae.ge.com))) - -evnclmq2, evnclmq2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnclmq2)(Port=1532))) - (CONNECT_DATA=(SID=evnclmq2)(GLOBAL_NAME=evnclmq2.ae.ge.com))) - -evnoltpe, evnoltpe.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltpe.ae.ge.com)(Port=1528))) - (CONNECT_DATA=(SID=evnoltpe)(GLOBAL_NAME=evnoltpe.ae.ge.com))) - -evnoltpf, evnoltpf.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltpf.ae.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=evnoltpf)(GLOBAL_NAME=evnoltpf.ae.ge.com))) - -hpas_prod, hpas_prod.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltpf.ae.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=evnoltpf)(GLOBAL_NAME=evnoltpf.ae.ge.com))) - -evnrmnp1, evnrmnp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnrmnp1.ae.ge.com)(Port=1523))) - (CONNECT_DATA=(SID=evnrmnp1)(GLOBAL_NAME=evnrmnp1.ae.ge.com))) - -evnrmnp2, evnrmnp2.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnrmnp2.ae.ge.com)(Port=1524))) - (CONNECT_DATA=(SID=evnrmnp2)(GLOBAL_NAME=evnrmnp2.ae.ge.com))) - -opas, opas.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=opas)(Port=1521))) - (CONNECT_DATA=(SID=opas)(GLOBAL_NAME=opas.ae.ge.com))) - -celwebp1, celwebp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=celwebp1)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host=celwebp1)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=celwebp1)(Port=1601))) - (CONNECT_DATA = (SID = celwebp1))) - -evn8lab1, evn8lab1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsel91)(Port=1526))) - (CONNECT_DATA=(SID=evn8lab1)(GLOBAL_NAME=evn8lab1.ae.ge.com))) - -evn10gl1, evn10gl1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=bsel94)(Port=1526))) - (CONNECT_DATA=(SID=evn10gl1)(GLOBAL_NAME=evn10gl1.ae.ge.com))) - -evndevd1,evndevd1.tsg.ge.com,evndevd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evndevd1.tsg.ge.com)(Port=1623))) - (CONNECT_DATA=(SID=evndevd1)(GLOBAL_NAME=evndevd1.ae.ge.com))) - -evnhmsd1, evnhmsd1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnhmsd1.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnhmsd1)(GLOBAL_NAME=evnhmsd1.ae.ge.com))) - -evnhmsl1, evnhmsl1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnhmsl1)(Port=1521))) - (CONNECT_DATA=(SID=evnhmsl1)(GLOBAL_NAME=evnhmsl1.ae.ge.com))) - -evnhmsp1, evnhmsp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnhmsp1.ae.ge.com)(Port=1527))) - (CONNECT_DATA=(SID=evnhmsp1)(GLOBAL_NAME=evnhmsp1.ae.ge.com))) - -evnhmsq1,evnhmsq1.tsg.ge.com,evnhmsq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnhmsq1.tsg.ge.com)(Port=1527))) - (CONNECT_DATA=(SID=evnhmsq1)(GLOBAL_NAME=evnhmsq1.ae.ge.com))) - -evndevd9, evndevd9.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evndevd9)(Port=1521))) - (CONNECT_DATA=(SID=evndevd9)(GLOBAL_NAME=evndevd9.ae.ge.com))) - -# changed 6/22/11 jaf -evnoltqg, evnoltqg.ae.ge.com, evnoltqg.tsg.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltqg.tsg.ge.com)(Port=1632))) - (CONNECT_DATA=(SID=evnoltqg)(GLOBAL_NAME=evnoltqg.ae.ge.com))) - -evnoltpg, evnoltpg.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evnoltpg.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=evnoltpg)(GLOBAL_NAME=evnoltpg.ae.ge.com))) - - -evneccp1, evneccp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evus01ecc)(Port=1521))) - (CONNECT_DATA=(SID=rambdb)(GLOBAL_NAME=evneccp1.ae.ge.com))) - -evneccq1, evneccq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=evus04ecc)(Port=1521))) - (CONNECT_DATA=(SID=rambdb)(GLOBAL_NAME=evneccq1.ae.ge.com))) - -taat, taat.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=3.31.117.41)(Port=1521))) - (CONNECT_DATA=(SERVICE_NAME=taat.ae.ge.com))) - -T345691, T345691.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=T00345691)(Port=1521))) - (CONNECT_DATA=(SID=T345691)(GLOBAL_NAME=T345691.ae.ge.com))) - -gamd, gamd.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.world)(PROTOCOL = TCP) - (Host = 172.23.180.241)(Port = 1521)))(CONNECT_DATA = (SID = AMQC))) - -amp1, amp1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=orageae.ae.ge.com)(Port=1521))) - (CONNECT_DATA=(SID=amp1))) - -tstrmnt1, tstrmnt1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tstrmnt1)(Port=1526))) - (CONNECT_DATA=(SID=tstrmnt1))) - -tstr9it1, tstr9it1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tstr9it1)(Port=1525))) - (CONNECT_DATA=(SID=tstr9it1))) - -tstr8it1, tstr8it1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tstr8it1)(Port=1524))) - (CONNECT_DATA=(SID=tstr8it1))) - -tstr73t1, tstr73t1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tstr73t1)(Port=1523))) - (CONNECT_DATA=(SID=tstr73t1))) - -tstr6it1, tstr6it1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tstr6it1)(Port=1521))) - (CONNECT_DATA=(SID=tstr6it1))) - -prod_gessods, prod_gessods.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.100.24.106)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = GESSODS))) - -prod_gessods.supply.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.160.228.46)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = GESSODS))) - -ajaosbq1, ajaosbq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=ajaosbq1)(Port=1636))) - (CONNECT_DATA=(SID=ajaosbq1))) - -ajaoltq1, ajaoltq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ajaoltq1)(Port=1637))) - (CONNECT_DATA=(SID=ajaoltq1))) - -ajasrpq1, ajasrpq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ajasrpq1)(Port=1635))) - (CONNECT_DATA= (SID=ajasrpq1))) - -amaerpq1, amaerpq1.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=amaerpq1)(Port=1624))) - (CONNECT_DATA=(SID=amaerpq1))) - -amaoltq1, amaoltq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=amaoltq1)(PORT=1622))) - (CONNECT_DATA= (SID=amaoltq1))) - -amasrpq1, amasrpq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=amasrpq1)(PORT=1623))) - (CONNECT_DATA= (SID=amasrpq1))) - -amaosbq1, amaosbq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=amaosbq1)(PORT=1621))) - (CONNECT_DATA= (SID=amaosbq1))) - -# changed 995318 6/22/11 jaf -amaodfq1, amaodfq1.ae.ge.com, amaodfq1.tsg.ge.com = - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=amaodfq1.tsg.ge.com)(Port=1626))) - (CONNECT_DATA=(SID=amaodfq1))) - -adctooq1, adctooq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=adctooq1)(PORT=1625))) - (CONNECT_DATA= (SID=adctooq1))) - -qemdb.patni.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=3.209.104.150)(PORT=1521))) - (CONNECT_DATA= (SID=gel1))) - -ciatd1, ciatd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=oradev.mtc.ge.com)(PORT=1521))) - (CONNECT_DATA= (SID=dev))) - -MXCIATD1.MTC.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.mtc.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = MXCIATD1))) - -MXCIATQ1.MTC.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.mtc.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = MXCIATQ1))) - -MXCIATP1.MTC.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.mtc.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = MXCIATP1))) - -masoltd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = masoltd1.energy.ge.com) (Port = 1524))) - (CONNECT_DATA = (SID = masoltd1))) - -masrmnp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = masrmnp1.energy.ge.com) (Port = 1525))) - (CONNECT_DATA = (SID = masrmnp1))) - -masmc2d1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = masmc2d1.energy.ge.com) (Port = 1526))) - (CONNECT_DATA = (SID = masmc2d1))) - -masmc2d2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = masmc2d2.energy.ge.com) (Port = 1527))) - (CONNECT_DATA = (SID = masmc2d2))) - -atlrmnp1,atlrmnp1.tsg.ge.com,atlrmnp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = atlrmnp1.energy.ge.com) (Port = 1525))) - (CONNECT_DATA = (SID = atlrmnp1))) - -#atlmc2p1.energy.ge.com = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = atlmc2p1.energy.ge.com) (Port = 1526))) -# (CONNECT_DATA = (SID = atlmc2p1))) - -#atlmc2p2.energy.ge.com = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = atlmc2p2.energy.ge.com) (Port = 1527))) -# (CONNECT_DATA = (SID = atlmc2p2))) - -#atlmc2p3.energy.ge.com = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = atlmc2p3.energy.ge.com) (Port = 1528))) -# (CONNECT_DATA = (SID = atlmc2p3))) - -schorh14,schorh14.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP.energy.ge.com)(PROTOCOL = TCP) - (Host = schdba14.sch.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = schorh14))) - -houort18.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP.energy.ge.com)(PROTOCOL = TCP) - (Host = houort18.energy.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = houort18))) - -#houorr16.energy.ge.com = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev03.geips.ge.com)(Port = 1525)) -# (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev03.geips.ge.com)(Port = 1525))) -# (CONNECT_DATA = (SID = HOUORR16))) - -houorr19.energy.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev03.geips.ge.com)(Port = 1541))) - (CONNECT_DATA = (SID = houorr19))) - -gpsgld38.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba38.corporate.ge.com)(Port = 1533)) - (CONNECT_DATA = (SID = GPSGLD38))) - -gpsgld38_gpsdba38.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba38.corporate.ge.com)(Port = 1533)) - (CONNECT_DATA = (SID = FNDFS))) - -FNDFS_gpsdba38.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba38.corporate.ge.com)(Port = 1533)) - (CONNECT_DATA = (SID = FNDFS))) - -#gpsort37.energy.ge.com = -# (DESCRIPTION = -# (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba37.corporate.ge.com)(Port = 1531)) -# (CONNECT_DATA = (SID = GPSORT37))) - -gpsort37_gpsdba37.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba37.corporate.ge.com)(Port = 1531)) - (CONNECT_DATA = (SID = FNDFS))) - -FNDFS_gpsdba37.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba37.corporate.ge.com)(Port = 1531)) - (CONNECT_DATA = (SID = FNDFS))) - -# changed host and added alias 5/19/11 jaf 963570 -gpsorp39, gpsorp39.ae.ge.com, gpsorp39.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsorp39.corporate.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = gpsorp39))) - -gpsorp39_gpsdba39.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsclus01.corporate.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = FNDFS))) - -FNDFS_gpsdba39.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCPCON.energy.ge.com)(PROTOCOL = TCP) (Host = gpsclus01.corporate.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = FNDFS))) - -gpspax81,gpspax81.tsg.ge.com,gpspax81.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspax81.energy.ge.com)(PORT = 1526))) - (CONNECT_DATA = (SERVICE_NAME = GPSPAX81))) - -R2ISD1_OEORPC.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1533)) - (CONNECT_DATA = (SID = OEORPC))) - -sdv01.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.212.70)(PORT = 1521)) - (CONNECT_DATA = (SID = SDV01))) - -schort20.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba20.sch.ge.com)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba20.sch.ge.com)(PORT = 1526))) - (CONNECT_DATA = (SID = SCHORT20))) - -CONV_TXHOUDV05PSGE.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1534)) - (CONNECT_DATA = (SID = FNDFS))) - -R2ISC1_OEORPC.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1530)) - (CONNECT_DATA = (SID = OEORPC))) - -PACK.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.212.57)(PORT = 1521)) - (CONNECT_DATA = (SID = PACK))) - -R2ISD1.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1533)) - (CONNECT_DATA = (SID = R2ISD1))) - -R2ISD1_TXHOUDV05PSGE.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1533)) - (CONNECT_DATA = (SID = FNDFS))) - -R2ISC1_TXHOUDV05PSGE.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1530)) - (CONNECT_DATA = (SID = FNDFS))) - -PROD_TXHOUDV05PSGE.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1531)) - (CONNECT_DATA = (SID = FNDFS))) - -houoro01.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.215)(PORT = 1524)) - (CONNECT_DATA = (SID = houoro01))) - -houorv02.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.215)(PORT = 1523)) - (CONNECT_DATA = (SID = houorv02))) - -FNDFS_TXHOUDV05PSGE.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1531)) - (CONNECT_DATA = (SID = FNDFS))) - -r2isc1.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1530)) - (CONNECT_DATA = (SID = R2ISC1))) - -TEST_TXHOUDV05PSGE.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.211.212)(PORT = 1532)) - (CONNECT_DATA = (SID = FNDFS))) - -ssep.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = txhoud23.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = txhoud23.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = SSEP))) - -gprod.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = txhoud23.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = txhoud23.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = GEMI))) - -dvep.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = 3.96.212.59)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = 3.96.212.59)(Port = 1526))) - (CONNECT_DATA = (SID = DVEP))) - -tsep.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = 3.96.212.59)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = 3.96.212.59)(Port = 1526))) - (CONNECT_DATA = (SID = TSEP))) - -houorp02.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houclus03.geips.ge.com)(Port = 1531))) - (CONNECT_DATA = (SID = houorp02))) - -houorp04.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houclus01.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houclus01.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = houorp04))) - -# host and port changed 4/26/11 jaf 958003 -houorp03, houorp03.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houorp03.energy.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = houorp03))) - -p1stars.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP.corporate.ge.com)(PROTOCOL = TCP) (Host = corpp012.corporate.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = star)(GLOBAL_NAME=p1stars.corporate.ge.com))) - -schord20.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = schdba20.sch.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = schdba20.sch.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = schord20))) - -houorp01.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = houorp01))) - -gpsorp26.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba26.corporate.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = gpsdba26.corporate.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = GPSORP26))) - -cfgdb.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = CFGDB))) - -houord15.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1525))) - (CONNECT_DATA = (SID = houord15))) - -houort14.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev03.geips.ge.com)(Port = 1581))) - (CONNECT_DATA = (SID = houort14))) - -houort12.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = houort12))) - -houord01.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = houord01))) - -oemssep.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev02.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = oemssep))) - -qptdev.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houdev02.geips.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = CFGDB))) - -gp.energy.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = gpsd003c.corporate.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = gpsd003c.corporate.ge.com)(Port = 1521)))) - -dashbd.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (HOST = 3.75.175.73)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = dashbd))) - -houort12.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev03.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houdev03.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = houort12))) - -houorp07.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (Host = houclus02.geips.ge.com)(Port = 1531))) - (CONNECT_DATA = (SID = houorp07))) - -gpshxe40.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) (HOST = gpsdba40.corporate.ge.com)(PORT = 1528))) - (CONNECT_DATA = (SID = gpshxe40))) - -gpsory40.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (HOST = gpsdba40.corporate.ge.com)(PORT = 1635))) - (CONNECT_DATA = (SID = gpsory40))) - -gpshxx81.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (HOST = gpsdba81.corporate.ge.com)(PORT = 1529))) - (CONNECT_DATA = (SID = gpshxx81))) - -houorp03.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houclus04.geips.ge.com)(Port = 1541)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houclus04.geips.ge.com)(Port = 1541))) - (CONNECT_DATA = (SID = houorp03))) - -gemiprod.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = txhoud23.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = txhoud23.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = GEMI))) - -houort12pvcs.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houdev02.geips.ge.com)(Port = 1521)) - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houdev02.geips.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = houort12))) - -gpshxd81.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) - (HOST = gpsdba81.corporate.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SERVICE_NAME = gpshxd81))) - -atlorp08,atlorp08.tsg.ge.com,atlorp08.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) - (HOST = atlord08.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atlorp08))) - -gpsorp77,gpsorp77.tsg.ge.com,gpsorp77.energy.ge.com,gpsorp77.psamer.ge.com,gpsorp77.psamer.ps.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp01.corporate.ge.com) (PORT = 1540))) - (CONNECT_DATA = (SID = gpsorp77)) - ) - -gpsorp77.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp01.corporate.ge.com) (PORT = 1540))) - (CONNECT_DATA = (SID = gpsorp77)) - ) - -gpsorp99.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp01.corporate.ge.com)(PORT = 1540))) - (CONNECT_DATA = (SID = gpsorp77)) - ) - -gpsorp99.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp01.corporate.ge.com)(PORT = 1540))) - (CONNECT_DATA = (SID = gpsorp77)) - ) - -gpsorp53.energy.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) - (HOST = gpsora53.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = gpsorp53))) - -gpsort40.energy.ge.com = - (DESCRIPTION = - (ADDRESS=(PROTOCOL=tcp) - (HOST=schd001b.sch.ge.com)(PORT=1516)) - (CONNECT_DATA=(SID=gpsort40))) - -gpspan81.energy.ge.com = - (DESCRIPTION= - (ADDRESS= (PROTOCOL=tcp)( - HOST=gpsd026d.corporate.ge.com)(PORT=1519)) - (CONNECT_DATA=(SID=gpspan81))) - -gpsore40.energy.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=schd001c.sch.ge.com)(PORT=1525)) - (CONNECT_DATA=(SID=gpsore40))) -# changes 6/14/11 - -gpspad81.energy.ge.com = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=schd001a.sch.ge.com)(PORT=1513)) - (CONNECT_DATA= (SID=gpspad81))) - -houorp09, houorp09.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = houorp09.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = houorp09)) - ) - -houord21.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.energy.ge.com)(PROTOCOL = TCP) - (Host = houdev02.geips.ge.com)(Port = 1541))) - (CONNECT_DATA = (SID = houord21))) - -tscwdev1.erie.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = erioradev1.erie.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = TSCWDEV1))) - -tscwprd1.erie.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = getsorap02.net.erie.ge.com) (Port = 1529))) - (CONNECT_DATA = (SID = TSCWPRD1))) - -tsinfrd1.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=eriorastg1.erie.ge.com)(PORT=1526))) - (CONNECT_DATA= (SID=tsdwhss1))) - -# changed 6/9/11 jaf 989204 -tsoapsd1,tsoapsd1.tsg.ge.com,tsoapsd1.trans.ge.com= - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = trnerpd-scan.trans.ge.com)(PORT = 1525)) - (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = tsoapsd1)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)))) - -tsoapss2.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=tsoapss2.corporate.ge.com)(PORT=1526))) - (CONNECT_DATA= (SID=tsoapss2))) - -clearq.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=mlbdbclearq.tms.ad.trans.ge.com)(PORT=1625))) - (CONNECT_DATA= (SID=clearq))) - -troltpp1.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=troltpp1.trans.ge.com)(PORT=1529))) - (CONNECT_DATA= (SID=troltpp1))) - -troltps1.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=troltps1.trans.ge.com)(PORT=1529))) - (CONNECT_DATA= (SID=troltps1))) - -troltpd1.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=troltpd1.trans.ge.com)(PORT=1521))) - (CONNECT_DATA= (SID=troltpd1))) - -tsoastg1.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=eriorastg1.trans.ge.com)(PORT=1526))) - (CONNECT_DATA= (SID=tsoastg1))) - -tsoastg2.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=tsoastg2.corporate.ge.com)(PORT=1521))) - (CONNECT_DATA= (SID=tsoastg2))) - -tsotprd1.trans.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=getsorap02.net.erie.ge.com)(PORT=1526))) - (CONNECT_DATA= (SID=tsotprd1))) - -tsprivd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsprivd1.trans.ge.com)(PORT=1521))) - (CONNECT_DATA = (SID = tsprivd1)(GLOBAL_NAME = null))) - -# changed 6/16/11 993935 jaf -tsprivs1, tsprivs1.trans.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb001.trans.ge.com)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb002.trans.ge.com)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb003.trans.ge.com)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = TSPRIVS))) - -# changed 7/19/11 jaf 1017959 -tsprivp1, tsprivp1.trans.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.51)(PORT = 1529)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.52)(PORT = 1529)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.53)(PORT = 1529)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = TSPRIVP))) - -tsoapsp1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsoapsp1.corporate.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSOAPSP1))) - -TSOAPRD1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap01.corporate.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSOAPRD1))) - -TSEFDEV2, TSEFDEV2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSEFDEV2))) - -TSEFSTG2, TSEFSTG2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = eriorastg1.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSEFSTG2))) - -TSEFPRD2, TSEFPRD2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = getsorap02.net.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSEFPRD2))) - -TSRDDEV2, TSRDDEV2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = maul.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRDDEV2))) - -TSRDPRD9, TSRDPRD9.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = getsrdpr.corporate.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRDPRD9))) - -TSRDDEV9, TSRDDEV9.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsrddv.corporate.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRDDEV9))) - -TSRDSTG9, TSRDSTG9.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsrddv.corporate.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRDSTG9))) - -TSRDPRD1, TSRDPRD1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = 3.125.232.149)(Port = 1521))) - (CONNECT_DATA = (SID = TSRDPRD1))) - -TSRDSTG1, TSRDSTG1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = saratoga.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRDSTG1))) - -TSRDDEV1, TSRDDEV1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = 3.14.2.81)(Port = 1521))) - (CONNECT_DATA = (SID = TSRDDEV1))) - -TSRDTST1, TSRDTST1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = 3.125.232.149) (Port = 1521))) - (CONNECT_DATA = (SID = TSRDTST1))) - -TSRWPRD1, TSRWPRD1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsrwprd1.trans.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSRWPRD1))) - -TSRWDEV1, TSRWDEV1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = defiant.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRWDEV1))) - -RINTEST, RINTEST.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RINTEST_OCI)(GLOBAL_NAME = RINTEST.WORLD))) - -RINTEST_RO, RINTEST_RO.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RINROTEST_OCI)(GLOBAL_NAME = RINTEST.WORLD))) - -RINRO_DEV, RINRO_DEV.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RINROTEST_OCI)(GLOBAL_NAME = RINTEST.WORLD))) - -DRSRINPROD, DRSRINPROD.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RINPROD_OCI)(GLOBAL_NAME = DRSRINPROD.WORLD))) - -RINPROD, RINPROD.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RINPROD_OCI)(GLOBAL_NAME = RINPROD.WORLD))) - -RINPROD_RO, RINPROD_RO.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RINROPROD_OCI)(GLOBAL_NAME = RINPROD.WORLD))) - -RINRO_PRD, RINRO_PRD.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RINROPROD_OCI)(GLOBAL_NAME = RINPROD.WORLD))) - -RELPROD, RELPROD.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = REL_PROD.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RELPROD_OCI)(GLOBAL_NAME = RELPROD.WORLD))) - -RELTEST, RELTEST.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = REL_TEST.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RELTEST_OCI)(GLOBAL_NAME = RELTEST.WORLD))) - -RELRO_PRD, RELRO_PRD.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = GETRDB.trans.ge.com)(PORT = 1526)) - (CONNECT_DATA = (SID = RELROPROD_OCI)(GLOBAL_NAME = RELPROD.WORLD))) - -OAPP, OAPP.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = 3.11.2.170)(Port = 1521))) - (CONNECT_DATA = (SID = OAPP))) - -GEHRPVCS.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP.world)(PROTOCOL = TCP)(Host = 3.11.2.168)(Port = 1521))) - (CONNECT_DATA =(SID = GEHRPVCS))) - -PVCS, PVCS.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP.world)(PROTOCOL = TCP)(Host = 3.11.2.168)(Port = 1521))) - (CONNECT_DATA = (SID = PVCS))) - -TSTXDEV1, TSTXDEV1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSTXDEV1))) - -TSTXSTG1, TSTXSTG1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriorastg1.erie.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSTXSTG1))) - -TSTXPRD1, TSTXPRD1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSTXPRD1))) - -DWHSDEV, DWHSDEV.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsdwhsd2.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSDWHSD2))) - -TSDWHSD2, TSDWHSD2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsdwhsd2.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSDWHSD2))) - -COLLDEV, COLLDEV.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tscolld2.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSCOLLD2))) - -TSCOLLD2, TSCOLLD2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tscolld2.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSCOLLD2))) - -TSCOLLP2, TSCOLLP2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tscollp2.trans.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSCOLLP2))) - -collprd, collprd.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSCOLLP2))) - -# altered by 958009 4/26/11 jaf -tsglosd1, tsglosd1.trans.ge.com = -(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = tsglosd))) - -# changed 6/14/11 989299 jaf -tsglosp1, tsglosp1.trans.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = CINTRNPDB001-vip1.trans.ge.com)(PORT = 1528)) - (ADDRESS = (PROTOCOL = TCP)(HOST = CINTRNPDB002-vip1.trans.ge.com)(PORT = 1528)) - (ADDRESS = (PROTOCOL = TCP)(HOST = CINTRNPDB003-vip1.trans.ge.com)(PORT = 1528)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = TSGLOSP))) - -tsdwhsp2, tsdwhsp2.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsdwhsp2.trans.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSDWHSP2))) - -trutilp2, trutilp2.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TRUTILP2))) - -DWHSPRD, DWHSPRD.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSDWHSP2))) - -TSDWHSS1, TSDWHSS1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriorastg1.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSDWHSS1))) - -TSDWHSS2, TSDWHSS2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsdwhss2.trans.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSDWHSS2))) - -DWHSSTG, DWHSSTG.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsdwhss2.trans.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSDWHSS2))) - -TSOTDEV2, TSOTDEV2.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSOTDEV2))) - -OT_DEV, OT_DEV.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSOTDEV2))) - -TSOTSTG1, TSOTSTG1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriorastg1.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSOTSTG1))) - -OT_PRD, OT_PRD.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSOTPRD1))) - -PCTR_P, PCTR_P.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = cms01gvgs.gs.ad.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = PCTR))) - -# changed wo 974063 5/19/11 jaf -TSGLOSS1, TSGLOSS1.TRANS.GE.COM = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb001.trans.ge.com)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb002.trans.ge.com)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb003.trans.ge.com)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = TSGLOSS))) - -PRDWCGEN, PRDWCGEN.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = orasharepdb1.indsys.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = PRDWCGEN))) - -TSIMPRD1, TSIMPRD1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsimprd1.tsg.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSIMPRD1))) - -tsimdev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(HOST = tsimdev1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = TSIMDEV1))) - -iman_prd, iman_prd.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriman1.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSIMPRD1))) - -eurosales, eurosales.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = 3.125.240.42)(Port = 1521))) - (CONNECT_DATA = (SID = PROD))) - -tsoasbx1, tsoasbx1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = bsrtdd02.corporate.ge.com)(Port = 1524))) - (CONNECT_DATA = (SID = TSOASBX1))) - -tscolls2, tscolls2.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = tscolls2.trans.ge.com)(PORT = 1529))) - (CONNECT_DATA = (sid = TSCOLLS2))) - -collstg, collstg.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = tscolls2.trans.ge.com)(PORT = 1529))) - (CONNECT_DATA = (sid = TSCOLLS2))) - -dwhsstg, dwhsstg.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsdwhss2.trans.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TSDWHSS2))) - -tgetri = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = auohsgetr01.oracleoutsourcing.com)(Port = 10510))) - (CONNECT_DATA = (SID = tgetri))) - -SOURCINGDEV, SOURCINGDEV.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TROLTPD1))) - -SOURCINGSTG, SOURCINGSTG.TRANS.GE.COM= - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriorastg1.erie.ge.com)(Port = 1529))) - (CONNECT_DATA = (SID = TROLTPS1))) - -DEVWCGEN, DEVWCGEN.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = orashareddb1.indsys.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = DEVWCGEN))) - -sourcingprd, sourcingprd.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = troltpp1.trans.ge.com) (Port = 1529))) - (CONNECT_DATA = (SID = troltpp1))) - -tsdwhsp2, tsdwhsp2.net.erie.ge.com = - (DESCRIPTION= - (ADDRESS_LIST=(ADDRESS=(COMMUNITY=TCP)(PROTOCOL=TCP)(Host=getsorap02.net.erie.ge.com)(Port=1529))) - (CONNECT_DATA=(SID=TSDWHSP2)(GLOBAL_NAME=getsorap02.net.erie.ge.com))) - -ts10gtst, ts10gtst.trans.ge.com= - (DESCRIPTION= - (ADDRESS_LIST=(ADDRESS=(COMMUNITY=TCP)(PROTOCOL=TCP)(Host=blade48.trans.ge.com)(Port=1521))) - (CONNECT_DATA=(SERVICE_NAME=TS10GTST))) - -tsdxprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY=TCP)(PROTOCOL=TCP)(Host=getsorap02.net.erie.ge.com)(Port=1526))) - (CONNECT_DATA=(SID=TSDXPRD1))) - -tsdxdev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(COMMUNITY=TCP)(PROTOCOL=TCP)(Host=getsorab02.corporate.ge.com)(Port=1521))) - (CONNECT_DATA = (SID=TSDXDEV1))) - -tspadev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA =(SID = TSPADEV1))) - -tspastg1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriorastg1.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSPASTG1))) - -tspaprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSPAPRD1))) - -tsprprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tsprprd1.trans.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSPRPRD1))) - -tsprdev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.trans.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSPRDEV1))) - -tsprstg1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriorastg1.trans.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSPRSTG1))) - -tslsdev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSLSDEV1))) - -tsewprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSEWPRD1))) - -tsewdev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSEWDEV1))) - -tsrmdev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRMDEV1))) - -tsrmstg1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eriorastg1.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSRMSTG1))) - -tsrmprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSRMPRD1))) - -tsdwhsd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA =(SID = TSDWHSD1))) - -tsowprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsorap02.net.erie.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSOWPRD1))) - -tsawprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsawx01.net.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSAWPRD1))) - -tsutilp1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = getsawx01.net.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSUTILP1))) - -tscqdev1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = erioradev1.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSCQDEV1))) - -tscqprd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tscqprd1.trans.ge.com)(Port = 1526))) - (CONNECT_DATA = (SID = TSCQPRD1))) - -geaesdb, geaesdb.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=geaetcdw01)(PORT=1521))) - (CONNECT_DATA= (SID=geaesdb))) - -nav72adc, nav72adc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS = (PROTOCOL = TCP) (Host = 138.162.106.73) (Port = 1526))) - (CONNECT_DATA = (SID = ORC2))) - -nav72efc, nav72efc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS = (PROTOCOL = TCP) (Host = 138.162.106.73) (Port = 1526))) - (CONNECT_DATA = (SID = ORC3))) - -pax4-nt11, pax4-nt11.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 140.229.54.7)(PORT = 1521)) - (CONNECT_DATA = (SID = ORC0))) -nav7adco, nav7adco.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(Host = 140.229.14.213)(Port = 1521)) - (CONNECT_DATA = (SID = ORC1))) -nav7efco, nav7efco.ae.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(Host = 140.229.14.213)(Port = 1521)) - (CONNECT_DATA = (SID = ORC2))) - -RRA2_tsgsp00170, RRA2_tsgsp00170.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00170.ae.ge.com)(Port=1841))) - (CONNECT_DATA=(SID=RRA2)(GLOBAL_NAME=RRA2_tsgsp00170.ae.ge.com))) - -RRA_tsgsp00170, RRA_tsgsp00170.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00170.ae.ge.com)(Port=1528)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00170.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00170.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=RRA))) - - -RRA2_tsgsp00171, RRA2_tsgsp00171.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00171.ae.ge.com)(Port=1841))) - (CONNECT_DATA=(SID=RRA2)(GLOBAL_NAME=RRA2_tsgsp00171.ae.ge.com))) - -RRA_tsgsp00171, RRA_tsgsp00171.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00171.ae.ge.com)(Port=1528)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00171.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00171.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=RRA))) - - -RRA2_tsgsp00172, RRA2_tsgsp00172.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00172.ae.ge.com)(Port=1841))) - (CONNECT_DATA=(SID=RRA2)(GLOBAL_NAME=RRA2_tsgsp00172.ae.ge.com))) - -RRA_tsgsp00172, RRA_tsgsp00172.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00172.ae.ge.com)(Port=1528)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00172.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00172.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=RRA))) - - -RRA2_tsgsp00174, RRA2_tsgsp00174.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tsgsp00174.ae.ge.com)(Port=1841))) - (CONNECT_DATA=(SID=RRA2)(GLOBAL_NAME=RRA2_tsgsp00174.ae.ge.com))) - -RRA_tsgsp00174, RRA_tsgsp00174.ae.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00174.ae.ge.com)(Port=1528)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00174.ae.ge.com)(Port=1600)) - (ADDRESS=(PROTOCOL=TCP)(Host=tsgsp00174.ae.ge.com)(Port=1601))) - (CONNECT_DATA=(SID=RRA))) - -geeqarun, geeqarun.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atldba137.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = ATLOP137) (SERVER = DEDICATED))) - -gpsord81, gpsord81.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd001a.sch.ge.com)(PORT = 1511))) - (CONNECT_DATA =(SID = gpsord81))) - -gpsorj53, gpsorj53.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora53.corporate.ge.com)(PORT = 1526))) - (CONNECT_DATA =(SID = gpsorj53))) - - -gpsmfd81, gpsmfd81.ae.ge.com = (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=schd001a.sch.ge.com)(PORT=1535)) - (CONNECT_DATA=(SID=gpsmfd81))) - -schchd85 = - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=schd001c.sch.ge.com)(PORT=25600)) - (CONNECT_DATA=(SID=schchd85))) - -schcht85 = (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=schd014.sch.ge.com)(PORT=1618)) - (CONNECT_DATA=(SID=schcht85))) - -gpschxr1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgsd1003.energy.ge.com)(PORT = 1618))) - (CONNECT_DATA = (SID = gpschxr1))) - -gpschxs1,gpschxs1.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=gpschxs1.tsg.ge.com)(Port=1552))) - (CONNECT_DATA = (SID = gpschxs1))) - -gpsorc77.psamer.ps.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(HOST=GPSORC77.CORPORATE.GE.COM)(PORT=1545))) - (CONNECT_DATA=(SERVICE_NAME=GPSORC77))) - -schwsb82.psamer.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd014.sch.ge.com)(PORT = 28871))) - (CONNECT_DATA = (SID = SCHWSB82))) - -gpspax81.psamer.ps.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schd001a.sch.ge.com)(PORT = 1540))) - (CONNECT_DATA = (SID = GPSPAX81))) - -gpsesp76.capital.ge.com= - (DESCRIPTION= - (ADDRESS=(PROTOCOL=TCP)(HOST=gpserp02.corporate.ge.com)(PORT=1580)) - (CONNECT_DATA=(SID=gpsesp76))) - -gpsesp76,gpsesp76.energy.ge.com,gpsesp76.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp02.corporate.ge.com)(PORT = 1580))) - (CONNECT_DATA = (SERVICE_NAME = gpsesp76))) - -gpsnsp11,gpsnsp11.tsg.ge.com,gpsnsp11.corporate.ge.com,gpsnsp11.psamer.ps.ge.com,gpsnsp11.world = - (Description= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=gpsgensoltp.corporate.ge.com)(PORT=12501))) - (CONNECT_DATA=(SID=gpsnsp11)) - ) - -gpsorp39.psamer.ps.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCPCON.world) (PROTOCOL = TCP) (Host = gpsclus01.corporate.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = gpsorp39))) - -gpsogp99,gpsogp99.tsg.ge.com,gpsogp99.world,gpsogp99.psamer.ps.ge.com, gpsogp99.np.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = rs12edp.np.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID = gpsogp99))) - -ewhgnep3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhgnep3.energy.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = ewhgnep3))) - -ewhsvcp3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhsvcp3.energy.tsg.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID = ewhsvcp3))) - -tsginfp2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsginfp2.tsg.ge.com) (PORT = 1525))) - (CONNECT_DATA = (SID = tsginfp2))) - -tsgcogp2,tsgcogp2.tsg.ge.com,tsgcogp2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgcogp2.tsg.ge.com) (PORT = 1526))) - (CONNECT_DATA = (SID = tsgcogp2))) - -gpschxd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = GPSCHXD1.ENERGY.GE.COM) (PORT = 1546))) - (CONNECT_DATA = (SID = gpschxd1))) - -gpserp15.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp15.corporate.ge.com) (PORT = 25000))) - (CONNECT_DATA = (SERVICE_NAME = gpschxp1))) - -ttptmcp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = ttptmcp1.fso.erie.ge.com)(PORT = 1642))) - (CONNECT_DATA = (SID = ttptmcp1))) - -medaorcl.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = DMPWIND.SCH.GE.COM) (PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = medaorcl) (SRVR = DEDICATED))) - -gpsgnep1,gpsgnep1.tsg.ge.com,GPSGNEP1.energy.ge.com, gene_prod = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=GPSGNEP1.corporate.ge.com)(PORT=29000))) - (CONNECT_DATA= (SID=gpsgnep1))) - -gpsgnet1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsgnet1.energy.ge.com)(PORT = 1593))) - (CONNECT_DATA = (SERVICE_NAME = gpsgnet1))) - -eueodsp2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = eueodsp2.energy.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = eueodsp2))) - -# Updated 20-Jun-2010 by JHR - CMR 343703 WO 740841 -cdb02, cdb02.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = pipcdb02.corporate.ge.com)(PORT = 1599))) - (CONNECT_DATA = (SID = cdb02))) - -sdb06,sdb06.tsg.ge.com,sdb06.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = pipsdb06.corporate.ge.com)(PORT = 1599))) - (CONNECT_DATA = (SID = sdb06))) - -sdb08,sdb08.tsg.ge.com,sdb08.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = pipsdb08.corporate.ge.com)(PORT = 1599))) - (CONNECT_DATA = (SID = sdb08))) - -sdb09,sdb09.tsg.ge.com,sdb09.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = pipsdb09.corporate.ge.com)(PORT = 1599))) - (CONNECT_DATA = (SID = sdb09))) - -gpsore66, gpsore66.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora66.corporate.ge.com)(PORT = 1522))) - (CONNECT_DATA = (SERVICE_NAME = gpsore66))) - -enpp.schort34 = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba34.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = schort34))) - -evus04ecc, evus04ecc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = evus04ecc.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = rambdb))) - -etpcamt1,etpcamt1.tsg.ge.com,etpcamt1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = etpcamt1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpcamt1))) - - -gpsgps80,gpsgps80.tsg.ge.com,gpsgps80.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpsgps80.tsg.ge.com)(PORT = 1596))) - (CONNECT_DATA = (SID = gpsgps80))) - - -gpschxt1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpschxt1.energy.ge.com)(PORT = 1547))) - (CONNECT_DATA = (SID = gpschxt1))) - -etppted1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etppted1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = etppted1))) - -etpptet1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpptet1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpptet1))) - -etppteq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etppteq1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etppteq1))) - -gpsnsd11.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsnsd11.energy.ge.com)(PORT = 1542))) - (CONNECT_DATA = (SID = gpsnsd11))) - -gpserp02.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp02.corporate.ge.com)(PORT = 1580))) - (CONNECT_DATA = (SERVICE_NAME = gpsesp76))) - -etpcamp1,etpcamp1.tsg.ge.com,etpcamp1.energy.ge.com= - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS= (PROTOCOL=TCP) (HOST=etpcamp1.tsg.ge.com) (PORT=1521))) - (CONNECT_DATA = (SID=etpcamp1))) - -ddevds01, ddevds01.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.31.112.125)(PORT = 1521))) - (CONNECT_DATA = (SID = autoprd) (SERVER = DEDICATED))) - -prodgets = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST =3.125.240.42)(PORT = 1521))) - (CONNECT_DATA =(SERVICE_NAME = PROD))) - -erpesev1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=erpesev1.energy.ge.com)(PORT=1618))) - (CONNECT_DATA= (SID=erpesev1))) - -etpeaip2,etpeaip2.tsg.ge.com,etpeaip2.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpeaip2.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpeaip2)(SERVER = DEDICATED)) - ) - -erpesex1,erpesex1.tsg.ge.com,erpesex1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erpesex1.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA = (SID = erpesex1))) - -gpsmfd77.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=gpsmfd77.energy.ge.com)(PORT=1533))) - (CONNECT_DATA = (SERVICE_NAME=gpsmfd77))) - -etppegp1,etppegp1.tsg.ge.com,etppegp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = etppegp1.energy.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etppegp1))) - -ap_atpoltp1, ap_atpoltp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = atpoltp1.ae.ge.com) (Port = 1528))) - (CONNECT_DATA = (SID = atpoltp1))) - -hpsd_evnoltpa, hpsd_evnoltpa.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = EVNOLTPA.ae.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = EVNOLTPA))) - -usnapss1, usnapss1.ae.ge.com, usnapss1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = usnapss1.tsg.ge.com)(PORT = 1525))) - (CONNECT_DATA = (SID = usnapss1) (SERVER = DEDICATED))) - - -eueoltd5, eueoltd5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltd5.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = eueoltd5) (SERVER = DEDICATED))) - -eueoltq5, eueoltq5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltq5.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = eueoltq5))) - -eueoltp5,eueoltp5.tsg.ge.com,eueoltp5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltp5.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = eueoltp5))) - -adwodsq1, adwodsq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adwodsq1.ae.ge.com)(PORT = 1529))) - (CONNECT_DATA =(sid = adwodsq1))) - -adwodsp1, adwodsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adwodsp1.ae.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = adwodsp1))) - -ttpoltd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ttpoltd1.trans.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = ttpoltd1))) - -ttpoltp1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ttpoltp1.trans.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = ttpoltp1))) - - -erppgfs2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgfs2.energy.ge.com)(PORT = 1525))) - (CONNECT_DATA = (SERVICE_NAME = erppgfs2))) - -# hostname changed per 934146 3/24/11 jaf - -erppgfb2, erppgfb2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erppgfb2.tsg.ge.com)(PORT = 1585))) - (CONNECT_DATA = (SID = erppgfb2))) - -erppgfp2.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erppgfp2.corporate.GE.COM)(PORT = 1541))) - (CONNECT_DATA = (SID = erppgfp2))) - -gpsird80,gpsird80.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=gpsird80.tsg.ge.com)(PORT=1577))) - (CONNECT_DATA=(SID=gpsird80))) - -gegs_apps_test, gegs_apps_test.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.125.240.44)(PORT = 1522))) - (CONNECT_DATA = (SERVICE_NAME = TEST))) - -# host and port changed per 940013 4/12/11 jaf NOTE: this entry worked b4 change -gpsort77, gpsort77.energy.ge.com, gpsort77.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp) (HOST=gpsort77.energy.ge.com)(PORT=1535))) - (CONNECT_DATA=(SID=gpsort77))) - -gpsorp99.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=gpsord77.energy.ge.com)(PORT=1532))) - (CONNECT_DATA = (SID = gpsord77))) - -evnapwl1, evnapwl1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=evnapwl1.tsg.ge.com)(PORT=1521))) - (CONNECT_DATA = (SID = evnapwl1))) - -troltpd1-mig.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = troltpd1-mig.trans.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = troltpd1))) - -schort34.energy.ge.com, schort34.sch.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = schdba34.sch.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = schort34))) - -erppgfp2, erppgfp2.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erppgfp2.corporate.GE.COM)(PORT = 1541))) - (CONNECT_DATA = (SID = erppgfp2))) - -espl.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etppted1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = etppted1))) - -atlord65.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.96.199.44)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = ATLORD65))) - -gpsors77.psamer.ps.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsors77.energy.ge.com)(PORT = 1537))) - (CONNECT_DATA = (SERVICE_NAME = gpsors77))) - -houorp08.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = houorp08.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = houorp08))) - -blsorv51,blsorv51.tsg.ge.com,blsorv51.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba51.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = blsorv51))) - -ttpoltq1.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ttpoltq1.trans.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = ttpoltq1))) - -m41,schorm41,schorm41.tsg.ge.com,schorm41.energy.ge.com,m41.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = schdba41.sch.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = schorm41))) - -etps06p1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPS06P1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = ETPS06P1))) - -houorp05.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = houorp05.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = houorp05))) - -etppega.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = tsgsp00001.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = ETPPEGA))) - -erpesep1,erpesep1.tsg.ge.com,erpesep1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS =(PROTOCOL = tcp)(HOST = erpesep1.tsg.ge.com)(PORT = 1546))) - (CONNECT_DATA = (SID = erpesep1))) - -Rep60_gpsnsp11.world=(ADDRESS=(PROTOCOL=tcp)(HOST=gpsgensoltp)(PORT=7004)) - -erppgji1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erppgji1.energy.ge.com)(PORT = 1531))) - (CONNECT_DATA = (SID = erppgji1))) - -atpkrnd1,atpkrnd1.tsg.ge.com, atpkrnd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpkrnd1.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA = (SID = atpkrnd1))) - -atpkrnq1,atpkrnq1.tsg.ge.com,atpkrnq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpkrnq1.tsg.ge.com)(PORT = 1534))) - (CONNECT_DATA = (SID = atpkrnq1))) - -atpkrnp1,atpkrnp1.tsg.ge.com,atpkrnp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpkrnp1.ae.ge.com)(PORT = 1534))) - (CONNECT_DATA = (SID = atpkrnp1))) - -etporbd1,etporbd1.tsg.ge.com, etporbd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etporbd1.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA = (SID = etporbd1))) - -erpeses1,erpeses1.tsg.ge.com,erpeses1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp) (HOST=erpeses1.tsg.ge.com) (PORT=1592))) - (CONNECT_DATA = (SID = erpeses1))) - -gedw, gedw.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=dw01.ae.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = dw01))) - -gpsfoxtr.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpsfoxtr.energy.ge.com)(PORT = 1598))) - (CONNECT_DATA = (SID = gpsfoxtr))) - -houorp06.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = houorp06.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = houorp06))) - -etpcamq1,etpcamq1.tsg.ge.com,etpcamq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcamq1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpcamq1))) - -gsppax81.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpspax81.energy.ge.com)(PORT = 1526))) - (CONNECT_DATA = (SID = gpspax81))) - -etpessd1,etpessd1.tsg.ge.com,etpessd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=masdsd200.energy.ge.com)(PORT=1625))) - (CONNECT_DATA=(SID= etpessd1))) - -houord22.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = houord22.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = houord22))) - -gpsirc80,gpsirc80.energy.ge.com = - (DESCRIPTION = - (ADDRESS = - (ADDRSS_LIST = (PROTOCOL = TCP)(HOST = gpsirc80.tsg.ge.com)(PORT = 1574))) - (CONNECT_DATA = (SID = gpsirc80))) - -newpatch.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpswdx82.energy.ge.com)(PORT = 1568))) - (CONNECT_DATA = (SID = gpswdx82)(SRVR = DEDICATED))) - -etpcamd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = masdsd001.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (sid = etpcamd1))) - -mascamd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = masdsd001.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (sid=etpcamd1))) - -# changed per wo 964349 5.12.11 jaf -tdwodsd1,tdwodsd1.tsg.ge.com, tdwodsd1.trans.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA =(SID = tdwodsd))) - -houorr20.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = houorr20.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = houorr20))) - -gpswds82,gpswds82.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpswds82.energy.ge.com)(PORT = 1570))) - (CONNECT_DATA = (SID = gpswds82))) - -gpswdp82.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = gpswind.corporate.ge.com)(PORT = 14501))) - (CONNECT_DATA = (SID = gpswdp82))) - -erppgrt1,erppgrt1.tsg.ge.com,erppgrt1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=TCP)(Host=erppgrt1.tsg.ge.com)(Port=1531))) - (CONNECT_DATA = (SID = erppgrt1))) - -erppgrb1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=erppgrb1.energy.ge.com)(Port=1526))) - (CONNECT_DATA = (SID = erppgrb1))) - -schorl19.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(Host = schdba19.sch.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = schorl19))) - -etps13p1, etps13p1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps13p1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etps13p1))) - -etxorbp1,etxorbp1.tsg.ge.com,etxorbp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etxorbp1.energy.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = etxorbp1))) - -gibdev.energy.ge.com, atlord21.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlord21.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atlord21))) - -gpswdp82.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=gpswind.corporate.ge.com)(Port=14501))) - (CONNECT_DATA = (SID = gpswdp82))) - -etpwgrd1,etpwgrd1.tsg.ge.com, etpwgrd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=etpwgrd1.tsg.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = etpwgrd1))) - -erppgre1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=erppgre1.energy.ge.com)(Port=1572))) - (CONNECT_DATA = (SID = erppgre1))) - -# changed 6/9/11 jaf 990845 -tdwodsq1,tdwodsq1.tsg.ge.com,tdwodsq1.trans.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb001.trans.ge.com)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb002.trans.ge.com)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrnsdb003.trans.ge.com)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = tdwodsq))) - -ewhpwrd3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=ewhpwrd3.energy.tsg.ge.com)(Port=1522))) - (CONNECT_DATA = (SID = ewhpwrd3))) - -gpspgjs2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=gpspgjs2.energy.ge.com)(Port=1582))) - (CONNECT_DATA = (SID = gpspgjs2))) - -etpwgrp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=etpwgrp1.energy.ge.com)(Port=1521))) - (CONNECT_DATA = (SID = etpwgrp1))) - -gpspgjd2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=gpspgjd2.energy.ge.com)(Port=1584))) - (CONNECT_DATA = (SID = gpspgjd2))) - -gpspgjp2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(Host=gpspgjp2.corporate.ge.com)(Port=28000))) - (CONNECT_DATA = (SID = gpspgjp2))) - -erpgnea1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=erpgnea1.energy.ge.com)(PORT=1545))) - (CONNECT_DATA = (SID=erpgnea1))) - -wlmnexd1, wlmnexd1.tsg.ge.com, wlmnexd1.energy.ge.com, wlmnexd1.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = wlmnexd1.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = wlmnexd1))) - -sjcsd004.energy.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = sjcsd004.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = CHEMD))) - -sjcsd003.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = sjcsd003.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = CHEMD))) - -schotm05.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = schdba05.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = schotm05))) - -schorm41.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = schdba41.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = schorm41))) - -etpemdd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = etpemdd1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpemdd1))) - -ttptmcq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = ttptmcq1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = ttptmcq1))) - -etpessu1,etpessu1.tsg.ge.com,etpessu1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpessu1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid=etpessu1))) - -erpshsr1.energy.ge.com = - (DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erpshsr1.energy.ge.com)(PORT = 1598))) - (CONNECT_DATA = (SID = ERPSHSR1))) - -erppgrp1,erppgrp1.tsg.ge.com,erppgrp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erppgrp1.tsg.ge.com)(PORT = 1531))) - (CONNECT_DATA = (SID = erppgrp1))) - -# changed 7/15/11 jaf 1009081 -tdwodsp1, tdwodsp1.trans.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.51)(PORT = 1530)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.52)(PORT = 1530)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.53)(PORT = 1530)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = TDWODSP))) - -erppgfs1,erppgfs1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = erppgfs1.tsg.ge.com)(PORT = 1598))) - (CONNECT_DATA =(SID = erppgfs1))) - -cts.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd004.ne.ge.com) (PORT = 1521))) - (CONNECT_DATA = (SID = CTSD))) - -ctsp.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = sjcsd003.ne.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID = CTS))) - -ntxoltd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = ntxoltd1.wilm.ge.com)(PORT = 1525))) - (CONNECT_DATA = (SERVICE_NAME = ntxoltd1.wilm.ge.com))) - -erppgrc1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erppgrc1.energy.ge.com)(PORT = 1562))) - (CONNECT_DATA = (SID = erppgrc1))) - -bsts.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.125.240.43)(PORT = 1524))) - (CONNECT_DATA = (SERVICE_NAME = bsts))) - -# hostname changed per 934568 3/24/11 jaf -atlorp38,atlorp38.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp38.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atlorp38))) - -chemd.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd004.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = CHEMD))) - -chemp.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd003.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = CHEMP))) - -mary, mary.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = el021siteaege.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = MARY))) - -gpsgnex1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=gpsgnex1.energy.ge.com)(PORT=1617))) - (CONNECT_DATA=(SID=gpsgnex1))) - -erpgneb1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=erpgneb1.energy.ge.com)(PORT=1522))) - (CONNECT_DATA=(SID=erpgneb1))) - -erpgnec1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=erpgnec1.energy.ge.com)(PORT=1525))) - (CONNECT_DATA=(SID=erpgnec1))) - -erppgrc1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=erppgra1.energy.ge.com)(PORT=1581))) - (CONNECT_DATA=(SID=erppgra1))) - -italyprd.trans.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=3.125.240.42)(PORT=1521))) - (CONNECT_DATA=(SERVICE_NAME=PROD))) - -borop001.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = borop001.fr-epe.geps.ge.com)(PORT = 1701))) - (CONNECT_DATA = (SID = borop001))) - -borop001.world= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = borop001.fr-epe.geps.ge.com)(PORT = 1701))) - (CONNECT_DATA = (SID = borop001))) - -schorl15.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba15.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = schorl15))) - -schori43.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba43.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = SCHORI43))) - -schori43.world= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba43.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = SCHORI43))) - -gpsos105.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba105.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = gpsos105))) - -gpserp01.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp01.corporate.ge.com)(PORT = 1540))) - (CONNECT_DATA = (SID = gpsorp77))) - -# changed 10/8/2010 jaf wo 821806 -erppgje1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgje1.tsg.ge.com)(PORT = 1572))) - (CONNECT_DATA = (SID =erppgje1))) - -etpjend1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpjend1.atjenn01.ps.ge.com)(PORT = 1528))) - (CONNECT_DATA = (SID =etpjend1))) - -etpjenp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpjenp1.atjenn01.ps.ge.com)(PORT = 1528))) - (CONNECT_DATA = (SID =etpjenp1))) - -etpjenq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpjenq1.atjenn01.ps.ge.com) (PORT = 1527))) - (CONNECT_DATA = (SID = etpjenq1))) - -gpsgneg1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsgneg1.energy.ge.com )(PORT = 1557))) - (CONNECT_DATA = (SID =gpsgneg1))) - -ntxmtxp1,ntxmtxp1.wilm.ge.com,ntxmtxp1.gnf.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxmtxp1.tsg.ge.com)(PORT = 1523)) - (CONNECT_DATA = (SERVICE_NAME = ntxmtxp1.wilm.ge.com))) - -ntxoltp1, ntxoltp1.wilm.ge.com,ntxoltp1.gnf.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = tcp)(HOST = ntxoltp1.tsg.ge.com)(PORT = 1532)) - (CONNECT_DATA = (SERVICE_NAME = ntxoltp1.wilm.ge.com))) - -schort19,schort19.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba19.sch.ge.com )(PORT = 1521))) - (CONNECT_DATA = (SID =schort19))) - -gpsorp58.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba58.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID =dwdev))) - -gpsescs1, gpsescs1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host=gpsescs1.tsg.ge.com)(Port=1595))) - (CONNECT_DATA=(SID=gpsescs1))) - -atlorp01.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp01.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atlorp01))) - -atxoltn5,atxoltn5.tsg.ge.com, atxoltn5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltn5.tsg.ge.com)(PORT = 1540))) - (CONNECT_DATA = (SID =atxoltn5))) - -erpshsd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erpshsd1.energy.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID =erpshsd1))) - -calwpsdv, calwpsdv.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = pikeu02oradev.eu.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID =calwpsdv))) - -SSI0.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = corpt230.corporate.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID =ssi0))) - -SSI0 = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = corpt230.corporate.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID =ssi0))) - -erpshsp1,erpshsp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erpshsp1.tsg.ge.com)(PORT = 1551))) - (CONNECT_DATA = (SID =erpshsp1))) - -erppgjj1,erppgjj1.tsg.ge.com,erppgjj1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgjj1.tsg.ge.com)(PORT = 1523))) - (CONNECT_DATA = (SID =erppgjj1))) - -houorp08.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = houorp08.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = houorp08))) - -houord21.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = houord21.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID =houord21))) - -ewhpwrp3.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL=tcp)(HOST=ewhpwrp3.energy.tsg.ge.com)(PORT=1525)) - (CONNECT_DATA = (SID=ewhpwrp3))) - -gibdev.atlord21.geips.ge.com = - (DESCRIPTION= - (ADDRESS_LIST= - (ADDRESS = (PROTOCOL=TCP)(HOST=atlord21.geips.ge.com)(PORT=1521))) - (CONNECT_DATA= (SID=atlord21))) - -atlorp01.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp01.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA = (sid = atlorp01))) - -gibdev.energy.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL=tcp)(HOST=atlord21.geips.ge.com)(PORT=1521)) - (CONNECT_DATA = (SID=atlord21))) - -gpsgpd80.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=gpsgpd80.energy.ge.com)(PORT=1602))) - (CONNECT_DATA=(SID=gpsgpd80))) - -imandevl = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=3.205.204.11)(PORT=1521))) - (CONNECT_DATA=(SID=imandevl))) - -hrmart,hrmart.tsg.ge.com,hrmart.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=sjcsd003.ne.ge.com)(PORT=1521))) - (CONNECT_DATA=(SID=hrmart))) - -erpg1d, erpg1d.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=erg1dsg.appl.ge.com)(PORT=1551))) - (CONNECT_DATA=(SID=erpg1d))) - -erppgzd2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgzd2.tsg.ge.com)(PORT = 1522))) - (CONNECT_DATA = (SERVICE_NAME = erppgzd2))) - -gpswdx82.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpswdx82.energy.ge.com)(PORT = 1568))) - (CONNECT_DATA = (SID = gpswdx82) (SRVR = DEDICATED))) - -atxwcht1, atxwcht1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tesq02184.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = atxwcht1))) - -gpswds82,gpswds82.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=gpswds82.energy.ge.com)(PORT = 1570))) - (CONNECT_DATA = (SID = gpswds82))) - -erppgfr2, erppgfr2.energy.ge.com, erppgfr2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL=tcp)(HOST=erppgfr2.tsg.ge.com)(PORT = 1575))) - (CONNECT_DATA = (SID = erppgfr2))) - -gpsos252.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = evapsd001.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = gpsos252))) - -GPSOD252, gpsod252.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsod252.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = gpsod252))) - -GPSSBQ08, gpssbq08.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpssbq08.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = gpssbq08))) - -gpssbd08.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = evapsd001.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = gpssbd08))) - -apg_poc, apg_poc.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = evnlabl3.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = evnlabl3))) - -gpsot252,gpsot252.corporate.ge.com,gpsot252.energyg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsot252.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = gpsot252))) - -atxwchp1, atxwchp1.tsg.ge.com, atxwchp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxwchp1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID =atxwchp1))) - -etpschd3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschd3.tsg.ge.com)(PORT = 1524))) - (CONNECT_DATA =(sid=etpschd3))) - -usnerpx1, usnerpx1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgsd00176.ae.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = usnerpx1))) - -atxwchd1, atxwchd1.tsg.ge.com, atxwchd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxwchd1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID = atxwchd1))) - -atxwchq1, atxwchq1.tsg.ge.com, atxwchq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxwchq1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID = atxwchq1))) - -intranet_prodn, intranet_prodn.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = bng1eacoedb.itc.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = intranet))) - -ecvinfd1,ecvinfd1.ae.ge.com, ecvinfd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvinfd1.ae.ge.com)(PORT = 1550))) - (CONNECT_DATA = (SID = ecvinfd1))) - -ntxprmq1, ntxprmq1.tsg.ge.com, ntxprmq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxprmq1.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA = (SID = ntxprmq1))) - -ntxprmd1, ntxprmd1.energy.ge.com, ntxprmd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ncwlmdb02.wilm.ge.com)(PORT = 1529))) - (CONNECT_DATA=(SID=ntxprmd1))) - -etpschq3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschq3.tsg.ge.com)(PORT = 1523))) - (CONNECT_DATA =(sid=etpschq3))) - -etpschp3,etpschp3.energy.ge.com,etpschp3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschp3.tsg.ge.com)(PORT = 1528))) - (CONNECT_DATA = (SID = etpschp3))) - -etpcgpd1, etpcgpd1.tsg.ge.com, etpcgpd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcgpd1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpcgpd1))) - -bngaetc1, bngaetct.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = imanblrprod.fso.erie.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = bngaetc1))) - -erppgzs2, erppgzs2.tsg.ge.com, erppgzs2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = erppgzs2.tsg.ge.com) (PORT = 1548))) - (CONNECT_DATA = (SERVICE_NAME = erppgzs2))) - - -atxtmcs1, atxtmcs1.tsg.ge.com, atxtmcs1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcs1.tsg.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = atxtmcs1))) - -etpplmd1,etpplmd1.tsg.ge.com,etpplmd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpplmd1.energy.ge.com)(PORT = 1541))) - (CONNECT_DATA = (SID = etpplmd1))) - -ntxoltq1,ntxoltq1.tsg.ge.com,ntxoltq1.energy.ge.com,ntxoltq1.wilm.ge.com,ntxoltq1.gnf.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = ntxoltq1.tsg.ge.com) (PORT = 1527))) - (CONNECT_DATA = (SID = ntxoltq1))) - -tpdmjen,tpdmjen.energy.ge.com,tpdmjenp1,tpdmjenp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.69.240.114)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = TPDMJEN.jenbacher))) - -edwemdp2,edwemdp2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS = (PROTOCOL = TCP)(HOST = edwemdp2.energy.ge.com)(PORT = 1522))) - (CONNECT_DATA =(SID = edwemdp2))) - -edwemdp1, edwemdp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = edwemdp1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = edwemdp1))) - -atpucmd1, atpucmd1.tsg.ge.com, atpucmd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (HOST = atpucmd1.tsg.ge.com) (PORT = 1542))) - (CONNECT_DATA = (SERVICE_NAME = atpucmd1))) - -erpshst1,erpshst1.tsg.ge.com,erpshst1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS =(PROTOCOL=tcp)(HOST=erpshst1.tsg.ge.com)(PORT=1524))) - (CONNECT_DATA=(SID=erpshst1))) - -evnoltp9_sox = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOTCOL=TCP)(HOST=bseadm01.ae.ge.com)(PORT=1525))) - (CONNECT_DATA=(SID=evnoltp9))) - -evnjdep1_sox = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOTCOL=TCP)(HOST=bseadm01.ae.ge.com)(PORT=1528))) - (CONNECT_DATA=(SID=evnjdep1))) - -atpmonq1, atpmonq1.tsg.ge.com, atpmonq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=atpmonq1.tsg.ge.com)(PORT=1530))) - (CONNECT_DATA=(SERVICE_NAME=atpmonq1))) - -erppgjg1, erppgjg1.energy.ge.com,erppgjg1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=erppgjg1.energy.ge.com)(PORT=1535))) - (CONNECT_DATA=(SID=erppgjg1))) - -ctsqa.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=sjcsd004.ne.ge.com)(PORT=1529))) - (CONNECT_DATA=(SID=ctsqa))) - -etpschq6,etpschq6.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpschq6.energy.ge.com)(PORT=1530))) - (CONNECT_DATA=(SID=etpschq6))) - -etpschq7,etpschq7.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpschq7.energy.ge.com)(PORT=1528))) - (CONNECT_DATA=(SID=etpschq7))) - -erppgra1,erppgra1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=erppgra1.energy.ge.com)(PORT=1581))) - (CONNECT_DATA=(SID=erppgra1))) - -etpemdd2,etpemdd2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpemdd2.energy.ge.com)(PORT=1521))) - (CONNECT_DATA=(SID=etpemdd2))) - -etpemdd3,etpemdd3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpemdd3.energy.ge.com)(PORT=1522))) - (CONNECT_DATA=(SID=etpemdd3))) - -etpsblt2,etpsblt2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpsblt2.tsg.ge.com)(PORT=1521))) - (CONNECT_DATA=(SID=etpsblt2))) - -schon141, schon141.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=schdba141.sch.ge.com)(PORT=1526))) - (CONNECT_DATA=(SID=schon141))) - -eueoltpa,eueoltpa.energy.ge.com,eueoltpa.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=eueoltpa.tsg.ge.com)(PORT=1532))) - (CONNECT_DATA=(SID=eueoltpa))) - -eueoltqa,eueoltqa.energy.ge.com,eueoltqa.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=eueoltqa.tsg.ge.com)(PORT=1530))) - (CONNECT_DATA=(SID=eueoltqa))) - -atpmonp1,atpmonp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=atpmonp1.tsg.ge.com)(PORT=1530))) - (CONNECT_DATA=(SID=atpmonp1))) - -euerdwd2,euerdwd2.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=euerdwd2.tsg.ge.com)(PORT=1528))) - (CONNECT_DATA=(SID=euerdwd2))) - -etpinfp1,etpinfp1.tsg.ge.com,etpinfp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpinfp1.tsg.ge.com)(PORT=1533))) - (CONNECT_DATA=(SID=etpinfp1))) - -etpeaiq2,etpeaiq2.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpeaiq2.tsg.ge.com)(PORT=1530))) - (CONNECT_DATA=(SID=etpeaiq2))) - -etpsanq1,etpsanq1.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=TCP)(HOST=etpsanq1.tsg.ge.com)(PORT=1521))) - (CONNECT_DATA=(SID=etpsanq1))) - -#Entry added by OEM on 20091003 -atpucmq1, atpucmq1.ae.ge.com, atpucmq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpucmq1.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = atpucmq1))) - -#Entry added by OEM on 20091003 -atpcord1, atpcord1.ae.ge.com, atpcord1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpcord1.tsg.ge.com)(PORT = 1537))) - (CONNECT_DATA =(sid = atpcord1))) - -etpeaiq1,etpeaiq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpeaiq1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = etpeaiq1))) - -EPROM.GNF.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ncwlmdb04.wilm.ge.com)(PORT = 1523))) - (CONNECT_DATA = - (SERVICE_NAME = EPROM.gnf.com) - ) - ) - -EPROMDEV.GNF.COM = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ncwlmdb03.wilm.ge.com)(PORT = 1522))) - (CONNECT_DATA = - (SERVER = DEDICATED) - (SERVICE_NAME = EPROM.gnf.com) - ) - ) - -ge_prod_atlorp73,ge_prod_atlorp73.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp73.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = atlorp73))) - -etpmonp1,etpmonp1.ae.ge.com,etpmonp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpmonp1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = etpmonp1))) - -erppgzp2,erppgzp2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgzp2.tsg.ge.com)(PORT = 1523))) - (CONNECT_DATA =(sid = erppgzp2))) - -erppgrc1,erppgrc1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = tcp)(HOST = erppgrc1.energy.ge.com)(PORT = 1562))) - (CONNECT_DATA = (SID = erppgrc1))) - - -#Entry added by OEM on 20091007 -ivvicoe2.energy.ge.com, ivvicoe2.tsg.ge.com, ivvicoe2.wilm.ge.com, ivvicoe2.ne.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ivvicoe2.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = ivvicoe2))) - -#Entry added by OEM on 20091007 -ivvicoe1, ivvicoe1.ae.ge.com, ivvicoe1.tsg.ge.com, ivvicoe1.wilm.ge.com, ivvicoe1.ne.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ivvicoe1.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = ivvicoe1))) - -#Entry added by OEM on 20091007 -ivvicoe4,ivvicoe4.energy.ge.com, ivvicoe4.tsg.ge.com, ivvicoe4.wilm.ge.com, ivvicoe4.ne.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ivvicoe4.tsg.ge.com)(PORT = 1539))) - (CONNECT_DATA =(sid = ivvicoe4))) - -#Entry added by OEM on 20091007 -ivvicoe3,ivvicoe3.energy.ge.com, ivvicoe3.tsg.ge.com, ivvicoe3.wilm.ge.com, ivvicoe3.ne.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ivvicoe3.tsg.ge.com)(PORT = 1537))) - (CONNECT_DATA =(sid = ivvicoe3))) - -evnodsp5_test= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = bseadm01.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = evnodsp5))) - -#Entry added by OEM on 20091009 -atxifsq1, atxifsq1.ae.ge.com, atxifsq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxifsq1.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = atxifsq1))) - -#Entry added by OEM on 20091012 -atpucmp1, atpucmp1.ae.ge.com, atpucmp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpucmp1.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = atpucmp1))) - -#Entry added by OEM on 20091013 -erppgrd1, erppgrd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgrd1.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = erppgrd1))) - -#Entry added by OEM on 20091019 -etpjenp2,etpjenp2.energy.ge.com, etpjenp2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpjenp2.atjenn01.ps.ge.com)(PORT = 1533))) - (CONNECT_DATA =(sid = etpjenp2))) - -#Entry added by OEM on 20091019 -etpcamq2,etpcamq2.energy.ge.com, etpcamq2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcamq2.tsg.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = etpcamq2))) - -#Entry added by OEM on 20091020 -# host changed 2/17/11 wo 899551 -ttprmdd1,ttprmdd1.trans.ge.com, ttprmdd1.tsg.ge.com, ttprmdd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ciohmcoradev1.corporate.ge.com)(PORT = 1539))) - (CONNECT_DATA =(sid = ttprmdd1))) - -#Entry added by OEM on 20091020 -euerdwq2,euerdwq2.energy.ge.com, euerdwq2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwq2.tsg.ge.com)(PORT = 1539))) - (CONNECT_DATA =(sid = euerdwq2))) - -#Entry added by OEM on 20091020 -# changed 6/14/11 994239 jaf -gpshpc76,gpshpc76.energy.ge.com, gpshpc76.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpshpc76.tsg.ge.com)(PORT = 1552))) - (CONNECT_DATA =(sid = gpshpc76))) - -#Entry added by OEM on 20091020 -gpshpc82,gpshpc82.energy.ge.com, gpshpc82.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpshpc82.energy.ge.com)(PORT = 1591))) - (CONNECT_DATA =(sid = gpshpc82))) - -psamer,psamer.energy.ge.com,psamer.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etptrdd1.energy.ge.com)(PORT = 1544))) - (CONNECT_DATA =(sid = etptrdd1))) - -etptrdd1,etptrdd1.energy.ge.com,etptrdd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etptrdd1.energy.ge.com)(PORT = 1544))) - (CONNECT_DATA =(sid = etptrdd1))) - -pac,pac.energy.ge.com,pac.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = alppsca003.energy.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = atlorp37))) - -#Entry added by OEM on 20091023 -GPSOS139,GPSOS139.corporate.ge.com, GPSOS139.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora139.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = GPSOS139))) - -#Entry added by OEM on 20091023 -gpsdwp76,gpsdwp76.energy.ge.com, gpsdwp76.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsorw76.energy.ge.com)(PORT = 1527))) - (CONNECT_DATA =(sid = gpsesp76))) - -#Entry added by OEM on 20091028 -WLMNEXT1,WLMNEXT1.ne.ge.com, WLMNEXT1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = wlmdsd001.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = WLMNEXT1))) - -#Entry added by OEM on 20091030 -atlord37,atlord37.energy.ge.com, atlord37.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = atlord37))) - -#Entry added by OEM on 20091030 -atlorq37,atlorq37.energy.ge.com, atlorq37.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = atlorq37))) - -#Entry added by OEM on 20091030 -ATLORP37,ATLORP37.energy.ge.com, ATLORP37.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp37.geips.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = ATLORP37))) - - -#Entry added by OEM on 20091104 -ntxivid2.energy.ge.com, ntxivid2.wilm.ge.com, ntxivid2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxivid2.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = ntxivid2))) - -infaprd96,infaprd96.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba96.corporate.ge.com)(PORT = 1528))) - (CONNECT_DATA = (SID = INFAPRD))) - -PMPRD,pmprd58,pmprd58.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba58.corporate.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID = PMPRD))) - -dwprd,dwprd.energy.ge.com,dwprd59,dwprd59.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba59.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = DWPRD))) - -dwtst58,dwtst58.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba58.corporate.ge.com)(PORT = 1522))) - (CONNECT_DATA = (SID = DWTST))) - - - -#Entry added by OEM on 20091105 -ecvapwd1,ecvapwd1.tsg.ge.com,ecvapwd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvapwd1.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = ecvapwd1))) - -#Entry added by OEM on 20091105 -adxodsq5,adxodsq5.tsg.ge.com,adxodsq5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adxodsq5.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = adxodsq5))) - -#Entry added by OEM on 20091105 -ecvapwq1, ecvapwq1.ae.ge.com, ecvapwq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvapwq1.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = ecvapwq1))) - -#Entry added by OEM on 20091105 -ntxivid1,ntxivid1.energy.ge.com, ntxivid1.wilm.ge.com, ntxivid1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.66.248.46)(PORT = 1532))) - (CONNECT_DATA =(sid = ntxivid1))) - -#Entry added by OEM on 20091105 -ntxivid3, ntxivid3.energy.ge.com, ntxivid3.wilm.ge.com, ntxivid3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.66.248.52)(PORT = 1539))) - (CONNECT_DATA =(sid = ntxivid3))) - -#Entry added by OEM on 20091105 -DWFDM, DWFDM.energy.ge.com, DWFDM.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba96.corporate.ge.com)(PORT = 1523))) - (CONNECT_DATA =(sid = DWFDM))) - -atxtmcp1, atxtmcp1.ae.ge.com, atxtmcp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcp1.tsg.ge.com)(PORT = 1559))) - (CONNECT_DATA =(sid = atxtmcp1))) - -etpeaid1, etpeaid1.ae.ge.com, etpeaid1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpeaid1.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA =(sid = etpeaid1))) - -#Entry added by OEM on 20091106 -ntxiviq1, ntxiviq1.energy.ge.com, ntxiviq1.ne.ge.com, ntxiviq1.wilm.ge.com, ntxiviq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxiviq1.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = ntxiviq1))) - -#Entry added by OEM on 20091106 -ntxiviq3, ntxiviq3.energy.ge.com, ntxiviq3.ne.ge.com, ntxiviq3.wilm.ge.com, ntxiviq3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxiviq3.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = ntxiviq3))) - -#Entry added by OEM on 20091106 -ntxiviq2, ntxiviq2.energy.ge.com, ntxiviq2.ne.ge.com, ntxiviq2.wilm.ge.com, ntxiviq2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxiviq2.tsg.ge.com)(PORT = 1539))) - (CONNECT_DATA =(sid = ntxiviq2))) - -#Entry added by OEM on 20091108 -ntxiviq4, ntxiviq4.energy.ge.com, ntxiviq4.ne.ge.com, ntxiviq4.wilm.ge.com, ntxiviq4.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxiviq4.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = ntxiviq4))) - -#Entry added by OEM on 20091109 -ETPHOUD1, ETPHOUD1.energy.ge.com, ETPHOUD1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPHOUD1.energy.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = ETPHOUD1))) - -#Entry added by OEM on 20091109 -etphouq1, etphouq1.energy.ge.com, etphouq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etphouq1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etphouq1))) - -#Entry added by OEM on 20091109 -etphoup1, etphoup1.energy.ge.com, etphoup1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etphoup1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etphoup1))) - -#Entry added by OEM on 20091109 -etpsblp3, etpsblp3.energy.ge.com, etpsblp3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsblp3.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpsblp3))) - -psamer.ps.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etptrdd1.energy.ge.com)(PORT = 1544))) - (CONNECT_DATA =(sid = etptrdd1))) - -#Entry added by OEM on 20091110 -tsglabl1,tsglabl1.tsg.ge.com, tsglabl1.energy.ge.com, tsglabl1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsglabl1.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = tsglabl1))) - -#Entry added by OEM on 20091110 -ecvapwp1,ecvapwp1.tsg.ge.com, ecvapwp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvapwp1.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = ecvapwp1))) - -#Entry added by OEM on 20091112 -adxodsp5,adxodsp5.tsg.ge.com, adxodsp5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adxodsp5.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = adxodsp5))) - -#Entry added by OEM on 20091113 -etps11q1,etps11q1.ae.ge.com, etps11q1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps11q1.tsg.ge.com)(PORT = 1570))) - (CONNECT_DATA =(sid = etps11q1))) - -#Entry added by OEM on 20091116 -PMPRD_58, PMPRD_58.corporate.ge.com, PMPRD_58.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba58.corporate.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = PMPRD_58))) - -ecvipwp1,ecvipwp1.tsg.ge.com,ecvipwp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvipwp1.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = ecvipwp1))) - -atxoltp5,atxoltp5.ae.ge.com,atxoltp5.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltp5.tsg.ge.com)(PORT = 1527))) - (CONNECT_DATA =(sid = atxoltp5))) - -ecvcogp1,ecvcogp1.tsg.ge.com,ecvcogp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvcogp1.tsg.ge.com)(PORT = 1528))) - (CONNECT_DATA =(sid = ecvcogp1))) - -ecvinfp1,ecvinfp1.tsg.ge.com,ecvinfp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvinfp1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = ecvinfp1))) - -ecvrmnp1,ecvrmnp1.ae.ge.com,ecvrmnp1.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvrmnp1.tsg.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = ecvrmnp1))) - -ecvrmnp2,ecvrmnp2.tsg.ge.com,ecvrmnp2.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvrmnp2.tsg.ge.com)(PORT = 1533))) - (CONNECT_DATA =(sid = ecvrmnp2))) - -ecvoemp1,ecvoemp1.tsg.ge.com,ecvoemp1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvoemp1.tsg.ge.com)(PORT = 1534))) - (CONNECT_DATA =(sid = ecvoemp1))) - -#Entry added by OEM on 20091116 -atlorp59, atlorp59.energy.ge.com, atlorp59.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp59.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = atlorp59))) - -#Entry added by OEM on 20091116 -ATLORT17, ATLORT17.energy.ge.com, ATLORT17.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlort17.GEIPS.GE.COM)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORT17))) - -#Entry added by OEM on 20091117 -euerdwp2, euerdwp2.energy.ge.com, euerdwp2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwp2.tsg.ge.com)(PORT = 1528))) - (CONNECT_DATA =(sid = euerdwp2))) - -ecvcogd1,ecvcogd1.tsg.ge.com,ecvcogd1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvcogd1.tsg.ge.com)(PORT = 1550))) - (CONNECT_DATA =(sid = ecvcogd1))) - -ecvinfq1,ecvinfq1.tsg.ge.com,ecvinfq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvinfq1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = ecvinfq1))) - -atxoltq5,atxoltq5.ae.ge.com,atxoltq5.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltq5.tsg.ge.com)(PORT = 1535))) - (CONNECT_DATA =(sid = atxoltq5))) - -atxoltd5,atxoltd5.ae.ge.com,atxoltd5.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxoltd5.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = atxoltd5))) - -ecvcogq1,ecvcogq1.tsg.ge.com,ecvcogq1.ae.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvcogq1.tsg.ge.com)(PORT = 1540))) - (CONNECT_DATA =(sid = ecvcogq1))) - -#Entry added by OEM on 20091118 -wcprodb1, wcprodb1.ae.ge.com, wcprodb1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxwchp1.tsg.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = wcprodb1))) - -#Entry added by OEM on 20091118 -adxodsd5.tsg.ge.com, adxodsd5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adxodsd5.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = adxodsd5))) - -#Entry added by OEM on 20091119 # port changed 9/06/2010 jaf -erppgjl1, erppgjl1.energy.ge.com, erppgjl1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgjl1.energy.ge.com)(PORT = 1560))) - (CONNECT_DATA =(sid = erppgjl1))) - -#Entry added by OEM on 20091120 -TW05, TW05.energy.ge.com, TW05.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba05.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = schotw05))) - -#Entry added by OEM on 20091120 -erppgjf1, erppgjf1.energy.ge.com, erppgjf1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgjf1.energy.ge.com)(PORT = 1534))) - (CONNECT_DATA =(sid = erppgjf1))) - -#Entry added by OEM on 20091203 -etps11d1, etps11d1.energy.ge.com, etps11d1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps11d1.tsg.ge.com)(PORT = 1571))) - (CONNECT_DATA =(sid = etps11d1))) - -#Entry added by OEM on 20091203 -etps11s1, etps11s1.energy.ge.com, etps11s1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps11s1.tsg.ge.com)(PORT = 1571))) - (CONNECT_DATA =(sid = etps11s1))) - -#Entry added by OEM on 20091203 -erppgjr1, erppgjr1.energy.ge.com, erppgjr1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgjr1.tsg.ge.com)(PORT = 1588))) - (CONNECT_DATA =(sid = erppgjr1))) - -ts_prod.psamer,TS_PROD.PSAMER.PS.GE.COM= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST =etptrdp1.corporate.ge.com)(PORT = 1571))) - (CONNECT_DATA =(sid = etptrdp1))) - -#Entry added by OEM on 20091207 -awxrdwq5.tsg.ge.com, awxrdwq5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = awxrdwq5.tsg.ge.com)(PORT = 1535))) - (CONNECT_DATA =(sid = awxrdwq5))) - -#Entry added by OEM on 20091209 -awxrdwd5.tsg.ge.com, awxrdwd5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = awxrdwd5.tsg.ge.com)(PORT = 1546))) - (CONNECT_DATA =(sid = awxrdwd5))) - -#Entry added by OEM on 20091209 -awxrdwp5, awxrdwp5.ae.ge.com, awxrdwp5.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = awxrdwp5.tsg.ge.com)(PORT = 1540))) - (CONNECT_DATA =(sid = awxrdwp5))) - -#Entry added by OEM on 20091210 -awxrdwn5, awxrdwn5.tsg.ge.com, awxrdwn5.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = awxrdwn5.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = awxrdwn5))) - -wlmnexp1,wlmnexp1.wilm.ge.com,wlmnexp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = WLMNEXP1.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = wlmnexp1))) - -#Entry added by OEM on 20091211 -GPSOR139, GPSOR139.corporate.ge.com, GPSOR139.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora139.corporate.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = GPSOR139))) - -#Entry added by OEM on 20091211 -GPSOE139, GPSOE139.corporate.ge.com, GPSOE139.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora139.corporate.ge.com)(PORT = 1523))) - (CONNECT_DATA =(sid = GPSOE139))) - -#Entry added by OEM on 20091214 -ntxivip1, ntxivip1.tsg.ge.com, ntxivip1.energy.ge.com, ntxivip1.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxivip1.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = ntxivip1))) - -#Entry added by OEM on 20091214 -ntxivip2, ntxivip2.tsg.ge.com, ntxivip2.energy.ge.com, ntxivip2.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxivip2.tsg.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = ntxivip2))) - -#Entry added by OEM on 20091214 -ntxivip3, ntxivip3.tsg.ge.com, ntxivip3.energy.ge.com, ntxivip3.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxivip3.tsg.ge.com)(PORT = 1537))) - (CONNECT_DATA =(sid = ntxivip3))) - -#Entry added by OEM on 20091214 -ntxivip4, ntxivip4.tsg.ge.com, ntxivip4.energy.ge.com, ntxivip4.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxivip4.tsg.ge.com)(PORT = 1539))) - (CONNECT_DATA =(sid = ntxivip4))) - -#Entry added by OEM on 20091215 -GPSPRD,GPSPRD59, GPSPRD59.energy.ge.com, GPSPRD59.corporate.ge.com, GPSPRD59.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = GPSDBA59.CORPORATE.GE.COM)(PORT = 1525))) - (CONNECT_DATA =(sid = GPSPRD))) - -#Entry added by OEM on 20091217 -adxodsn5, adxodsn5.tsg.ge.com, adxodsn5.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = adxodsn5.tsg.ge.com)(PORT = 1547))) - (CONNECT_DATA =(sid = adxodsn5))) - -#Entry added by OEM on 20100111 -atxtmcq1,atxtmcq1.ae.ge.com, atxtmcq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcq1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = atxtmcq1))) - -#Entry added by OEM on 20100111 -ETPS04P1, ETPS04P1.tsg.ge.com, ETPS04P1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPS04P1.ENERGY.GE.COM)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPS04P1))) - -#Entry added by OEM on 20100112 -gpsora65, gpsora65.corporate.ge.com, gpsora65.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora65.corporate.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = gpsorm65))) - -etpptep1,etpptep1.tsg.ge.com,etpptep1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpptep1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpptep1))) - -#Entry added by OEM on 20100114 -etpsamq1, etpsamq1.tsg.ge.com, etpsamq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsamq1.tsg.ge.com)(PORT = 1571))) - (CONNECT_DATA =(sid = etpsamq1))) - -#Entry added by OEM on 201001 -# host changed 2/17/11 wo 899574 -ttprmdq1, ttprmdq1.trans.ge.com, ttprmdq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = alpmcoraq2.corporate.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = ttprmdq1))) - -#Entry added by OEM on 20100119 -eueoltp8, eueoltp8.tsg.ge.com, eueoltp8.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltp8.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = eueoltp8))) - -#Entry added by OEM on 20100119 -eueoltd8, eueoltd8.tsg.ge.com, eueoltd8.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltd8.tsg.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = eueoltd8))) - -#Entry added by OEM on 20100121 -eueoltq8, eueoltq8.tsg.ge.com, eueoltq8.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueoltq8.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = eueoltq8))) - -#Entry added by OEM on 20100121 -etpeaip3, etpeaip3.tsg.ge.com, etpeaip3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpeaip3.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpeaip3))) - -#Entry added by OEM on 20100121 -etpeaip4, etpeaip4.tsg.ge.com, etpeaip4.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpeaip4.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpeaip4))) - -gpsors77,gpsors77.tsg.ge.com, gpsors77.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsors77.tsg.ge.com)(PORT = 1537))) - (CONNECT_DATA =(sid = gpsors77))) - -#Entry added by OEM on 20100122 -etxplmq1, etxplmq1.tsg.ge.com, etxplmq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etxplmq1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = etxplmq1))) - -#Entry added by OEM on 20100122 -edxplmq1, edxplmq1.tsg.ge.com, edxplmq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = edxplmq1.tsg.ge.com)(PORT = 1535))) - (CONNECT_DATA =(sid = edxplmq1))) - -#Entry added by OEM on 20100125 -gpscss76, gpscss76.tsg.ge.com, gpscss76.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpscss76.energy.ge.com)(PORT = 1580))) - (CONNECT_DATA =(sid = gpscss76))) - -#Entry added by OEM on 20100125 -eueodsp8, eueodsp8.eueodsp8.tsg.ge.com, eueodsp8.eueodsp8.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsp8.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = eueodsp8))) - -#Entry added by OEM on 20100126 -etptmcp9, etptmcp9.tsg.ge.com, etptmcp9.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etptmcp9.tsg.ge.com)(PORT = 1599))) - (CONNECT_DATA =(sid = etptmcp9))) - -#Entry added by OEM on 20100126 -eueodsd8, eueodsd8.eueodsd8.energy.ge.com, eueodsd8.eueodsd8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsd8.tsg.ge.com)(PORT = 1541))) - (CONNECT_DATA =(sid = eueodsd8))) - -#Entry added by OEM on 20100126 -eueodsq8, eueodsq8.eueodsq8.energy.ge.com, eueodsq8.eueodsq8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueodsq8.tsg.ge.com)(PORT = 1540))) - (CONNECT_DATA =(sid = eueodsq8))) - -#Entry added by OEM on 20100127 -ecveaip1.tsg.ge.com, ecveaip1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecveaip1.tsg.ge.com)(PORT = 1544))) - (CONNECT_DATA =(sid = ecveaip1))) - -#Entry added by OEM on 20100127 -ecveaiq1.tsg.ge.com, ecveaiq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecveaiq1.tsg.ge.com)(PORT = 1541))) - (CONNECT_DATA =(sid = ecveaiq1))) - -#Entry added by OEM on 20100127 -ecveaip2.tsg.ge.com, ecveaip2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecveaip2.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = ecveaip2))) - -#Entry added by OEM on 20100127 -ecveaid1.tsg.ge.com, ecveaid1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecveaid1.tsg.ge.com)(PORT = 1547))) - (CONNECT_DATA =(sid = ecveaid1))) - -#Entry added by OEM on 20100204 -gpsasd10, gpsasd10.gpsasd10.tsg.ge.com, gpsasd10.gpsasd10.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsasd10.energy.ge.com)(PORT = 1544))) - (CONNECT_DATA =(sid = gpsasd10))) - -#Entry added by OEM on 20100205 -pacclarify,etpeclp1, etpeclp1.tsg.ge.com, etpeclp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpeclp1.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = etpeclp1))) - -#Entry added by OEM on 20100210 -edxplmp1, edxplmp1.tsg.ge.com, edxplmp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = edxplmp1.tsg.ge.com)(PORT = 1556))) - (CONNECT_DATA =(sid = edxplmp1))) - -#Entry added by OEM on 20100210 -# altered 12/2/2010 jaf new hostname, port -arpsysd1, arpsysd1.energy.ge.com, arpsysd1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = arpsysd1.tsg.ge.com)(PORT = 1535))) - (CONNECT_DATA =(sid = arpsysd1))) - -#Entry added by OEM on 20100215 -qms1p, qms1p.trans.ge.com, qms1p.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = su8ppkg.appl.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = qms1p))) - -#Entry added by OEM on 20100216 -etxplmp1, etxplmp1.tsg.ge.com, etxplmp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etxplmp1.tsg.ge.com)(PORT = 1555))) - (CONNECT_DATA =(sid = etxplmp1))) - -#Entry added by OEM on 20100219 -euerdwq8, euerdwq8.energy.ge.com, euerdwq8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwq8.tsg.ge.com)(PORT = 1541))) - (CONNECT_DATA =(sid = euerdwq8))) - -#Entry added by OEM on 20100219 -euerdwp8, euerdwp8.energy.ge.com, euerdwp8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwp8.tsg.ge.com)(PORT = 1589))) - (CONNECT_DATA =(sid = euerdwp8))) - -gpssbp08, gpssbp08.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpssbp08.corporate.ge.com)(PORT = 1526))) - (CONNECT_DATA = (SERVICE_NAME = GPSSBP08))) - - -gpsop252, gpsop252.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsop252.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = gpsop252))) - - -etpsblq1, etpsblq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsblq1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpsblq1))) - - -#Entry added by OEM on 20100305 -etpsand1, etpsand1.tsg.ge.com, etpsand1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsand1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpsand1))) - -#Entry added by OEM on 20100305 -etpsanp1, etpsanp1.tsg.ge.com, etpsanp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsanp1.tsg.ge.com)(PORT = 1539))) - (CONNECT_DATA =(sid = etpsanp1))) - -#Entry added by OEM on 20100305 -schods05, schods05.corporate.ge.com, schods05.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba05.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = schods05))) - -#Entry added by OEM on 20100305 -ntxprmp1, ntxprmp1.tsg.ge.com, ntxprmp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxprmp1.tsg.ge.com)(PORT = 1535))) - (CONNECT_DATA =(sid = ntxprmp1))) - -#Entry added by OEM on 20100305 -etpilsp1, etpilsp1.energy.ge.com, etpilsp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpilsp1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPILSP1))) - -#Entry added by OEM on 20100311 -etpcgpq1, etpcgpq1.tsg.ge.com, etpcgpq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcgpq1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpcgpq1))) - -#Entry added by OEM on 20100312 -etpbgrp1, etpbgrp1.tsg.ge.com, etpbgrp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPBGRP1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPBGRP1))) - -#Entry added by OEM on 20100315 -gpsasp10, gpsasp10.corporate.ge.com, gpsasp10.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsgensascp.corporate.ge.com)(PORT = 12601))) - (CONNECT_DATA =(sid = GPSASP10))) - -#Entry added by OEM on 20100315 -gpsass10, gpsass10.energy.ge.com, gpsass10.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsass10.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = gpsass10))) - -#Entry added by OEM on 20100315 -schorn70, schorn70.energy.ge.com, schorn70.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba70.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = schorn70))) - -#Entry added by OEM on 20100319 -ttprmdp1, ttprmdp1.corporate.ge.com, ttprmdp1.trans.ge.com, ttprmdp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ttprmdp1.tsg.ge.com)(PORT = 1562))) - (CONNECT_DATA =(sid = ttprmdp1))) - - -gpsogq99,gpsogq99.tsg.ge.com,gpsogq99.Energy.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = rs15edp.np.ge.com)(PORT = 1536))) - (CONNECT_DATA =(sid = GPSOGQ99))) - -tsdwhsd3,tsdwhsd3.trans.ge.com,tsdwhsd3.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erioradev1.erie.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = TSDWHSD3))) - -#Entry added by OEM on 20100408 -wlmnexq1, wlmnexq1.tsg.ge.com, wlmnexq1.energy.ge.com, wlmnexq1.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = wlmnexq1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = wlmnexq1))) - -#Entry added by OEM on 20100408 -gpsscn10, gpsscn10.energy.ge.com, gpsscn10.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsscn10.tsg.ge.com)(PORT = 1610))) - (CONNECT_DATA =(sid = gpsscn10))) - -etps11p1,etps11p1.energy.ge.com,etps11p1.tsg.ge.com= - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps11p1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etps11p1))) - -berp,berp.ae.ge.com,berp.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = phoenix.av.ae.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = BERP))) - - -#Entry added by OEM on 20100414 -SPILMD3D, SPILMD3D.energy.ge.com, SPILMD3D.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TEWD03448.gene.psec.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = SPILMD3D))) - -#Entry added by OEM on 20100414 -SPILMD2D, SPILMD2D.energy.ge.com, SPILMD2D.tsg.ge.com, SPID_DEV, SPI_DEV, SPF_DEV = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TEWD03448.gene.psec.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = SPILMD2D))) - -etxorbq1, etxorbq1.tsg.ge.com, etxorbq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etxorbq1.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA =(sid = etxorbq1))) - -etxorbs1, etxorbs1.tsg.ge.com, etxorbs1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etxorbs1.tsg.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = etxorbs1))) - -#Entry added by OEM on 20100415 -derp, derp.ae.ge.com, derp.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.11.242.10)(PORT = 1521))) - (CONNECT_DATA =(sid = derp))) - -#Entry added by OEM on 20100415 -xtpbatp1, xtpbatp1.ae.ge.com, xtpbatp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = bsg01x.ae.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = atpbatp1))) - -#Entry added by OEM on 20100415 -xrntmcp1, xrntmcp1.ae.ge.com, xrntmcp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = bsg01x.ae.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = grncmtp1))) - -#Entry added by OEM on 20100415 -xrnoltp1, xrnoltp1.ae.ge.com, xrnoltp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = bsg01x.ae.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = grnoltp1))) - -#Entry added by OEM on 20100419 -cometprd, cometprd.energy.ge.com, cometprd.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd003.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = cometprd))) - -#Entry added by OEM on 20100421 -erppgjk1, erppgjk1.energy.ge.com, erppgjk1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgjk1.energy.ge.com)(PORT = 1527))) - (CONNECT_DATA =(sid = erppgjk1))) - -#Entry added by OEM on 20100422 -atpidap1.energy.ge.com, atpidap1.ae.ge.com, atpidap1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpidap1.tsg.ge.com)(PORT = 1582))) - (CONNECT_DATA =(sid = atpidap1))) - -#Entry added by OEM on 20100422 -etpemdq4, etpemdq4.tsg.ge.com, .etpemdq4.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpemdq4.tsg.ge.com)(PORT = 1595))) - (CONNECT_DATA =(sid = etpemdq4))) - -#Entry added by OEM on 20100422 -etpemdq6, etpemdq6.tsg.ge.com, etpemdq6.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpemdq6.tsg.ge.com)(PORT = 1577))) - (CONNECT_DATA =(sid = etpemdq6))) - -mlhop125, mlhop125.tsg.ge.com, mlhop125.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = mlhop125.fr-epe.geps.ge.com )(PORT = 1521))) - (CONNECT_DATA =(sid = mlhop125))) - -mlhot126, mlhot126.tsg.ge.com, mlhot126.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = mlhot126.fr-epe.geps.ge.com )(PORT = 1521))) - (CONNECT_DATA =(sid = mlhot126))) - -#Entry added by OEM on 20100422 -GVLORT71, GVLORT71.energy.ge.com, GVLORT71.tsg.ge.com, gvlort71.psamer.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gvldba71.gvl.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = GVLORT71))) - -gpscsx40,gpscsx40.energy.ge.com,gpscsx40.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpscsx40.tsg.ge.com)(PORT = 1600))) - (CONNECT_DATA =(sid = gpscsx40))) - -#Entry added by OEM on 20100506 -TEST11G, TEST11G.ae.ge.com, TEST11G.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = jt02.jt.ae.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = TEST11G))) - -#Entry added by OEM on 20100506 -etpemdq5, etpemdq5.tsg.ge.com, etpemdq5.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpemdq5.tsg.ge.com)(PORT = 1589))) - (CONNECT_DATA =(sid = etpemdq5))) - -#Entry added by OEM on 20100506 -etxplms1, etxplms1.energy.ge.com, etxplms1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etxplms1.tsg.ge.com)(PORT = 1537))) - (CONNECT_DATA =(sid = etxplms1))) - -#Entry added by OEM on 20100506 -edxplms1, edxplms1.energy.ge.com, edxplms1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = edxplms1.tsg.ge.com)(PORT = 1539))) - (CONNECT_DATA =(sid = edxplms1))) - -#Entry added by OEM on 20100506 -gpsst117, gpsst117.energy.ge.com, gpsst117.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsst117.tsg.ge.com)(PORT = 1577))) - (CONNECT_DATA =(sid = gpsst117))) - -#Entry added by OEM on 20100506 -gpsesp82, gpsesp82.energy.ge.com, gpsesp82.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserp03.corporate.ge.com)(PORT = 1585))) - (CONNECT_DATA =(sid = gpsesp82))) - -#Entry added by OEM on 20100506 -gpsesd76, gpsesd76.energy.ge.com, gpsesd76.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsesd76.tsg.ge.com)(PORT = 1555))) - (CONNECT_DATA =(sid = gpsesd76))) - -#Entry added by OEM on 20100506 -gpsesd82, gpsesd82.energy.ge.com, gpsesd82.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsesd82.tsg.ge.com)(PORT = 1556))) - (CONNECT_DATA =(sid = gpsesd82))) - -#Entry added by OEM on 20100506 -gpsess82, gpsess82.energy.ge.com, gpsess82.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsess82.tsg.ge.com)(PORT = 1558))) - (CONNECT_DATA =(sid = gpsess82))) - -#Entry added by OEM on 20100506 -GPSEST76, GPSEST76.energy.ge.com, GPSEST76.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsest76.tsg.ge.com)(PORT = 1552))) - (CONNECT_DATA =(sid = GPSEST76))) - -#Entry added by OEM on 20100506 -GPSCSC76, GPSCSC76.energy.ge.com, GPSCSC76.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpscsc76.energy.ge.com)(PORT = 1579))) - (CONNECT_DATA =(sid = GPSCSC76))) - -#Entry added by OEM on 20100506 -gpssm117, gpssm117.energy.ge.com, gpssm117.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpssm117.energy.ge.com)(PORT = 1578))) - (CONNECT_DATA =(sid = gpssm117))) - -#Entry added by OEM on 20100506 -GPSESQ88, GPSESQ88.energy.ge.com, GPSESQ88.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpserpqc.energy.ge.com)(PORT = 1597))) - (CONNECT_DATA =(sid = GPSESQ88))) - -#Entry added by OEM on 20100507 -bwr, bwr.ne.ge.com, bwr.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd003.ne.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = bwr))) - -#Entry added by OEM on 20100507 -ACE, ACE.ne.ge.com, ACE.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd003.ne.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = ACE))) - -#Entry added by OEM on 20100507 -defort02, defort02.ne.ge.com, defort02.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = defmoa02psge.wind.power)(PORT = 1521))) - (CONNECT_DATA =(service_name = defort02))) - -dwdev,dwdev.energy.ge.com,dwdev58,dwdev58.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba58.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = DWDEV))) - -#Entry added by OEM on 20100510 -etpsamd1, etpsamd1.energy.ge.com, etpsamd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsamd1.tsg.ge.com)(PORT = 1551))) - (CONNECT_DATA =(sid = etpsamd1))) -#Entry added by JHR on 20100511, WO719275 -etpsblp1,etpsblp1.energy.ge.com,etpsblp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = etpsblp1.tsg.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = etpsblp1))) -# -etpsblp2,etpsblp2.energy.ge.com,etpsblp2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = etpsblp2.tsg.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = etpsblp2))) -# -genep,genep.energy.ge.com,genep.tsg.ge.com,genep.ne.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP) (Host = sjcsd003.ne.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = GENEP))) - -#Entry added by OEM on 20100512 -atpidaq1, atpidaq1.ae.ge.com, atpidaq1.tsg.ge.com, atpidaq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpidaq1.tsg.ge.com)(PORT = 1576))) - (CONNECT_DATA =(sid = atpidaq1))) - -#Entry added by OEM on 20100512 -atpidad1, atpidad1.ae.ge.com, atpidad1.tsg.ge.com, atpidad1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpidad1.tsg.ge.com)(PORT = 1588))) - (CONNECT_DATA =(sid = atpidad1))) - -#Entry added by OEM on 20100513 -atxdwbn1.tsg.ge.com, atxdwbn1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxdwbn1.tsg.ge.com)(PORT = 1572))) - (CONNECT_DATA =(sid = atxdwbn1))) - -#Entry added by OEM on 20100514 -pfin, pfin.ae.ge.com, pfin.tsg.ge.com, pfin.agre.smiths.aero = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = beans.agre.smiths.aero)(PORT = 1521))) - (CONNECT_DATA =(sid = pfin))) - -#Entry added by OEM on 20100514 -PCAS, PCAS.ae.ge.com, PCAS.tsg.ge.com, pcas.agre.smiths.aero = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = beans.agre.smiths.aero)(PORT = 1521))) - (CONNECT_DATA =(sid = PCAS))) - -#Entry added by OEM on 20100514 -TFIN, TFIN.ae.ge.com, TFIN.tsg.ge.com9, tfin.agre.smiths.aero = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = beans.agre.smiths.aero)(PORT = 1521))) - (CONNECT_DATA =(sid = TFIN))) - -#Entry added by OEM on 20100520 -etpemdp6, etpemdp6.energy.ge.com, etpemdp6.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpemdp6.tsg.ge.com)(PORT = 1576))) - (CONNECT_DATA =(sid = etpemdp6))) - -#Entry added by OEM on 20100520 -etpemdp5, etpemdp5.energy.ge.com, etpemdp5.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpemdp5.tsg.ge.com)(PORT = 1575))) - (CONNECT_DATA =(sid = etpemdp5))) - -#Entry added by OEM on 20100520 -etpemdp4, etpemdp4.energy.ge.com, etpemdp4.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpemdp4.tsg.ge.com)(PORT = 1574))) - (CONNECT_DATA =(sid = etpemdp4))) - -#Entry added by OEM on 20100520 -atxdwbd1.energy.ge.com, atxdwbd1.tsg.ge.com, atxdwbd1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxdwbd1.tsg.ge.com)(PORT = 1563))) - (CONNECT_DATA =(sid = atxdwbd1))) - -#Entry added by OEM on 20100521 -etpcamr1.energy.ge.com, etpcamr1.tsg.ge.com, etpcamr1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcamr1.tsg.ge.com)(PORT = 1588))) - (CONNECT_DATA =(sid = etpcamr1))) - -#Entry added by OEM on 20100521 -euerdwr1, euerdwr1.tsg.ge.com, euerdwr1.ae.ge.com, euerdwr1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwr1.tsg.ge.com)(PORT = 1592))) - (CONNECT_DATA =(sid = euerdwr1))) - -#Entry added by JHR on 20100523 -pcmis, pcmis.ae.ge.com, pcmis.world = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = wes.av.ae.ge.com)(PORT = 1527))) - (CONNECT_DATA = (SID = pcmis))) - -#Entry added by OEM on 20100526 -aox920p2.tsg.ge.com, aox920p2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = aox920p2.ae.ge.com)(PORT = 1537))) - (CONNECT_DATA =(sid = aox920p2))) - -#Entry added by OEM on 20100603 -ATLORD17, ATLORD17.energy.ge.com, ATLORD17.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORD17.GEIPS.GE.COM)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD17))) - -#Entry added by OEM on 20100603 -etpgvld3, etpgvld3.tsg.ge.com, etpgvld3.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpgvld3.tsg.ge.com)(PORT = 1555))) - (CONNECT_DATA =(sid = etpgvld3))) - -#Entry added by OEM on 20100603 -ATLORP17, ATLORP17.energy.ge.com, ATLORP17.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP17.GEIPS.GE.COM)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP17))) - -#Entry added by OEM on 20100603 -atxdwbq1.energy.ge.com, atxdwbq1.tsg.ge.com, atxdwbq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxdwbq1.tsg.ge.com)(PORT = 1566))) - (CONNECT_DATA =(sid = atxdwbq1))) - -#Entry added by OEM on 20100603 -GEILM3D, GEILM3D.energy.ge.com, GEILM3D.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tewp03452.gene.psec.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = GEILM3D))) - -#Entry added by OEM on 20100604 -GENEPROD, GENEPROD.energy.ge.com, GENEPROD.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd003.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = GENEPROD))) - -#Entry added by OEM on 20100604 -gpsop127, gpsop127.energy.ge.com, gpsop127.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora127.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = gpsop127))) - -#Entry added by OEM on 20100604 -GVLOP127, GVLOP127.energy.ge.com, GVLOP127.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gvldba127.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = GVLOP127))) - -#Entry added by OEM on 20100604 -IASDB, IASDB.energy.ge.com, IASDB.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = IASDB))) - -#Entry added by OEM on 20100604 -KRONOS-DB, KRONOS-DB.energy.ge.com, KRONOS-DB.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = KRONOS-DB))) - -#Entry added by OEM on 20100604 -MRP, MRP.energy.ge.com, MRP.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = MRP))) - -#Entry added by OEM on 20100604 -MRPJ, MRPJ.energy.ge.com, MRPJ.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ncwlmdb04.wilm.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = MRPJ))) - -#Entry added by OEM on 20100604 -PROD9, PROD9.tsg.ge.com, PROD9.energy.ge.com, PROD9.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = PROD9))) - -#Entry added by OEM on 20100604 -GPSOP138, GPSOP138.energy.ge.com, GPSOP138.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora138.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = GPSOP138))) - -#Entry added by OEM on 20100604 -GVLORP33, GVLORP33.energy.ge.com, GVLORP33.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = gvldba33.gvl.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = GVLORP33))) - -#Entry added by OEM on 20100604 -KRONOSA, KRONOSA.energy.ge.com, KRONOSA.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ncwlmdb04.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = KRONOSA))) - -#Entry added by OEM on 20100604 -maximo, maximo.energy.ge.com, maximo.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST =ncwlmdb04.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = maximo))) - -#Entry added by OEM on 20100604 -OID, OID.tsg.ge.com, OID.energy.ge.com, OID.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1523))) - (CONNECT_DATA =(sid = OID))) - -#Entry added by OEM on 20100604 -ORACLMFG, ORACLMFG.tsg.ge.com, ORACLMFG.energy.ge.com, ORACLMFG.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ORACLMFG))) - -#Entry added by OEM on 20100604 -PACS, PACS.tsg.ge.com, PACS.energy.ge.com, PACS.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ncwlmdb04.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = PACS))) - -#Entry added by OEM on 20100604 -PROD92, PROD92.tsg.ge.com, PROD92.energy.ge.com, PROD92.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1523))) - (CONNECT_DATA =(sid = PROD92))) - -#Entry added by OEM on 20100604 -QAMIS, QAMIS.tsg.ge.com, QAMIS.energy.ge.com, QAMIS.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd003.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = QAMIS))) - -#Entry added by OEM on 20100604 -RCASTER, RCASTER.tsg.ge.com, RCASTER.energy.ge.com, RCASTER.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd003.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = RCASTER))) - -#Entry added by OEM on 20100604 -schoo126, schoo126.tsg.ge.com, schoo126.energy.ge.com, schoo126.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba126.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = schoo126))) - -#Entry added by OEM on 20100604 -schop126, schop126.tsg.ge.com, schop126.energy.ge.com, schop126.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba126.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = schop126))) - -#Entry added by OEM on 20100604 -SCHORP32, SCHORP32.tsg.ge.com, SCHORP32.energy.ge.com, SCHORP32.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba32.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = SCHORP32))) - -#Entry added by OEM on 20100604 -sjcorp01, sjcorp01.tsg.ge.com, sjcorp01.energy.ge.com, sjcorp01.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = sjcsd001.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = sjcorp01))) - -#Entry added by OEM on 20100604 -TRACE, TRACE.tsg.ge.com, TRACE.energy.ge.com, TRACE.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = dbs2.wilm.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = TRACE))) - -SPF, SPF.energy.ge.com, SPF.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tewp03452.gene.psec.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = SPF))) - -atlord57,atlord57.tsg.ge.com,atlord57.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlord57.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = atlord57))) - -ATLORU60,ATLORU60.tsg.ge.com,ATLORU60.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = atloru60))) - -#Entry added by OEM on 20100607 -GPSSBD08.energy.ge.com, GPSSBD08.tsg.ge.com, GPSSBD08.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = evapsd001.energy.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = GPSSBD08))) - -#Entry added by OEM on 20100607 -ATLORD11.energy.ge.com, ATLORD11.tsg.ge.com, ATLORD11.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD11))) - -#Entry added by OEM on 20100607 -ATLORD08.energy.ge.com, ATLORD08.tsg.ge.com, ATLORD08.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD08))) - -#Entry added by OEM on 20100607 -ATLORD12.energy.ge.com, ATLORD12.tsg.ge.com, ATLORD12.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD12))) - -#Entry added by OEM on 20100607 -ATLORD18.energy.ge.com, ATLORD18.tsg.ge.com, ATLORD18.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD18))) - -ATLORD16.energy.ge.com, ATLORD16.tsg.ge.com, ATLORD16.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD16))) - -#Entry added by OEM on 20100607 -ATLORD19.energy.ge.com, ATLORD19.tsg.ge.com, ATLORD19.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD19))) - - -#Entry added by OEM on 20100607 -ATLORD22.energy.ge.com, ATLORD22.tsg.ge.com, ATLORD22.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD22))) -#Entry added by OEM on 20100607 -ATLORD27.energy.ge.com, ATLORD27.tsg.ge.com, ATLORD27.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD27))) - -#Entry added by OEM on 20100607 -ATLORD28.energy.ge.com, ATLORD28.tsg.ge.com, ATLORD28.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD28))) - -#Entry added by OEM on 20100607 -ATLORD29.energy.ge.com, ATLORD29.tsg.ge.com, ATLORD29.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD29))) - -#Entry added by OEM on 20100607 -ATLORD32.energy.ge.com, ATLORD32.tsg.ge.com, ATLORD32.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD32))) - -#Entry added by OEM on 20100607 -ATLORD38.energy.ge.com, ATLORD38.tsg.ge.com, ATLORD38.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD38))) - -#Entry added by OEM on 20100607 -ATLORD56.energy.ge.com, ATLORD56.tsg.ge.com, ATLORD56.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD56))) - -#Entry added by OEM on 20100607 -ETPEAIP1.energy.ge.com, ETPEAIP1.tsg.ge.com, ETPEAIP1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPEAIP1.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPEAIP1))) - -#Entry added by OEM on 20100607 -ATLORD58.energy.ge.com, ATLORD58.tsg.ge.com, ATLORD58.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD58))) - -#Entry added by OEM on 20100607 -ETPEAID2.energy.ge.com, ETPEAID2.tsg.ge.com, ETPEAID2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpeaid2.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPEAID2))) - -#Entry added by OEM on 20100607 -ATLORD59.energy.ge.com, ATLORD59.tsg.ge.com, ATLORD59.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD59))) - -#Entry added by OEM on 20100607 -ETPCTXP1.energy.ge.com, ETPCTXP1.tsg.ge.com, ETPCTXP1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = OHCVGTL01PSGE.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPCTXP1))) - -#Entry added by OEM on 20100607 -ATLORD60.energy.ge.com, ATLORD60.tsg.ge.com, ATLORD60.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD60))) - -#Entry added by OEM on 20100607 -ATLORD61.energy.ge.com, ATLORD61.tsg.ge.com, ATLORD61.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD61))) - -#Entry added by OEM on 20100607 -ATLORD62.energy.ge.com, ATLORD62.tsg.ge.com, ATLORD62.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD62))) - -#Entry added by OEM on 20100607 -ETPCGPP1.energy.ge.com, ETPCGPP1.tsg.ge.com, ETPCGPP1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcgpp1.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPCGPP1))) - -#Entry added by OEM on 20100607 -ETPBUDQ1.energy.ge.com, ETPBUDQ1.tsg.ge.com, ETPBUDQ1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpbudq1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPBUDQ1))) - -#Entry added by OEM on 20100607 -ATLORD64.energy.ge.com, ATLORD64.tsg.ge.com, ATLORD64.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD64))) - -#Entry added by OEM on 20100607 -ATLORD66.energy.ge.com, ATLORD66.tsg.ge.com, ATLORD66.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD66))) - -#Entry added by OEM on 20100607 -ATLORD70.energy.ge.com, ATLORD70.tsg.ge.com, ATLORD70.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD70))) - -#Entry added by OEM on 20100607 -ATLORD71.energy.ge.com, ATLORD71.tsg.ge.com, ATLORD71.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07a.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORD71))) - -#Entry added by OEM on 20100607 -ATLORP11.energy.ge.com, ATLORP11.tsg.ge.com, ATLORP11.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp11.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP11))) - -#Entry added by OEM on 20100607 -ATLORP12.energy.ge.com, ATLORP12.tsg.ge.com, ATLORP12.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp12.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP12))) - -#Entry added by OEM on 20100607 -ATLORP18.energy.ge.com, ATLORP18.tsg.ge.com, ATLORP18.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atlorp18.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP18))) - -#Entry added by OEM on 20100607 -ATLORP26.energy.ge.com, ATLORP26.tsg.ge.com, ATLORP26.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP26.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP26))) - -#Entry added by OEM on 20100607 -ATLORP45.energy.ge.com, ATLORP45.tsg.ge.com, ATLORP45.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP45.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP45))) - -#Entry added by OEM on 20100607 -ATLORP30.energy.ge.com, ATLORP30.tsg.ge.com, ATLORP30.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP30.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP30))) - -#Entry added by OEM on 20100607 -ATLORP56.energy.ge.com, ATLORP56.tsg.ge.com, ATLORP56.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP56.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP56))) - -#Entry added by OEM on 20100607 -ATLORP57.energy.ge.com, ATLORP57.tsg.ge.com, ATLORP57.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP57.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP57))) - -#Entry added by OEM on 20100607 -ATLORP58.energy.ge.com, ATLORP58.tsg.ge.com, ATLORP58.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP58.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP58))) - -#Entry added by OEM on 20100607 -ATLORP60.energy.ge.com, ATLORP60.tsg.ge.com, ATLORP60.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP60.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP60))) - -#Entry added by OEM on 20100607 -ATLORP61.energy.ge.com, ATLORP61.tsg.ge.com, ATLORP61.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP61.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP61))) - -#Entry added by OEM on 20100607 -ATLORP62.energy.ge.com, ATLORP62.tsg.ge.com, ATLORP62.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP62.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP62))) - -#Entry added by OEM on 20100607 -ATLORP63.energy.ge.com, ATLORP63.tsg.ge.com, ATLORP63.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP63.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP63))) - -#Entry added by OEM on 20100607 -ATLORP65.energy.ge.com, ATLORP65.tsg.ge.com, ATLORP65.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP65.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP65))) - -#Entry added by OEM on 20100607 -ATLORP66.energy.ge.com, ATLORP66.tsg.ge.com, ATLORP66.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP66.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP66))) - -#Entry added by OEM on 20100607 -ATLORP72.energy.ge.com, ATLORP72.tsg.ge.com, ATLORP72.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP72.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP72))) - -#Entry added by OEM on 20100608 -atxdwbp1.energy.ge.com, atxdwbp1.tsg.ge.com, atxdwbp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxdwbp1.tsg.ge.com)(PORT = 1570))) - (CONNECT_DATA =(sid = atxdwbp1))) - -#Entry added by OEM on 20100608 -etpgvlq3.energy.ge.com, etpgvlq3.tsg.ge.com, etpgvlq3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpgvlq3.tsg.ge.com)(PORT = 1556))) - (CONNECT_DATA =(sid = etpgvlq3))) - -#Entry added by OEM on 20100608 -etpsamp1.energy.ge.com, etpsamp1.tsg.ge.com, etpsamp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsamp1.tsg.ge.com)(PORT = 1541))) - (CONNECT_DATA =(sid = etpsamp1))) - -#Entry added by OEM on 20100608 -etpgvlp3.energy.ge.com, etpgvlp3.tsg.ge.com, etpgvlp3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpgvlp3.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = etpgvlp3))) - -#Entry added by OEM on 20100608 -etpgvlp1, etpgvlp1.energy.ge.com, etpgvlp1.tsg.ge.com, etpgvlp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpgvlp1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpgvlp1))) - -#Entry added by OEM on 20100608 -etpgvlp2, etpgvlp2.energy.ge.com, etpgvlp2.tsg.ge.com, etpgvlp2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpgvlp2.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpgvlp2))) - -#Entry added by OEM on 20100608 -ETPITPP7.energy.ge.com, ETPITPP7.tsg.ge.com, ETPITPP7.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPP5.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITPP7))) - -#Entry added by OEM on 20100608 -ETPITPP6.energy.ge.com, ETPITPP6.tsg.ge.com, ETPITPP6.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPP5.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITPP6))) - -#Entry added by OEM on 20100608 -ETPITPP5.energy.ge.com, ETPITPP5.tsg.ge.com, ETPITPP5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPP5.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITPP5))) - -#Entry added by OEM on 20100608 -ETPITPP4.energy.ge.com, ETPITPP4.tsg.ge.com, ETPITPP4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPP4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITPP4))) - -#Entry added by OEM on 20100608 -ETPITPD4.energy.ge.com, ETPITPD4.tsg.ge.com, ETPITPD4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = OHCVGDV57PSGE.geesp.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITPD4))) - -#Entry added by OEM on 20100608 -ETPITIQ4.energy.ge.com, ETPITIQ4.tsg.ge.com, ETPITIQ4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPQ4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITIQ4))) - -#Entry added by OEM on 20100608 -ETPITIP4.energy.ge.com, ETPITIP4.tsg.ge.com, ETPITIP4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPP4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITIP4))) - -#Entry added by OEM on 20100608 -ETPITFQ4.energy.ge.com, ETPITFQ4.tsg.ge.com, ETPITFQ4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPQ4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITFQ4))) - -#Entry added by OEM on 20100608 -ETPITFP4.energy.ge.com, ETPITFP4.tsg.ge.com, ETPITFP4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPP4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITFP4))) - -#Entry added by OEM on 20100608 -ETPITDQ5.energy.ge.com, ETPITDQ5.tsg.ge.com, ETPITDQ5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPITDQ5.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITDQ5))) - -#Entry added by OEM on 20100608 -ETPITDQ4.energy.ge.com, ETPITDQ4.tsg.ge.com, ETPITDQ4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPITDQ4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITDQ4))) - -#Entry added by OEM on 20100608 -ETPITDP6.energy.ge.com, ETPITDP6.tsg.ge.com, ETPITDP6.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLDP6.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITDP6))) - -#Entry added by OEM on 20100608 -ETPITDP5.energy.ge.com, ETPITDP5.tsg.ge.com, ETPITDP5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLDP5.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITDP5))) - -#Entry added by OEM on 20100608 -ETPITDP4.energy.ge.com, ETPITDP4.tsg.ge.com, ETPITDP4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLDP4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITDP4))) - -#Entry added by OEM on 20100608 -ETPITDDA.energy.ge.com, ETPITDDA.tsg.ge.com, ETPITDDA.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = OHCVGDV59PSGE.geesp.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITDDA))) - -#Entry added by OEM on 20100608 -ETPITDD4.energy.ge.com, ETPITDD4.tsg.ge.com, ETPITDD4.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = OHCVGDV56PSGE.geesp.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITDD4))) - -#Entry added by OEM on 20100608 -ETPGVLP2.energy.ge.com, ETPGVLP2.tsg.ge.com, ETPGVLP2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPGVLP2.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPGVLP2))) - -#Entry added by OEM on 20100608 -ETPESSQ1.energy.ge.com, ETPESSQ1.tsg.ge.com, ETPESSQ1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPESSQ1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPESSQ1))) - -#Entry added by OEM on 20100608 -ETPEMDQ3.energy.ge.com, ETPEMDQ3.tsg.ge.com, ETPEMDQ3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPEMDQ3.tsg.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = ETPEMDQ3))) - -#Entry added by OEM on 20100608 -ETPGVLP1.energy.ge.com, ETPGVLP1.tsg.ge.com, ETPGVLP1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpgvlp1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPGVLP1))) - -#Entry added by OEM on 20100608 -ETPEMDQ2.energy.ge.com, ETPEMDQ2.tsg.ge.com, ETPEMDQ2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPEMDQ2.tsg.ge.com)(PORT = 1572))) - (CONNECT_DATA =(sid = ETPEMDQ2))) - -#Entry added by OEM on 20100608 -ETPEMDQ1.energy.ge.com, ETPEMDQ1.tsg.ge.com, ETPEMDQ1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPEMDQ1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPEMDQ1))) - -#Entry added by OEM on 20100608 -ETPEMDP3.energy.ge.com, ETPEMDP3.tsg.ge.com, ETPEMDP3.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPEMDP3.energy.ge.com)(PORT = 1573))) - (CONNECT_DATA =(sid = ETPEMDP3))) - -#Entry added by OEM on 20100608 -ETPEMDP2.energy.ge.com, ETPEMDP2.tsg.ge.com, ETPEMDP2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPEMDP2.energy.ge.com)(PORT = 1572))) - (CONNECT_DATA =(sid = ETPEMDP2))) - -#Entry added by OEM on 20100608 -ETPEMDP1.energy.ge.com, ETPEMDP1.tsg.ge.com, ETPEMDP1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpemdp1.energy.ge.com)(PORT = 1571))) - (CONNECT_DATA =(sid = ETPEMDP1))) - -#Entry added by OEM on 20100608 -ETPECLU1.energy.ge.com, ETPECLU1.tsg.ge.com, ETPECLU1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPECLU1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPECLU1))) - -#Entry added by OEM on 20100608 -ETPECLQ1.energy.ge.com, ETPECLQ1.tsg.ge.com, ETPECLQ1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPECLQ1.tsg.ge.com)(PORT = 1572))) - (CONNECT_DATA =(sid = ETPECLQ1))) - - -#Entry added by OEM on 20100608 -ETPBUDD1.energy.ge.com, ETPBUDD1.tsg.ge.com, ETPBUDD1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpbudd1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPBUDD1))) -#Entry added by OEM on 20100608 -ETPBUDP1.energy.ge.com, ETPBUDP1.tsg.ge.com, ETPBUDP1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpbudp1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPBUDP1))) - -#Entry added by OEM on 20100608 -ETPECLD1.energy.ge.com, ETPECLD1.tsg.ge.com, ETPECLD1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = masdsd200.energy.ge.com)(PORT = 1597))) - (CONNECT_DATA =(sid = ETPECLD1))) - -#Entry added by OEM on 20100609 -euxoltpa, euxoltpa.tsg.ge.com, euxoltpa.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = euxoltpa.tsg.ge.com)(PORT = 1559))) - (CONNECT_DATA =(sid = euxoltpa))) - -#Entry added by OEM on 20100609 -ntxoltd2, ntxoltd2.tsg.ge.com, ntxoltd2.energy.ge.com, ntxoltd2.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ncwlmdb02.wilm.ge.com)(PORT = 1533))) - (CONNECT_DATA =(sid = ntxoltd2))) - -#Entry added by OEM on 20100609 -jtoa.jt.ae.ge.com,JTOA.ae.ge.com, JTOA.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = mkg1.jt.ae.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = JTOA))) - -#Entry added by OEM on 20100609 -ETPBGRP2.energy.ge.com, ETPBGRP2.tsg.ge.com, ETPBGRP2.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpbgrp2.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPBGRP2))) - -#Entry added by OEM on 20100609 -ETPBGRD1.energy.ge.com, ETPBGRD1.tsg.ge.com, ETPBGRD1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdsa001.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPBGRD1))) - -#Entry added by OEM on 20100609 -EOB920Q1.energy.ge.com, EOB920Q1.tsg.ge.com, EOB920Q1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eob920q1.tsg.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = EOB920Q1))) - -power,power.tsg.ge.com,power.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TNWP01112.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = power))) - -fox, fox.energy.ge.com,fox.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = WIGRBF02PSGE.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = fox))) - -card, card.energy.ge.com, card.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgwp00263.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = card))) - -telfer, telfer.tsg.ge.com, telfer.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = autelf02psge.geips-asia.ps.ge.com)(PORT = 1522))) - (CONNECT_DATA =(service_name = TELFERPR))) - -pldv, pldv.tsg.ge.com, pldv.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgwp00263.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = PLDV))) - -#Entry added by OEM on 20100617 -kpower,kpower.energy.ge.com,kpower.tsg.ge.com, kpower.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = KRRSUA01PSGE.GEIPS-ASIA.PS.GE.COM)(PORT = 1521))) - (CONNECT_DATA =(service_name = kpower))) - -#Entry added by OEM on 20100617 -mxprdt.energy.ge.com, mxprdt.tsg.ge.com, mxprdt.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TATPEF02PSGE.GEIPS-ASIA.PS.GE.COM)(PORT = 1521))) - (CONNECT_DATA =(service_name = mxprdt))) - -#Entry added by OEM on 20100617 -TYNAGH.energy.ge.com, TYNAGH.tsg.ge.com, TYNAGH.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TNWP01496.GEIPS-EURO.PS.GE.COM)(PORT = 1521))) - (CONNECT_DATA =(service_name = TYNAGH))) - -#Entry added by OEM on 20100617 -TLD6.energy.ge.com, TLD6.tsg.ge.com, TLD6.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = THBKKA03PSGE.geips-asia.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = TLD6))) - -#Entry added by OEM on 20100617 -GPSOGD99.world,GPSOGD99.energy.ge.com, GPSOGD99.tsg.ge.com, GPSOGD99.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = rs9edp.np.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = GPSOGD99))) - -#Entry added by OEM on 20100617 -NGTPR.energy.ge.com, NGTPR.tsg.ge.com, NGTPR.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = nhmhtf01psge.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = NGTPR))) - -#Entry added by OEM on 20100617 -SHILLS.energy.ge.com, SHILLS.tsg.ge.com, SHILLS.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TSGWP00328.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = SHILLS))) - -#Entry added by OEM on 20100617 -CPUERTO.energy.ge.com, CPUERTO.tsg.ge.com, CPUERTO.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = AREZEF01PSGE.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = CPUERTO))) - -#Entry added by OEM on 20100617 -PARLIN.energy.ge.com, PARLIN.tsg.ge.com, PARLIN.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TSGWP00676.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = PARLIN))) - -#Entry added by OEM on 20100617 -INLANDPR, INLANDPR.energy.ge.com, INLANDPR.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TSGWP00645.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = INLANDPR))) - -#Entry added by OEM on 20100617 -ntxmtxl1.energy.ge.com, ntxmtxl1.tsg.ge.com, ntxmtxl1.ae.ge.com, ntxmtxl1.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxmtxl1.tsg.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = ntxmtxl1))) - -#Entry added by OEM on 20100617 -ntxmtxd1.energy.ge.com, ntxmtxd1.tsg.ge.com, ntxmtxd1.ae.ge.com, ntxmtxd1.wilm.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxmtxd1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = ntxmtxd1))) - -#Entry added by OEM on 20100617 -EOB920D1.energy.ge.com, EOB920D1.tsg.ge.com, EOB920D1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eob920d1.tsg.ge.com)(PORT = 1522))) - (CONNECT_DATA =(sid = EOB920D1))) - -#Entry added by OEM on 20100617 -BLSORJ51.energy.ge.com, BLSORJ51.tsg.ge.com, BLSORJ51.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba51.sch.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = BLSORJ51))) - -#Entry added by OEM on 20100617 -BLSORI51.energy.ge.com, BLSORI51.tsg.ge.com, BLSORI51.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba51.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = BLSORI51))) - -#Entry added by OEM on 20100617 -BLSORF51.energy.ge.com, BLSORF51.tsg.ge.com, BLSORF51.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba51.sch.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = BLSORF51))) - -#Entry added by OEM on 20100617 -BLSORE51.energy.ge.com, BLSORE51.tsg.ge.com, BLSORE51.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdba51.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = BLSORE51))) - -#Entry added by OEM on 20100617 -ATLORT64.energy.ge.com, ATLORT64.tsg.ge.com, ATLORT64.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORT64))) - -#Entry added by OEM on 20100617 -ATLORT63.energy.ge.com, ATLORT63.tsg.ge.com, ATLORT63.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORT63))) - -#Entry added by OEM on 20100617 -ATLORT61.energy.ge.com, ATLORT61.tsg.ge.com, ATLORT61.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORT61))) - -#Entry added by OEM on 20100617 -ATLORT08.energy.ge.com, ATLORT08.tsg.ge.com, ATLORT08.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORT08))) - -#Entry added by OEM on 20100617 -ATLORS63.energy.ge.com, ATLORS63.tsg.ge.com, ATLORS63.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORS63))) - -#Entry added by OEM on 20100617 -ATLORS24.energy.ge.com, ATLORS24.tsg.ge.com, ATLORS24.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORS24))) - -#Entry added by OEM on 20100617 -ATLORS12.energy.ge.com, ATLORS12.tsg.ge.com, ATLORS12.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORS12))) - -#Entry added by OEM on 20100617 -ATLORQ28.energy.ge.com, ATLORQ28.tsg.ge.com, ATLORQ28.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atl07b.geips.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORQ28))) - -#Entry added by OEM on 20100617 -ATLORP75.energy.ge.com, ATLORP75.tsg.ge.com, ATLORP75.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP75.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP75))) - -#Entry added by OEM on 20100617 -ATLORP76.energy.ge.com, ATLORP76.tsg.ge.com, ATLORP76.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ATLORP76.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ATLORP76))) - -#Entry added by OEM on 20100617 -MAXIMO_euro, MAXIMO_euro.tsg.ge.com, MAXIMO_euro.ps.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = TNWP03018.geips-euro.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(service_name = maximo))) - -#Entry added by OEM on 20100618 -ETPITPQ4, ETPITPQ4.ae.ge.com, ETPITPQ4.tsg.ge.com, ETPITPQ4.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPQ4.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITPQ4))) - - -repl,repl.silei.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = 3.125.240.112)(PORT = 1521))) - (CONNECT_DATA =(sid = REPL))) - -#Entry added by OEM on 20100708 -ecvapwn1, ecvapwn1.ae.ge.com, ecvapwn1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ecvapwn1.tsg.ge.com)(PORT = 1559))) - (CONNECT_DATA =(sid = ecvapwn1))) - -erppgfg2,erppgfg2.tsg.ge.com,erppgfg2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = erppgfg2.tsg.ge.com)(PORT = 1546))) - (CONNECT_DATA =(sid = erppgfg2))) - -# port changed jaf 11/4/2010 -arpsysq1,arpsysq1.ae.ge.com,arpsysq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tsgsq3000.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = arpsysq1))) - -CSCMA2.PROD, CSCMA2.PROD.AE.GE.COM, CSCMA2.PROD.TSG.GE.COM = -(DESCRIPTION= - (ADDRESS_LIST = - (ADDRESS=(PROTOCOL=tcp)(HOST=eueoltp1.ae.ge.com) (PORT=1598) - ) - ) - (CONNECT_DATA=(SID=eueoltp1)) -) - -REPL.SILEI.GE.COM, repl.silei, repl.silei.tsg.ge.com, repl.silei.ae.ge.com= - (DESCRIPTION= - (ADDRESS= - (PROTOCOL=TCP) - (HOST=3.125.240.112) - (PORT=1521) - ) - (CONNECT_DATA= - (SERVICE_NAME=REPL) - ) - ) - -atx102p5,atx102p5.tsg.ge.com,atx102p5.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atx102p5.tsg.ge.com)(PORT = 1575))) - (CONNECT_DATA =(sid = atx102p5))) - -#added 7/15/10 jaf -palpha, palpha.ae.ge.com, palpha.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = tcpcom.world) (PROTOCOL = TCP) (Host = 3.11.194.254) (Port = 1521))) - (CONNECT_DATA = (SID = PALPHA))) - -TELFERPR, telferpr.ae.ge.com, telferpr.tsg.ge.com, telferpr.geips-asia.ps.ge.com = - (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP)(HOST = AUTELF02PSGE.geips-asia.ps.ge.com)(PORT = 1522))(CONNECT_DATA =(SERVICE_NAME =TELFERPR))) - -atx102q5,atx102q5.tsg.ge.com,atx102q5.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atx102q5.tsg.ge.com)(PORT = 1567))) (CONNECT_DATA =(sid = atx102q5))) - -atx102d5,atx102d5.tsg.ge.com,atx102d5.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atx102d5.tsg.ge.com)(PORT = 1569))) (CONNECT_DATA =(sid = atx102d5))) - -#added 7/19/2010 jaf -atxifss1,atxifss1.tsg.ge.com,atxifss1.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxifss1.tsg.ge.com)(PORT = 1576))) (CONNECT_DATA =(sid = atxifss1))) - -#added 7/20/2010 jaf -ETPS01P1 = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = etps01p1.energy.ge.com) (PORT= 1521)) - (CONNECT_DATA = (SID=ETPS01p1))) - -ETPS02P1 = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = etps02p1.energy.ge.com) (PORT= 1521)) - (CONNECT_DATA = (SID=ETPS02p1))) - -ETPS03P1 = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = etps03p1.energy.ge.com) (PORT= 1521)) - (CONNECT_DATA = (SID=ETPS03p1))) - -ETPS04P1 = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = etps04p1.energy.ge.com) (PORT= 1521)) - (CONNECT_DATA = (SID=ETPS04p1))) - -GVLORP10, gvlorp10.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = gvldba10.gvl.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = gvlorp10))) - -SIMON_development = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ushou-a-panther.vg.vetco.com )(PORT = 1521))) - (CONNECT_DATA = (SID = SIM)(SERVER = DEDICATED))) - -#Entry added by OEM on 20100722 -ETPITPQ5, ETPITPQ5.tsg.ge.com, ETPITPQ5.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ETPCLPQ5.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPITPQ5))) - -#Entry added by OEM on 20100722 -ETPJEND2, ETPJEND2.tsg.ge.com, ETPJEND2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpjend2.atjenn01.ps.ge.com)(PORT = 1528))) - (CONNECT_DATA =(sid = ETPJEND2))) - -#Entry added by OEM on 20100722 -etpkrgd1, etpkrgd1.tsg.ge.com, etpkrgd1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpkrgd1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpkrgd1))) - -#Entry added by OEM on 20100722 -etpkrgp1, etpkrgp1.energy.ge.com, etpkrgp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpkrgp1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etpkrgp1))) - -#Entry added by OEM on 20100722 -eueolts8, eueolts8.energy.ge.com, eueolts8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eueolts8.tsg.ge.com)(PORT = 1551))) - (CONNECT_DATA =(sid = eueolts8))) - -#Entry added by OEM on 20100722 -etpcogd1, etpcogd1.energy.ge.com, etpcogd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcogd1.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = etpcogd1))) - -#Entry added by OEM on 20100722 -etpschq8, etpschq8.energy.ge.com, etpschq8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschq8.tsg.ge.com)(PORT = 1533))) - (CONNECT_DATA =(sid = etpschq8))) - -#Entry added by OEM on 20100722 -atxifsp1.tsg.ge.com, atxifsp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxifsp1.tsg.ge.com)(PORT = 1577))) - (CONNECT_DATA =(sid = atxifsp1))) - -#Entry added by OEM on 20100722 -etpschd8, etpschd8.energy.ge.com, etpschd8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschd8.tsg.ge.com)(PORT = 1543))) - (CONNECT_DATA =(sid = etpschd8))) - -#Entry added by OEM on 20100722 -etpcogq1, etpcogq1.energy.ge.com, etpcogq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcogq1.tsg.ge.com)(PORT = 1550))) - (CONNECT_DATA =(sid = etpcogq1))) - -#Entry added by OEM on 20100722 -ntxoltp2, ntxoltp2.tsg.ge.com, ntxoltp2.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tnsp01090.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA =(sid = ntxoltp2))) -#------------------------------------- -# added by jaf 8/04/2010 -# -atxifsd1, atxifsd1.ae.ge.com, atxifsd1.tsg.ge.com = -(DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(Host=atxifsd1.tsg.ge.com)(Port=1544))) - (CONNECT_DATA=(SID=atxifsd1)(GLOBAL_NAME=atxifsd1.ae.ge.com))) - -eueoltra,eueoltra.tsg.ge.com,eueoltra.energy.ge.com = -(description= (address=(protocol=tcp)(host=eueoltra.tsg.ge.com)(port=1565)) (connect_data=(sid=eueoltra))) - -euxoltqa, euxoltqa.tsg.ge.com, euxoltqa.energy.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = euxoltqa.tsg.ge.com)(PORT = 1533))) - (CONNECT_DATA =(sid = euxoltqa))) - -MAXPRDBL = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = TNWP02844.geips-euro.ps.ge.com)(PORT = 1522)) - (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = maxprdbl))) -# -#------------------------------------ - - -#Entry added by OEM on 20100805 -etpinfq1, etpinfq1.tsg.ge.com, etpinfq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpinfq1.tsg.ge.com)(PORT = 1587))) - (CONNECT_DATA =(sid = etpinfq1))) - -#Entry added by OEM on 20100805 -ETPS07P1, ETPS07P1.tsg.ge.com, ETPS07P1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps07p1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPS07P1))) - -#Entry added by OEM on 20100805 -ETPS08P1, ETPS08P1.tsg.ge.com, ETPS08P1.corporate.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps08p1.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPS08P1))) - -#Entry added by OEM on 20100805 -ETPS10P1, ETPS10P1.tsg.ge.com, ETPS10P1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etps10p1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPS10P1))) - -#Entry added by OEM on 20100805 -ETPSBLD1, ETPSBLD1.tsg.ge.com, ETPSBLD1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsbld1.energy.ge.com)(PORT = 1528))) - (CONNECT_DATA =(sid = ETPSBLD1))) - -#Entry added by OEM on 20100805 -etpinfd1, etpinfd1.energy.ge.com, etpinfd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpinfd1.tsg.ge.com)(PORT = 1546))) - (CONNECT_DATA =(sid = etpinfd1))) - -#Entry added by OEM on 20100809 -ntxoltq2, ntxoltq2.energy.ge.com, ntxoltq2.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ntxoltq2.tsg.ge.com)(PORT = 1538))) - (CONNECT_DATA =(sid = ntxoltq2))) - -############################ -# entry added jaf 8/10/10 -MAXPRD10 = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = TNWP02318.geips-euro.ps.ge.com)(PORT = 1522)) - (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = maxprd10))) - -#Entry added by OEM on 20100810 -etpcogp1, etpcogp1.tsg.ge.com, etpcogp1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpcogp1.tsg.ge.com)(PORT = 1554))) - (CONNECT_DATA =(sid = etpcogp1))) - -#Entry added by OEM on 20100810 -ewhebiq1, ewhebiq1.tsg.ge.com, ewhebiq1.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhebiq1.tsg.ge.com)(PORT = 1587))) - (CONNECT_DATA =(sid = ewhebiq1))) - -#Entry added by OEM on 20100810 -ewhebid1, ewhebid1.energy.ge.com, ewhebid1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhebid1.tsg.ge.com)(PORT = 1544))) - (CONNECT_DATA =(sid = ewhebid1))) - -# entry added 20100811 by jaf -gpsird80, gpsird80.energy.ge.com = -(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = gpsird80.tsg.ge.com)(PORT = 1577))) -(CONNECT_DATA = (SERVICE_NAME = gpsird80))) - -# entry added 20100812 by jaf -gpstrn10, gpstrn10.tsg.ge.com = -(DESCRIPTION =(ADDRESS=(PROTOCOL=tcp)(HOST=gpstrn10.tsg.ge.com)(PORT=1613)) -(CONNECT_DATA=(SID=gpstrn10))) - -# entry added 20100820 by jaf -CHINA_APPS_DEV = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = tsgsd1003.energy.ge.com)(PORT = 1564))) - (CONNECT_DATA =(SID = gpschxx1))) - -# entries added 8/23/2010 by jaf -SSD4, SSD4.WORLD = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = corpt227.corporate.ge.com) (Port = 1527))) - (CONNECT_DATA =(SID = ssd4) (GLOBAL_NAME = ssd4))) - -# entries added 9/02/2010 by jaf ############################ -# 788699 -OutageProd, outageprod.ne.ge.com = - (DESCRIPTION = (ADDRESS_LIST =(ADDRESS = (PROTOCOL = tcp)(HOST = sjcsd003.ne.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = GENEPROD))) - -# request per G. Rieder -EUXOLTDA, euxoltda.tsg.ge.com - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=euxoltda.tsg.ge.com)(port=1531)) - (connect_data=(sid=euxoltda))) - -# 796591 -etpschp8, etpschp8.energy.ge.com, etpschp8.tsg.ge.com = - (description=(address=(protocol=tcp)(host= etpschp8.tsg.ge.com)(port=1534)) - (connect_data=(sid= etpschp8))) - -# 796481 -dupinfd3, dupinfd3.energy.ge.com = - (description= (address=(protocol=tcp)(host=tsgsd1752.energy.ge.com)(port=1632)) - (connect_data=(sid=dupinfd3))) -############################################################## -# entries added 9/14/2010 jaf -# -schorp68 = - (DESCRIPTION = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=schdba68.sch.ge.com)(PORT=1521))) - (CONNECT_DATA= (SID=schorp68))) - -atpcorp1, atpcorp1.ae.ge.com, atpcorp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpcorp1.ae.ge.com)(PORT = 1540))) - (CONNECT_DATA = (SID = atpcorp1))) -############################################################ -# entries added 9/16/2010 jaf -# -# per G. Rieder -atpoltd8,atpoltd8.tsg.ge.com,atpoltd8.ae.ge.com= - (description=(address=(protocol=tcp)(host=atpoltd8.tsg.ge.com)(port=1536)) - (connect_data=(sid=atpoltd8))) - -euerdwd8,euerdwd8.tsg.ge.com,euerdwd8.energy.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = euerdwd8.tsg.ge.com)(PORT = 1542))) - (CONNECT_DATA =(sid = euerdwd8))) - -etpbgvq1= - (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=TNWq04275.psamer.ps.ge.com)(PORT=1521))) - (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=etpbgvq1))) - -etpbgvp1 = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = TNWp04122.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = etpbgvp1))) - -etpbgvd1 = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = TNWd04273.psamer.ps.ge.com )(PORT = 1521))) - (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = etpbgvd1))) -# -# wo 805466 - -gpsifd80= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=gpsifd80.tsg.ge.com)(PORT=1598)) - (CONNECT_DATA= (SID=gpsifd80))) -############################################################## - -#added 10/01/2010 jaf -# from the adm01 /var/opt/oracle/tnsnames.ora -atxhmsd1,atxhmsd1.tsg.ge.com,atxhmsd1.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxhmsd1.tsg.ge.com)(PORT = 1577))) (CONNECT_DATA =(sid = atxhmsd1))) - -atxhmsq1,atxhmsq1.tsg.ge.com,atxhmsq1.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxhmsq1.tsg.ge.com)(PORT = 1578))) (CONNECT_DATA =(sid = atxhmsq1))) - -atxplsd1,atxplsd1.tsg.ge.com,atxplsd1.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxplsd1.tsg.ge.com)(PORT = 1579))) (CONNECT_DATA =(sid = atxplsd1))) - -# fix for a workflow alias -atpmdmd1, atpmdmd1.tsg.ge.com, atpmdmd1.ae.ge.com = -(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=atpmdmd1.tsg.ge.com)(Port=1535))(CONNECT_DATA=(SID=atpmdmd1))) - -# wo 808632 -gpshxd77= - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gpshxd77.tsg.ge.com)(PORT=1591)) - (CONNECT_DATA=(SID=gpshxd77))) -#810719 -COEDEV = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = bng1eaiman03.jfwtc.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = COEDEV) (SERVER = DEDICATED))) - -# from Gary R. -atpoltq8.tsg.ge.com,atpoltq8.ae.ge.com,atpoltq8 = - (description=(address=(protocol=tcp)(host=atpoltq8.tsg.ge.com)(port=1527))(connect_data=(sid=atpoltq8))) - -atpgnxd1, atpgnxd1.ae.ge.com,atpgnxd1.tsg.ge.com= - (description=(address=(protocol=tcp)(host=atpgnxd1.tsg.ge.com)(port=1534))(connect_data=(sid=atpgnxd1))) - -atpcogd1,atpcogd1.ae.ge.com,atpcogd1.tsg.ge.com= - (description=(address=(protocol=tcp)(host=atpcogd1.tsg.ge.com)(port=1530))(connect_data=(sid=atpcogd1))) - -atpmdmd1, atpmdmd1.ae.ge.com,atpmdmd1.tsg.ge.com= - (description=(address=(protocol=tcp)(host=atpmdmd1.tsg.ge.com)(port=1535))(connect_data=(sid=atpmdmd1))) - -atpmdmq1, atpmdmq1.ae.ge.com, atpmdmq1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= atpmdmq1.tsg.ge.com)(port=1533))(connect_data=(sid= atpmdmq1))) - -atpmdmp1, atpmdmp1.ae.ge.com, atpmdmp1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= atpmdmp1.tsg.ge.com)(port=1531))(connect_data=(sid= atpmdmp1))) - -############################################################# - -#Entry added by OEM on 20101004 -atpcorq1, atpcorq1.ae.ge.com, atpcorq1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpcorq1.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = atpcorq1))) - -#Entry added by OEM on 20101004 -atpcogq1.tsg.ge.com, atpcogq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpcogq1.tsg.ge.com)(PORT = 1531))) - (CONNECT_DATA =(sid = atpcogq1))) - -#Entry added by OEM on 20101004 -atpcogp1.tsg.ge.com, atpcogp1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpcogp1.tsg.ge.com)(PORT = 1548))) - (CONNECT_DATA =(sid = atpcogp1))) - -#Entry added by OEM on 20101004 -ewhebip1, ewhebip1.energy.ge.com, ewhebip1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = ewhebip1.tsg.ge.com)(PORT = 1533))) - (CONNECT_DATA =(sid = ewhebip1))) - -#Entry added by OEM on 20101004 -ETPSCHD7, ETPSCHD7.energy.ge.com, ETPSCHD7.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschd7.tsg.ge.com)(PORT = 1527))) - (CONNECT_DATA =(sid = ETPSCHD7))) - -#Entry added by OEM on 20101004 -ETPSCHD6, ETPSCHD6.energy.ge.com, ETPSCHD6.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschd6.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA =(sid = ETPSCHD6))) - -#Entry added by OEM on 20101004 -ETPSCHD5, ETPSCHD5.energy.ge.com, ETPSCHD5.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschd5.tsg.ge.com)(PORT = 1526))) - (CONNECT_DATA =(sid = ETPSCHD5))) - -#Entry added by OEM on 20101004 -ETPSCHD1, ETPSCHD1.energy.ge.com, ETPSCHD1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = schdsa001.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPSCHD1))) - -#Entry added by OEM on 20101004 -ETPSCHD4, ETPSCHD4.energy.ge.com, ETPSCHD4.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpschd4.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPSCHD4))) - -#Entry added by OEM on 20101004 -ETPSBLD3, ETPSBLD3.energy.ge.com, ETPSBLD3.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpsbld3.tsg.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = ETPSBLD3))) - -#Entry added by OEM on 20101006 -eob102d1, eob102d1.energy.ge.com, eob102d1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = tnsd04169.tsg.ge.com)(PORT = 1537))) - (CONNECT_DATA =(sid = eob102d1))) - -#Entry added by OEM on 20101006 -eob102q1, eob102q1.energy.ge.com, eob102q1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = eob102q1.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA =(sid = eob102q1))) - -#Entry added by OEM on 20101006 -atxplsq1.tsg.ge.com, atxplsq1.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxplsq1.tsg.ge.com)(PORT = 1575))) - (CONNECT_DATA =(sid = atxplsq1))) -################## -# added by JAF on 20101007 - -tsimstg1, tsimstg1.trans.ge.com, tsimstg1.tsg.ge.com= - (description=(address=(protocol=tcp)(host=tsimstg1.tsg.ge.com)(port=1521))(connect_data=(sid=tsimstg1))) - -tsimstg2, tsimstg2.trans.ge.com, tsimstg2.tsg.ge.com= - (description=(address=(protocol=tcp)(host=tsimstg2.tsg.ge.com)(port=1531))(connect_data=(sid=tsimstg2))) - -tsimstg3, tsimstg3.trans.ge.com, tsimstg3.tsg.ge.com= - (description=(address=(protocol=tcp)(host=tsimstg3.tsg.ge.com)(port=1532))(connect_data=(sid=tsimstg3))) - - -#Entry added by OEM on 20101008 -atpoltp8, atpoltp8.ae.ge.com, atpoltp8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpoltp8.tsg.ge.com)(PORT = 1555))) - (CONNECT_DATA =(sid = atpoltp8))) - -#Entry added by OEM on 20101011 -atpolts8, atpolts8.ae.ge.com, atpolts8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atpolts8.tsg.ge.com)(PORT = 1528))) - (CONNECT_DATA =(sid = atpolts8))) - -# entry added by jaf on 20101012 -SSI1 = - (DESCRIPTION = (ADDRESS_LIST = - (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = corpt230.corporate.ge.com) (Port = 1536))) - (CONNECT_DATA = (SID = ssi1))) - -# added by jaf on 20101014 - -MAXIMO_EUR, maximo_eur.tsg.gw.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = TNWP03018.geips-euro.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = MAXIMO))) - -PLDV_NEW, pldv_new.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = esreua02psge.psw.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PLDV))) - -#Entry added by OEM on 20101019 -exadata, exadata.ae.ge.com, exadata.energy.ge.com, exadata.tsg.ge.com - (DESCRIPTION = - (ADDRESS_LIST= - (ADDRESS=(PROTOCOL=TCP)(Host= 3.56.153.44)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host= 3.56.153.45)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host= 3.56.153.46)(Port=1521)) - (ADDRESS=(PROTOCOL=TCP)(Host= 3.56.153.47)(Port=1521))) - (LOAD_BALANCE = yes) - (SERVER = DEDICATED) - (CONNECT_DATA=(SERVICE_NAME = GE_TDM))) - -############################ -# added by jaf 10/21/2010 -############################ -# from Guy C. - -atxdimp9, atxdimp9.tsg.ge.com, atxdimp9.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxdimp9.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = atxdimp9))) - -# 6796686 altered and readded 1/27/11 jaf -gpswdd82, gpswdd82.tsg.ge.com, gpswdd82.energy.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = gpswdd82.energy.ge.com) (PORT = 1567))) - (CONNECT_DATA = (sid = gpswdd82))) -################################# -# added by jaf 10/23/2010 -# -# workflow failed jobs -################################################### -aob102q1, aob102q1.ae.ge.com, aob102q1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = aob102q1.tsg.ge.com)(Port = 1527))) - (CONNECT_DATA = (SID = aob102q1))) - -############### -eob102p1, eob102p1.energy.ge.com, eob102p1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = eob102p1.tsg.ge.com)(Port = 1539))) - (CONNECT_DATA = (SID = eob102p1))) - -############### -aob102d1, aob102d1.ae.ge.com, aob102d1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = tnsd04169.tsg.ge.com)(Port = 1539))) - (CONNECT_DATA = (SID = aob102d1))) - -################# -atxpcsq1, atxpcsq1.ae.ge.com, atxpcsq1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = atxpcsq1.tsg.ge.com)(Port = 1539))) - (CONNECT_DATA = (SID = atxpcsq1))) - -################# -atxhmsp1,atxhmsp1.tsg.ge.com,atxhmsp1.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxhmsp1.tsg.ge.com)(PORT = 1527))) - (CONNECT_DATA =(sid = atxhmsp1))) -#################################################### -# -# added by jaf 10/26/10 -aob102p1, aob102p1.tsg.ge.com, aob102p1.ae.ge.com= - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = aob102p1.tsg.ge.com)(Port = 1554))) - (CONNECT_DATA = (SID = aob102q1))) -### - - -#Entry added by OEM on 20101028 -gpsogp52, gpsogp52.ae.ge.com, gpsogp52.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = rs16edp.np.ge.com)(PORT = 1854))) - (CONNECT_DATA =(sid = gpsogp52))) -################################################### -# -# added by jaf 11/4/2010 -#------------------------- -## wo 837384 -GPSCHXS1_ALPHARETTA = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = GPSCHXS1.TSG.GE.COM)(PORT = 1552))) - (CONNECT_DATA = (SERVICE_NAME = gpschxs1))) - -#-------------------------------------------- -#### FIX ########################### -# per Gary R -arpsysq1,arpsysq1.ae.ge.com,arpsysq1.tsg.ge.com = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=arpsysq1.tsg.ge.com)(PORT=1521)) - (CONNECT_DATA=(SERVICE_NAME=arpsysq1)(INSTANCE_NAME=arpsysq1))) - -#--------------------------------------------- -# wo 836530 -SELESTA.SILEI.GE.COM= - (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=3.125.240.121) (PORT=1521)) - (CONNECT_DATA= (SERVICE_NAME=selesta))) - -#---------------------------------------------- -# 837176 -erppgfr1, erppgfr1.tsg.ge.com= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=erppgfr1.tsg.ge.com)(PORT=1601)) - (CONNECT_DATA= (SID=erppgfr1))) - -erppgfn1, erppgfn1.tsg.ge.com= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=erppgfn1.tsg.ge.com)(PORT=1603)) - (CONNECT_DATA= (SID=erppgfn1))) - -erppgfb1, erppgfb1.tsg.ge.com= - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=erppgfb1.tsg.ge.com)(PORT=1547)) - (CONNECT_DATA=(SID=erppgfb1))) - -#------------------------------------------------------ -# 835278 -REPLPROD= - (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=3.125.240.61) (PORT=1521)) - (CONNECT_DATA= (SERVICE_NAME=REPL))) - -#------------------------------------------------------- -# 837384 -GENED, gened.tsg.ge.com, gened.ne.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = sjcsd004.ne.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = GENED))) - -#------------------------------------------------------- -#Entry added by OEM on 20101105 -# host changed jaf 11/5/10 -etpmdmd1, etpmdmd1.energy.ge.com, etpmdmd1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpmdmd1.tsg.ge.com)(PORT = 1532))) - (CONNECT_DATA =(sid = etpmdmd1))) - -#Entry added by OEM on 20101109 -etpkrnd8, etpkrnd8.tsg.ge.com, etpkrnd8.energy.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpkrnd8.tsg.ge.com)(PORT = 1544))) - (CONNECT_DATA =(sid = etpkrnd8))) - -# added by jaf 11/16/2010 -TSMCONSP = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 3.24.215.254)(PORT = 1580))) - (CONNECT_DATA = (SID = TSMCONSP))) - -TSMCONSQ = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 3.34.17.218)(PORT = 1578))) - (CONNECT_DATA = (SID = TSMCONSQ))) - -TSMCONS1 = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 3.24.143.128)(PORT = 1570))) - (CONNECT_DATA = (SID = TSMCONS1))) - -#Entry added by OEM on 20101118 -etpkrnq8, etpkrnq8.energy.ge.com, etpkrnq8.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = etpkrnq8.tsg.ge.com)(PORT = 1553))) - (CONNECT_DATA =(sid = etpkrnq8))) - -#Entry added by OEM on 20101119 -atxplsp1, atxplsp1.ae.ge.com, atxplsp1.tsg.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = atxplsp1.tsg.ge.com)(PORT = 1556))) - (CONNECT_DATA =(sid = atxplsp1))) - -#Entry added by OEM on 20101129 -BLRIMPRD,BLRIMPRD.ge.com, BLRIMPRD.ae.ge.com = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = imanblrprod.fso.erie.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = BLRIMPRD))) -# from workflow -etpkrnp8 = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=etpkrnp8.tsg.ge.com)(PORT=1537)) - (CONNECT_DATA=(SID=etpkrnp8))) -#------------------------------------- -# Entries added 12/9/2010 jaf -# -# wo 865725 -etporbq1, etporbq1.tsg.ge.com, etporbq1.energy.ge.com= - (description=(address=(protocol=tcp)(host= etporbq1.tsg.ge.com)(port=1529))(connect_data=(sid= etporbq1))) -# -# workflow -etpoltqa, etpoltqa.tsg.ge.com, etpoltqa.ae.ge.com= - (description=(address=(protocol=tcp) (host=etpoltqa.tsg.ge.com)(port=1527)) (connect_data=(sid=etpoltqa))) - -etpoltda, etpoltda.tsg.ge.com, etpoltda.ae.ge.com= - (description=(address=(protocol=tcp) (host=etpoltda.tsg.ge.com)(port=1526)) (connect_data=(sid=etpoltda))) - -atxoltqa, atxoltqa.tsg.ge.com, atxoltqa.ae.ge.com= - (description=(address=(protocol=tcp) (host=atxoltqa.tsg.ge.com)(port=1544)) (connect_data=(sid=atxoltqa))) -#------------------------------------- -# Entries added 12/13/2010 per Guy C. -atxoltqb, atxoltqb.tsg.ge.com, atxoltqb.energy.ge.com= - (description=(address=(protocol=tcp)(host= atxoltqb.tsg.ge.com)(port=1545))(connect_data=(sid= atxoltqb))) - -atxoltpa, atxoltpa.tsg.ge.com, atxoltpa.energy.ge.com= - (description=(address=(protocol=tcp)(host= atxoltpa.tsg.ge.com)(port=1544))(connect_data=(sid= atxoltpa))) - -atxcogp1, atxcogp1.tsg.ge.com, atxcogp1.energy.ge.com= - (description=(address=(protocol=tcp)(host= atxcogp1.tsg.ge.com)(port=1544))(connect_data=(sid= atxcogp1))) -#================================= -# added 1/13/2011 jaf -CVSTAGE, cvstage.geips.ge.com = - ( DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(Host = atlors63.geips.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = atlors63))) - -BOROQ330= - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 3.84.190.32 )(PORT = 1630))) - (CONNECT_DATA =(SERVICE_NAME =BOROQ330))) - -atpcwcp1, atpcwcp1.ae.ge.com, atpcwcp1.tsg.ge.com= - (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= atpcwcp1.tsg.ge.com)(port=1528)) - (CONNECT_DATA=(SID=atpcwcp1))) - -etpcogr1,etpcogr1.tsg.ge.com,etpcogr1.energy.ge.com = (description= (address=(protocol=tcp)(host=etpcogr1.tsg.ge.com)(port=1532)) - (connect_data=(sid=etpcogr1)) ) -etpessr1,etpessr1.tsg.ge.com,etpessr1.energy.ge.com = (description= (address=(protocol=tcp)(host=etpessr1.tsg.ge.com)(port=1554)) - (connect_data=(sid=etpessr1)) ) -etpeaip8,etpeaip8.tsg.ge.com,etpeaip8.energy.ge.com = (description= (address=(protocol=tcp)(host=etpeaip8.tsg.ge.com)(port=1529)) - (connect_data=(sid=etpeaip8)) ) - -tsrwdev1, tsrwdev1.trans.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = tsrwdev1.trans.ge.com) (Port = 1521))) - (CONNECT_DATA = (SID = TSRWDEV1))) - -atpkrnq9, atpkrnq9.tsg.ge.com = - (description= (address=(protocol=tcp)(host=atpkrnq9.tsg.ge.com)(port=1534))(connect_data=(sid=atpkrnq9))) - -erpesev1= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=erpesev1.tsg.ge.com)(PORT=1618)) - (CONNECT_DATA= (SID=erpesev1))) - -SCHOP203.SCH.GE.COM = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = schop203.sch.ge.com)(Port = 1521)) - (CONNECT_DATA = (SID = schop203))) - -HOUORR20, houorr20.energy.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = houorr20.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = houorr20))) - -SSP1,SSP1.corporate.ge.com = - (DESCRIPTION = (ADDRESS = (PROTOCOL= TCP)(HOST= corpp032.corporate.ge.com)(PORT= 1526)) - (CONNECT_DATA = (SID = ssp1))) - -FRMT_PROD, frmt_prod.corporate.ge.com = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=gpsfrmt82.corporate.ge.com)(PORT=11501)) - (CONNECT_DATA=(SID=gpsfrp82))) - -blsorj51, blsorj51.sch.ge.com= - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = schdba51.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = blsorj51))) - -erpshsa1, erpshsa1.tsg.ge.com = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=erpshsa1.tsg.ge.com)(PORT=1565)) - (CONNECT_DATA= (SID=erpshsa1))) - -ctsd.energy.ge.com= - (DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=sjcsd004.ne.ge.com)(PORT=1531))) - (CONNECT_DATA=(SID=ctsd))) - -#--------------------------------------------------------------------- -#added 1/18/2011 jaf - WO 867237 - -ewhhrpp3, ewhhrpp3.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ewhhrpp3.tsg.ge.com)(PORT = 1533))) - (CONNECT_DATA = (SID = ewhhrpp3))) - -etphrpp1, etphrpp1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = etphrpp1.tsg.ge.com)(PORT = 1530))) - (CONNECT_DATA = (SID = etphrpp1))) -#=============================================================================== -# changes from 1/20/11 re-added due to file corruption problem - jaf -# -# SC 7151075 -#--------------------------------------------------------------------- -evncpau1, evncpau1.tsg.ge.com,evncpau1.ae.ge.com = - (DESCRIPTION = (ADDRESS=(PROTOCOL=tcp)(HOST=evncpau1.tsg.ge.com)(PORT=1563)) (CONNECT_DATA = (SID=evncpau1))) - -evncpar1, evncpar1.tsg.ge.com,evncpar1.ae.ge.com = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=evncpar1.tsg.ge.com)(PORT=1542)) (CONNECT_DATA=(SID=evncpar1))) - -evnapsr1, evnapsr1.tsg.ge.com = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=evnapsr1.tsg.ge.com)(PORT=1541)) (CONNECT_DATA=(SID=evnapsr1))) -#------------------------------------------------------------------- -#885957 -gpspgjd2 = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=gpspgjd2.tsg.ge.com)(PORT=1545))(CONNECT_DATA=(SID=gpspgjd2))) -#------------------------------------------------------------------- -#884873 -atpkrnq2,atpkrnq2.tsg.ge.com,atpkrnq2.ae.ge.com= - (description=(address=(protocol=tcp)(host=atpkrnq2.tsg.ge.com)(port=1534))(connect_data=(sid= atpkrnq2))) -#------------------------------------------------------------------ -# 888141 -tsrwstg1, tsrwstg1.trans.ge.com= - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = tsrwstg1.trans.ge.com) (Port = 1521))) - (CONNECT_DATA= (SID = TSRWSTG1))) -#---------------------------------------------------------------------------- -#875091 -SCHOP110.GEIPS.GE.COM = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = schdba110.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = schop110))) -#------------------------------------------------------------ -# from Workflow -etxorbr1, etxorbr1.tsg.ge.com, etxorbr1.energy.ge.com= - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (Host = etxorbr1.tsg.ge.com) (Port = 1540))) - (CONNECT_DATA= (SID = etxorbr1))) -#================================================================================ -# changes for 1/25/11 jaf -# -# 889536 -atpkrnq1,atpkrnq1.ae.ge.com,atpkrnq1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= atpkrnq1.tsg.ge.com)(port=1535)) - (connect_data=(sid= atpkrnq1))) -#------------------------------------------------------ -# 888669 -tsrwstg1_old = ## old tns entry for above - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP)(PROTOCOL = TCP)(Host = saratoga.erie.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = TSRWSTG1))) -#================================================================================= -#changes for 1/27/11 jaf -# -# 891514 -# -awhsncd1, awhsncd1.ae.ge.com, awhsncd1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= awhsncd1.tsg.ge.com)(port=1547)) - (connect_data=(sid= awhsncd1))) -# -#891207 changed 6/9/11 jaf 989204 -# -tsoadev1, tsoadev1.trans.ge.com = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = trnerpd-scan.trans.ge.com)(PORT = 1525)) - (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = tsoadev1)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)))) - -# -#891959 -# -orpogpd1, orpogpd1.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orpogpd1.tsg.ge.com)(PORT=1526))(CONNECT_DATA=(SID=orpogpd1))) -# -#7197392 -# -gpswdd82, gpswdd82.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gpswdd82.tsg.ge.com)(PORT=1567))(CONNECT_DATA=(SID=gpswdd82))) -################################################################################## -# added 2/10/2011 jaf -# -# 897159 -orpogps1, orpogps1.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orpogps1.tsg.ge.com)(PORT=1532)) - (CONNECT_DATA=(SERVICE_NAME=orpogps1)(INSTANCE_NAME=orpogps1))) -gpspgjs1, gpspgjs1.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gpspgjs1.tsg.ge.com)(PORT=1522)) - (CONNECT_DATA=(SID=gpspgjs1))) -#--------------------------------------------------------------------- -# 894696 -etpmdmq1,etpmdmq1.tsg.ge.com,etpmdmq1.energy.ge.com= - (description=(address=(protocol=tcp)(host= etpmdmq1.tsg.ge.com)(port=1538)) - (connect_data=(sid= etpmdmq1))) -#--------------------------------------------------------------------- -# 901410 -atpcwcd1, atpcwcd1.ae.ge.com, atpcwcd1.tsg.ge.com = - (description=(address=(protocol=tcp)(host= atpcwcd1.tsg.ge.com)(port=1526)) - (connect_data=(sid= atpcwcd1))) -#--------------------------------------------------------------------- -# 899646 -evncogp1_test = - (DESCRIPTION = (ADDRESS_LIST= (ADDRESS=(COMMUNITY=tcp.ae.ge.com)(PROTOCOL=TCP)(Host=tnsp03968.tsg.ge.com)(Port=1799))) - (CONNECT_DATA=(SID=evncogp1))) -#--------------------------------------------------------------------- -# 898172 -awhsncq1, awhsncq1.ae.ge.com, awhsncq1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= awhsncq1.tsg.ge.com)(port=1533)) - (connect_data=(sid= awhsncq1))) -#--------------------------------------------------------------------- -# 901769 -BGRON112 = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = bgrdba112.bgr.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = BGRON112))) - -schods05, schods05.sch.ge.com= - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP.WORLD)(PROTOCOL = TCP)(Host = schdba05.sch.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = schods05))) -#-------------------------------------------------------------------------------- -# added 2/17/2011 jaf -# ------------------- -# 899510 -ttprmro, ttprmro.tsg.ge.com = -(description= (address=(protocol=tcp)(host=ciohmcoradev1.corporate.ge.com)(port=1540))(connect_data=(sid=ttprmro))) -#------------------------------------------------------------------------- -# 908626 -etpwatd1, etpwatd1.ae.ge.com, etpwatd1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= etpwatd1.tsg.ge.com)(port=1531))(connect_data=(sid= etpwatd1))) -# 908630 -tsgipwd1, tsgipwd1.ae.ge.com, tsgipwd1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= tsgipwd1.tsg.ge.com)(port=1530))(connect_data=(sid= tsgipwd1))) -#------------------------------------------------------------------------- -# 908639 -atpkrnp2,atpkrnp2.ae.ge.com,atpkrnp2.tsg.ge.com= - (description=(address=(protocol=tcp)(host= atpkrnp2.tsg.ge.com)(port=1537))(connect_data=(sid= atpkrnp2))) -#------------------------------------------------------------------------- -# 907839 -etpessp1.energy.ge.com,etpessp1.tsg.ge.com,etpessp1= - (description=(address=(protocol=tcp)(host= etpessp1.tsg.ge.com)(port=1539))(connect_data=(sid= etpessp1))) -#------------------------------------------------------------------------- -# 907906 -atpucmq2, atpucmq2.ae.ge.com, atpucmq2.tsg.ge.com = - (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(Host=atpucmq2.tsg.ge.com)(Port=1570))) - (CONNECT_DATA=(SID=atpucmq2)(GLOBAL_NAME=atpucmq2.ae.ge.com))) -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -# added 3/10/2011 jaf -#-------------------- -# 917597 -atpucmd2, atpucmd2.ae.ge.com, atpucmd2.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atpucmd2.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = atpucmd2))) -#------------------- -# 917693 -atpucmp2, atpucmp2.ae.ge.com, atpucmp2.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atpucmp2.tsg.ge.com)(PORT = 1545))) - (CONNECT_DATA =(sid = atpucmp2))) -#------------------- -# 922946 -atpcwcq1, atpcwcq1.ae.ge.com, atpcwcq1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= atpcwcq1.tsg.ge.com)(port=1527))(connect_data=(sid= atpcwcq1))) -#------------------- -# 916448 -etpmdmp1, etpmdmp1.energy.ge.com, etpmdmp1.tsg.ge.com= - (description=(address=(protocol=tcp)(host= etpmdmp1.tsg.ge.com)(port=1526))(connect_data=(sid= etpmdmp1))) -#------------------- -# 920141 -ORPOGPQ1, orpogpq1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = orpogpq1.tsg.ge.com)(PORT = 1552))) - (CONNECT_DATA = (SERVICE_NAME = orpogpq1))) -#------------------ -# 915622 -gpsogd49, gpsogd49.np.ge.com = - (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(Host=rs9edp.np.ge.com)(Port=1553))) - (CONNECT_DATA = (SERVICE_NAME=gpsogd49))) - -GPSOGQ49, gpsogq49.tsg.ge.com = - (DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=rs15edp.np.ge.com)(PORT=1593))) - (CONNECT_DATA=(SID=gpsogq49)(SERVER=DEDICATED))) - -GPSOGP14, gpsogp14.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rs12edp.np.ge.com)(PORT = 1529))) - (CONNECT_DATA = (SID = gpsogp14) (SERVER = DEDICATED))) -#------------------- -# 924876 -ncnschprod, ncnschprod.sch.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = schdba110.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = schop110))) -#------------------- -#924876 -atpkrnd2,atpkrnd2.tsg.ge.com,atpkrnd2.ae.ge.com = - (description= (address=(protocol=tcp)(host=atpkrnd2.tsg.ge.com)(port=1534))(connect_data=(sid=atpkrnd2))) -#====================================================================== -# additions for 3/15/11 -# -#------------------------------ -# 927832 -atxtmcd2, atxtmcd2.ae.ge.com, atxtmcd2.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcd2.tsg.ge.com)(PORT = 1588))) - (CONNECT_DATA =(sid = atxtmcd2))) -#------------------------------ -# 927840 -atxtmcq2, atxtmcq2.ae.ge.com, atxtmcq2.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcq2.tsg.ge.com)(PORT = 1589))) - (CONNECT_DATA =(sid = atxtmcq2))) -#------------------------------ -# 926716 -orpogpp1, orpogpp1.tsg.ge.com = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=orpogpp1.tsg.ge.com)(PORT=1541)) (CONNECT_DATA= (SID=orpogpp1))) -#==================================================================== -# additions for 3/17/11 jaf -#----------------------- -# 929235 -atxtmcs2, atxtmcs2.ae.ge.com, atxtmcs2.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcs2.tsg.ge.com)(PORT = 1587))) - (CONNECT_DATA =(sid = atxtmcs2))) -#==================================================================== -# additions for 3/22/11 jaf -#----------------------- -atxtmcp2, atxtmcp2.ae.ge.com, atxtmcp2.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = atxtmcp2.tsg.ge.com)(PORT = 1572))) - (CONNECT_DATA =(sid = atxtmcp2))) -#==================================================================== -# additions for 3/24/11 jaf -#----------------------- -# 934681 -udqs, udqs.corporate.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=cihcissdb313.corporate.ge.com)(Port=1553)) - (CONNECT_DATA=(SID=udqs))) -#----------------------- -# 935259 -SIM_PROD_WRO, SIM_PROD_WRO.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ushou-a-charger.vg.vetco.com)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = SIM) (SRVR = DEDICATED))) -#------------------------ -GPSOGP61, gpsogp61.tsg.ge.com= - (DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=rs16edp.np.ge.com)(PORT=1565))) - (CONNECT_DATA=(SID=GPSOGP61)(SERVER=DEDICATED))) -#------------------------ -PRIM, prim.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = NAIS1032.VG.VETCO.COM)(PORT = 1521))) - (CONNECT_DATA = (SERVICE_NAME = PRIM))) -#------------------------ -# 934568 -ETPS05P1 = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = etps05p1.energy.ge.com)(PORT = 1521))) - (CONNECT_DATA =(sid = etps05p1))) -#=================================================================== -# additions 4/12/11 jaf -# -#940013 -# alias added 4/14/11 jaf -SCHOS203, schos203.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = schld160.sch.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SID = schos203)(SERVER = DEDICATED))) -#---------------- -# 942086 -etpitdp3 = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = etpitdp3.psamer.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = etpitdp3))) -#================================================================== -# additions 4/14/11 jaf -# -# 950938 -ETPSCHP4,ETPSCHP4.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = etpschp4.tsg.ge.com)(PORT = 1529))) - (CONNECT_DATA = (SID = ETPSCHP4))) -#================================================================= -# additions 4/19/11 jaf -# -# 952489 -# altered, 958009 4/26/11 jaf -tsiscpd_rac, tsiscpd_rac.tsg.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = tsiscpd))) -#================================================================ -# additions 4/26/2011 jaf -#958003 -GPSORN55,GPSORN55.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = gpsdba55.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA =(SERVICE_NAME = gpsorn55))) -#-------------------------- -# 959425 -ewhipwp1,ewhipwp1.tsg.ge.com,ewhipwp1.energy.ge.com= - (description=(address=(protocol=tcp)(host= ewhipwp1.tsg.ge.com)(port=1530))(connect_data=(sid= ewhipwp1))) -#===================================================================== -# additions 4/28/11 jaf -# 959465 -tsiscps_rac, tsiscps_rac.tsg.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.163.45)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.163.46)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.163.47)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = tsiscps))) -#====================================================================== -# additions 5/12/11 jaf -# 968490 host changed 5/17/11 jaf -atpcelq1,atpcelq1.tsg.ge.com,atpcelq1.ae.ge.com= - (description=(address=(protocol=tcp)(host= tnwq07209.sa.ae.ge.com)(port=1521))(connect_data=(sid= atpcelq1))) - -atpcelp1,atpcelp1.tsg.ge.com,atpcelp1.ae.ge.com= - (description=(address=(protocol=tcp)(host= TNWP07210.sa.ae.ge.com)(port=1521))(connect_data=(sid= atpcelp1))) -#---------------------- -# 963570 host changed 5/17/11 jaf -erpshsd1,erpshsd1.ae.ge.com = - (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP )(HOST = erpshsd1.tsg.ge.com)(PORT=1535)) - (CONNECT_DATA = (SID=erpshsd1))) - -gpsorp39,gpsorp39.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST =(ADDRESS =(COMMUNITY = TCPCON.world)(PROTOCOL = TCP)(Host = gpsorp39.corporate.ge.com)(Port = 1521))) - (CONNECT_DATA = (SID = gpsorp39))) - -# changed from SERVICE_NAME to SID 6/23/11 jaf -ICEF_P92, ICEF_P92.ae.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 3.58.24.59)(PORT = 1521))) - (CONNECT_DATA = (SID = ICEF_P92))) -#--------------------- -# 960876 -onepgs_onsite = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = T10022410.psamer.ps.ge.com)(PORT = 1521)) - (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl))) -#-------------------- -# 972147 -edxplmd1, edxplmd1.ae.ge.com, edxplmd1.energy.ge.com, edxplmd1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = edxplmd1.tsg.ge.com)(PORT = 1555))) - (CONNECT_DATA =(sid = edxplmd1))) -#-------------------- -# 962906 -gpsntr11, gpsntr11.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gpsntr11.tsg.ge.com)(PORT=1611))(CONNECT_DATA=(SID=gpsntr11))) - -gpsnsx11, gpsnsx11.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gpsnsx11.tsg.ge.com)(PORT=1543))(CONNECT_DATA=(SID=gpsnsx11))) -#-------------------- -# 967443 -gpsogu49, gpsogu49.tsg.ge.com = - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=rs15edp.np.ge.com)(PORT=1618)) - (CONNECT_DATA=(SERVICE_NAME=gpsogu49.np.ge.com)(INSTANCE_NAME=gpsogu4915))) -#=================================================================== -# additions 5/17/11 jaf -# 975253 -etpgvlq1,etpgvlq1.tsg.ge.com,etpgvlq1.energy.ge.com= #new - (description=(address=(protocol=tcp)(host= etpgvlq1.tsg.ge.com)(port=1534))(connect_data=(sid= etpgvlq1))) -#----------------------- -# 972894 -MXPRDT_TNWP05237 = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = tnwp05237)(PORT = 1521))) - (CONNECT_DATA = (SID = mxprdt)(SERVER = DEDICATED))) -#---------------------- -#===================================================================== -# additions 5/18/11 jaf -# 977375 -erpg2d, ERPG2D.tsg.ge.com = - (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=erg2dsg.appl.ge.com) (PORT=1561)) - (CONNECT_DATA=(SID=ERPG2D))) -#------------------------ -# 975535 -gpsgneg1, gpsgneg1.energy.ge.com= - (DESCRIPTION= - (ADDRESS=(PROTOCOL=tcp)(HOST=gpsgneg1.tsg.ge.com)(PORT=1557)) - (CONNECT_DATA= (SID=gpsgneg1))) -#===================================================================== -# additions 5/24/jaf -## 979301 -TSPRIVD, tsprivd.tsg.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = tsprivd))) -#--------------------------- -# 979583 -TSMSAFD, tsmsafd.tsg.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = tsmsafd))) -#-------------------------- -# 979605 -TSMSAFS, tsmsafs.tsg.ge.com = - (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = tsmsafs))) -#-------------------------- -# 980574 -TSOAPSD1-CORP, TSOAPSD1-CORP.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrndbd41-vip.trans.ge.com)(PORT = 1556)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrndbd42-vip.trans.ge.com)(PORT = 1556)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrndbd43-vip.trans.ge.com)(PORT = 1556)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = TSOAPSD1))) - -TSOADEV1-CORP, TSOADEV1-CORP.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrndbd43-vip.trans.ge.com)(PORT = 1551)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrndbd42-vip.trans.ge.com)(PORT = 1551)) - (ADDRESS = (PROTOCOL = TCP)(HOST =alptrndbd41-vip.trans.ge.com)(PORT = 1551)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = TSOADEV1))) -#------------------------------- -# 980983 -etxplmd1, etxplmd1.ae.ge.com, etxplmd1.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = etxplmd1.tsg.ge.com)(PORT = 1556))) - (CONNECT_DATA =(sid = etxplmd1))) -#------------------------------ -# 977100 -cordadev = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = usatlssgcordadev01.nms.dev.ps.ge.com)(PORT =1521))) - (CONNECT_DATA = (SID = corda))) - -corda = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = usatlssgcorda.nms.dev.ps.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = corda))) -#================================================================================== -# 6/9/11 additions - jaf -# 988246 -xwhebip1,xwhebip1.tsg.ge.com,xwhebip1.energy.ge.com= - (description=(address=(protocol=tcp)(host=xwhebip1.tsg.ge.com)(port=1533)) - (connect_data=(sid=xwhebip1))) -#------------------------------------- -# 986748 -erpeseu1, erpeseu1.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=erpeseu1.tsg.ge.com)(PORT=1616)) - (CONNECT_DATA=(SID=erpeseu1))) -#------------------------------------- -# 984982 -gpsird40, gpsird40.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gpsird40.tsg.ge.com)(PORT=1620)) - (CONNECT_DATA=(SID=gpsird40))) - -gpsamd79, gpsamd79.tsg.ge.com = - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gpsamd79.tsg.ge.com)(PORT=1575)) - (CONNECT_DATA=(SID=gpsamd79))) -#===================================================================================== -# additions 6/16/2011 - these are for new On Demand database system -anoold01,anoold01.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold01.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold01))) -anoold03,anoold03.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold03.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold03))) -anoold04,anoold04.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold04.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold04))) -anoold05,anoold05.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold05.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold05))) -anoold06,anoold06.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold06.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold06))) -anoold07,anoold07.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold07.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold07))) -anoold08,anoold08.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold08.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold08))) -anoold09,anoold09.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold09.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold09))) -anoold10,anoold10.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold10.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold10))) -anoold11,anoold11.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold11.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold11))) -anoold12,anoold12.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold12.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold12))) -anoold13,anoold13.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold13.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold13))) -anoold14,anoold14.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold14.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold14))) -anoold15,anoold15.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold15.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold15))) -anoold16,anoold16.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold16.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold16))) -anoold17,anoold17.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold17.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold17))) -anoold18,anoold18.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold18.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold18))) -anoold19,anoold19.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold19.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold19))) -anoold20,anoold20.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = anoold20.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = anoold20))) -enoold01,enoold01.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold01.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold01))) -enoold02,enoold02.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold02.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold02))) -enoold03,enoold03.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold03.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold03))) -enoold04,enoold04.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold04.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold04))) -enoold05,enoold05.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold05.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold05))) -enoold06,enoold06.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold06.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold06))) -enoold07,enoold07.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold07.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold07))) -enoold08,enoold08.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold08.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold08))) -enoold09,enoold09.tsg.ge.com - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold09.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold09))) -enoold10,enoold10.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold10.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold10))) -enoold11,enoold11.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold11.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold11))) -enoold12,enoold12.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold12.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold12))) -enoold13,enoold13.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold13.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold13))) -enoold14,enoold14.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold14.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold14))) -enoold15,enoold15.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold15.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold15))) -enoold16,enoold16.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold16.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold16))) -enoold17,enoold17.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold17.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold17))) -enoold18,enoold18.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold18.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold18))) -enoold19,enoold19.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold19.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold19))) -enoold20,enoold20.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = enoold20.tsg.ge.com)(PORT = 1522))) (CONNECT_DATA =(sid = enoold20))) -#----------------------------------------------------------------------- -# new additions 6/21/11 jaf -# -# per g Rieder -gpsore65, gpsore65.corporate.ge.com, gpsore65.energy.ge.com, gpsore65.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora65.corporate.ge.com)(PORT = 1521))) - (CONNECT_DATA = (SID = gpsore65))) -#--- -gpsorm65, gpsorm65.corporate.ge.com, gpsorm65.energy.ge.com, gpsorm65.tsg.ge.com = - (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = gpsora65.corporate.ge.com)(PORT = 1526))) - (CONNECT_DATA = (SID = gpsorm65))) -#-------------------------------------------------- -#998574 -TROLTPD, TROLTPD.TSG.GE.COM = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = troltpd))) -#------------------------------------------ -#995381 -arpsysc1= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=arpsysc1.tsg.ge.com)(PORT=1529)) - (CONNECT_DATA=(SERVICE_NAME=arpsysc1)(INSTANCE_NAME=arpsysc1))) - -arpsysc2= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=arpsysc2.tsg.ge.com)(PORT=1531)) - (CONNECT_DATA= (SERVICE_NAME=arpsysc2)(INSTANCE_NAME=arpsysc2))) - -arpsysb1= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=arpsysb1.tsg.ge.com)(PORT=1528)) - (CONNECT_DATA=(SERVICE_NAME=arpsysb1)(INSTANCE_NAME=arpsysb1))) - -arpsysb2= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=arpsysb2.tsg.ge.com)(PORT=1531)) - (CONNECT_DATA= (SERVICE_NAME=arpsysb2)(INSTANCE_NAME=arpsysb2))) - -arpsyse1= - (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=arpsyse1.tsg.ge.com)(PORT=1560)) - (CONNECT_DATA=(SID=arpsyse1))) - -arpsysx1= - (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=arpsysx1.tsg.ge.com)(PORT=1531)) - (CONNECT_DATA=(SID=arpsysx1))) -#================================================================== -# additions 7/12/11 jaf -# -# #1002326 -TSCQD, tscqd.tsg.ge.com = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.58)(PORT = 1521)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.59)(PORT = 1521)) - (LOAD_BALANCE = yes) - (CONNECT_DATA = (SERVICE_NAME = tscqd))) -#-------------------------- -#1006118 -eueoltq9, eueoltq9.tsg.ge.com, eueoltq9.energy.ge.com= - (description=(address=(protocol=tcp)(host=eueoltq9.tsg.ge.com)(port=1531))(connect_data=(sid=eueoltq9))) -#-------------------------- -#==================================================================== -# additions 7/14/11 jaf -# -#1013604 -TSMSAFP1, TSMSAFP1.TRANS.GE.COM = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.51)(PORT = 1531)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.52)(PORT = 1531)) - (ADDRESS = (PROTOCOL = TCP)(HOST =3.239.52.53)(PORT = 1531)) - (LOAD_BALANCE = yes) - (CONNECT_DATA =(SERVICE_NAME = TSMSAFP))) -# -#====================================================================== -# additions 7/19/11 jaf -#1018123 -gldp, gldp.tsg.ge.com = - (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (Host = cihcispdb031.corporate.ge.com) (Port = 1766)) - (CONNECT_DATA = (SID = gldr1))) -#===================================================================== diff --git a/playbook/preinstall/postppkg.json b/playbook/preinstall/postppkg.json new file mode 100644 index 0000000..b121779 --- /dev/null +++ b/playbook/preinstall/postppkg.json @@ -0,0 +1,13 @@ +{ + "Version": "1.0", + "_comment": "Site app list, installed after the post-PPKG reboot (once, as SYSTEM). Empty by default. Add one object per app to Applications and put its installer under pre-install/installers// on the PXE server (enrollment share). See docs/kb/How_To_Deploy_PXE_Server_New_Site.html, 'Adding shopfloor apps'.", + "_example": { + "Name": "Example App 1.2", + "Installer": "exampleapp\\ExampleApp.msi", + "Type": "MSI", + "InstallArgs": "/qn /norestart", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{00000000-0000-0000-0000-000000000000}" + }, + "Applications": [] +} diff --git a/playbook/preinstall/preinstall.json b/playbook/preinstall/preinstall.json index faa6ee3..9fd005d 100644 --- a/playbook/preinstall/preinstall.json +++ b/playbook/preinstall/preinstall.json @@ -1,245 +1,13 @@ { "Version": "1.0", - "Site": "West Jefferson", - "Applications": [ - { - "_comment": "PowerShell 7.5.4 - installed BEFORE PPKG via FlatUnattendW10-shopfloor.xml FirstLogonCommand Order 6 (race fix: Intune SetupCredentials Win32App install command starts with pwsh.exe; if PS7 not yet installed when that Win32App fires, it errors with FILE_NOT_FOUND 0x80070002 and IME's GRS retry never re-fires under V3Processor). This entry is a backstop - no-op via ProductCode detection if unattend Order 6 already installed it. PreEnrollment flag is informational; runner does not currently filter on it.", - "Name": "PowerShell 7.5.4", - "Installer": "powershell7\\PowerShell-7.5.4-win-x64.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ADD_PATH=1 USE_MU=0 ENABLE_MU=0 DISABLE_TELEMETRY=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{E8159677-ACF8-4D64-9D36-5C36B8BBEA39}", - "PreEnrollment": true, - "PCTypes": ["*"] - }, - { - "_comment": "Oracle Client 11.2 Administrator - installed first because downstream apps (eDNC/NTLARS/UDC and CMM tooling) link against the Oracle home and fail cold if it's missing. Installer is a .cmd wrapper (Type=EXE is the preinstall runner's shim for non-MSI launchers, same pattern as OpenText Setup-OpenText.cmd). The wrapper expects Oracle_OracleDatabase_11r2_V03.zip (686 MB) staged next to it, unpacks to %TEMP%, runs Oracle Universal Installer silently with ge_client_install.rsp, then cleans up the staging dir. OUI exit 3 is treated as success (warnings-but-ok). Detection via the registered home key; downstream upgrades or version pins are handled by the runtime enforcer's Oracle Client 11.2 manifest entry in common/manifest.json. Scoped to the DNC-bearing PC types (collections, nocollections, partmarker, heattreat) plus CMM, whose metrology tooling links the Oracle home; non-DNC types (Genspect, Keyence, WaxAndTrace, Display, Timeclock, Lab) do not get it.", - "Name": "Oracle Client 11.2", - "Installer": "oracle\\Install-Oracle11r2.cmd", - "Type": "EXE", - "InstallArgs": "", - "LogFile": "C:\\Logs\\OracleClient\\install.log", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Oracle\\KEY_OraClient11g_home1", - "DetectionName": "ORACLE_HOME_NAME", - "DetectionValue": "OraClient11g_home1", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-partmarker", "gea-shopfloor-heattreat", "gea-shopfloor-cmm"] - }, - { - "_comment": "VC++ 2008 SP1 x86 - the bootstrapper (vcredist2008_x86.exe) ignores /norestart and triggers an immediate Windows reboot when files are in use (per Aaron Stebner's MSDN docs). Fix: install the extracted vc_red.msi directly with REBOOT=ReallySuppress, which IS hard-honored by Windows Installer. msiexec may return 3010 (would-have-rebooted-but-suppressed) but won't actually reboot. cab name 'vc_red.cab' is hardcoded in the MSI's Media table - do not rename.", - "Name": "VC++ Redistributable 2008 x86", - "Installer": "vcredist/2008/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9BE518E6-ECC6-35A9-88E4-87755C07200F}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2010 x86 - same fix as 2008. Bootstrapper ignores /norestart; extracted MSI with REBOOT=ReallySuppress does not.", - "Name": "VC++ Redistributable 2010 x86", - "Installer": "vcredist/2010/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2012 x86 Minimum Runtime - extracted from vcredist2012_x86.exe Burn bundle. Same REBOOT=ReallySuppress fix.", - "Name": "VC++ Redistributable 2012 x86 (Minimum)", - "Installer": "vcredist/2012-min/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{BD95A8CD-1D9F-35AD-981A-3E7925026EBB}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "Name": "VC++ Redistributable 2012 x86 (Additional)", - "Installer": "vcredist/2012-add/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{B175520C-86A2-35A7-8619-86DC379688B9}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2013 x86 Minimum Runtime - extracted from vcredist2013_x86.exe Burn bundle.", - "Name": "VC++ Redistributable 2013 x86 (Minimum)", - "Installer": "vcredist/2013-min/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "Name": "VC++ Redistributable 2013 x86 (Additional)", - "Installer": "vcredist/2013-add/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F8CFEB22-A2E7-3971-9EDA-4B11EDEFC185}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2013 x64 Minimum Runtime - required by Keyence VR-6000 Series Software. Extracted from the Keyence installer's Windows Installer cache. Same REBOOT=ReallySuppress pattern as the x86 variants.", - "Name": "VC++ Redistributable 2013 x64 (Minimum)", - "Installer": "vcredist/2013-x64-min/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{A749D8E6-B613-3BE3-8F5F-045C84EBA29B}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2013 x64 Additional Runtime - required by Keyence VR-6000 Series Software. Pairs with the Minimum Runtime above.", - "Name": "VC++ Redistributable 2013 x64 (Additional)", - "Installer": "vcredist/2013-x64-add/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{929FBD26-9020-399B-9A7A-751D61F0B942}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2010 x64 - required by PC-DMIS 2016/2019 R2 on CMM PCs. PCDLRN.exe links against msvcr100.dll and the VS 2010 MFC DLLs which are only provided by this redistributable. Extracted from the PC-DMIS 2016 bundle's attached container (a1 payload). Silent install: /q /norestart. Detection: Uninstall key under the native x64 hive with fixed product GUID.", - "Name": "VC++ Redistributable 2010 x64", - "Installer": "vcredist/2010-x64/vcredist_x64.exe", - "Type": "EXE", - "InstallArgs": "/q /norestart", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{1D8E6291-B0D5-35EC-8441-6616F567A0F7}", - "DetectionName": "DisplayVersion", - "DetectionValue": "10.0.40219", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2012 x64 - required by PC-DMIS 2016/2019 R2. Same rationale as 2010 x64; PC-DMIS links against msvcr110.dll / MFC110. Extracted from the PC-DMIS 2016 bundle's attached container (a2 payload). Detection on the Minimum Runtime GUID (the main redist wrapper installs both Minimum and Additional sub-packages).", - "Name": "VC++ Redistributable 2012 x64", - "Installer": "vcredist/2012-x64/vcredist_x64.exe", - "Type": "EXE", - "InstallArgs": "/q /norestart", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5AF4E09F-5C9B-3AAF-B731-544D3DC821DD}", - "DetectionName": "DisplayVersion", - "DetectionValue": "11.0.51106", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2015-2022 x86 - extracted from vcredist2015_2017_2019_2022_x86.exe Burn bundle. The bundle contains 2022 14.44.35211 plus 8 chained KB updates for older 2015/2017/2019 releases. We install only the 2022 Min+Add MSIs - the CRT v140 ABI is shared across 2015/2017/2019/2022, so the latest pair covers all four versions on Windows 10/11.", - "Name": "VC++ Redistributable 2022 x86 (Minimum)", - "Installer": "vcredist/2022-min/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{922480B5-CAEB-4B1B-AAA4-9716EFDCE26B}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "Name": "VC++ Redistributable 2022 x86 (Additional)", - "Installer": "vcredist/2022-add/installer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart REBOOT=ReallySuppress NOVSUI=1 USING_EXUIH_SILENT=1", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C18FB403-1E88-43C8-AD8A-CED50F23DE8B}", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "VC++ 2015-2022 x64 - required by PC-DMIS 2026 (PCDLRN.exe links vcruntime140_1.dll, added in VC++ 2019 / v14.20). The x64 redist line above previously stopped at 2013, so 64-bit PC-DMIS 2026 was missing its runtime and PCDLRN.exe failed to start with 'vcruntime140_1.dll was not found'. The patched PC-DMIS MSI bypasses Hexagon's Burn bundle, which is what would otherwise have pulled this in. Full vc_redist.x64.exe (14.44.35211, 2015-2022 shared CRT). Modern bootstrapper honors /norestart. Detect on the DLL itself so it is version-independent.", - "Name": "VC++ Redistributable 2015-2022 x64", - "Installer": "vcredist/2022-x64/vc_redist.x64.exe", - "Type": "EXE", - "InstallArgs": "/install /quiet /norestart", - "DetectionMethod": "File", - "DetectionPath": "C:\\Windows\\System32\\vcruntime140_1.dll", - "PCTypes": ["*"] - }, - { - "_comment": "Adobe Acrobat Reader DC - same version as GEA-Engineering image. Two-step install via Install-AcroReader.cmd wrapper: base MSI with enterprise transform (AcroRead.mst) then DC update patch (AcroRdrDCUpd2500120531.msp). Source files on PXE server at /srv/samba/winpeapps/gea-engineer/Deploy/Applications/extra/adobe/ - copy to /srv/samba/enrollment/preinstall/installers/adobe/.", - "Name": "Adobe Acrobat Reader DC", - "Installer": "adobe\\Install-AcroReader.cmd", - "Type": "EXE", - "InstallArgs": "", - "DetectionMethod": "File", - "DetectionPath": "C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader\\AcroRd32.exe", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "OpenText HostExplorer 15 SP1 ShopFloor - replaced the WJDT-built OpenText.exe Inno wrapper with our own Setup-OpenText.ps1 that does the same install steps (msiexec base + ShopFloor.mst transform + SP1 .msp patch) PLUS fans the per-user profile/keymap/menu/macro content out to Default User and every existing user profile. The Inno wrapper deployed per-user content to {userappdata} which resolves to whichever user is running the installer (SYSTEM under DSC, single user under PreInstall) so Azure-AD users never saw the profiles. Setup-OpenText.cmd is a tiny launcher that hands off to Setup-OpenText.ps1 because the runner only handles MSI/EXE types. All bundled files live in vcredist-style subtree at dependencies/opentext/ and get xcopied through WinPE staging. NO DetectionMethod here on purpose - Setup-OpenText.ps1 owns its own version check by reading version.txt next to itself and comparing to HKLM:\\SOFTWARE\\GE\\OpenText\\Installed; the runner always invokes the wrapper (cost: ~1s of PowerShell launch when up-to-date) so the version constant lives in exactly one place: dependencies/opentext/version.txt.", - "Name": "OpenText HostExplorer ShopFloor", - "Installer": "opentext\\Setup-OpenText.cmd", - "Type": "EXE", - "InstallArgs": "", - "LogFile": "C:\\Logs\\PreInstall\\Setup-OpenText.log", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "UDC_Setup.exe spawns a hidden WPF window (UDC.exe) after install and never exits, so the runner needs KillAfterDetection: true to terminate UDC_Setup.exe + UDC.exe once the registry detection passes. This is an OPT-IN flag - normal installers should NOT set it because killing msiexec mid-install leaves msiserver holding the install mutex and the next msiexec call returns 1618 (Oracle hit this exact bug).", - "Name": "UDC", - "Installer": "UDC_Setup.exe", - "Type": "EXE", - "InstallArgs": "\"West Jefferson\" -9999", - "KillAfterDetection": true, - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\UDC", - "PCTypes": ["gea-shopfloor-collections"], - "PCTypesStrict": true, - "_pcTypesNote": "UDC = the C in 'collections'. nocollections does NOT collect data so MUST NOT install UDC. PCTypesStrict bypasses the alias-expansion matcher so a nocollections PC's myNames (which transitively contains gea-shopfloor-collections via the Standard group) still won't match this entry." - }, - { - "_comment": "Display kiosk app (Lobby Display or Dashboard). Install-KioskApp.cmd wrapper reads C:\\Enrollment\\display-type.txt to determine which installer to run. Both GEAerospaceLobbyDisplaySetup.exe and GEAerospaceDashboardSetup.exe must be staged in the display\\ subtree alongside the wrapper. Inno Setup /VERYSILENT is idempotent so no detection needed.", - "Name": "Display Kiosk App", - "Installer": "display\\Install-KioskApp.cmd", - "Type": "EXE", - "InstallArgs": "", - "LogFile": "C:\\Logs\\PreInstall\\Dashboard-install.log", - "PCTypes": ["Display"] - }, - { - "_comment": "WJF Defect Tracker - replaces old ClickOnce deployment. MSI creates desktop + Start Menu shortcuts. Enforcer on SFLD share handles version updates post-imaging. TARGETDIR explicit because VS deployment MSI defaults to random path without it.", - "Name": "WJF Defect Tracker", - "Installer": "WJF_Defect_Tracker.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TARGETDIR=\"C:\\Program Files (x86)\\WJF_Defect_Tracker\"", - "DetectionMethod": "File", - "DetectionPath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "Shopfloor Standard serial-port drivers: StarTech PCIe serial adapter (MosChip-based) + Prolific PL2303 USB-to-serial. Install-Drivers.cmd runs pnputil /add-driver with /subdirs /install so every bundled INF under drivers/ lands in the Windows driver store and auto-binds to matching hardware present now or plugged in later. Installed on every PC type (PCTypes ['*']) because serial hardware turns up across bays; a serial driver on a PC without the hardware is harmless - it just sits in the driver store until matching hardware is plugged in.", - "Name": "Shopfloor Serial Drivers", - "Installer": "drivers\\Install-Drivers.cmd", - "Type": "EXE", - "InstallArgs": "", - "LogFile": "C:\\Logs\\PreInstall\\Install-Drivers.log", - "DetectionMethod": "File", - "DetectionPath": "C:\\ProgramData\\PXEDrivers\\drivers-installed.marker", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "HP universal print driver, staged at imaging so a bay comes off the line able to build an HP queue without waiting on the SFLD share. Set-ShopdbPrinters.ps1 creates queues against drivers that are already present and SKIPS any that are not, so without this a freshly imaged bay silently gets no printers until a later enforcement cycle tops it up. NO WAVE GATE HERE, deliberately: waves exist because ~300 bays share one runtime share, whereas imaging runs a handful of bays at a time on the isolated PXE LAN that already moves multi-GB WIMs. Detection is the SPOOLER's driver key, not pnputil - pnputil only proves the package reached the driver store, and Get-PrinterDriver (what Set-ShopdbPrinters consults) reads the spooler, so a pnputil check goes green on a half-install. Payload is NOT in git: stage printer-drivers/ onto the PXE share like the other installer payloads.", - "Name": "ShopDB Printer Driver - HP Universal PS", - "Installer": "printer-drivers\\Install-ShopdbPrinterDrivers.ps1", - "Type": "PS1", - "InstallArgs": "-Only 'HP Universal Printing PS'", - "LogFile": "C:\\Logs\\PreInstall\\printer-drivers.log", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Print\\Environments\\Windows x64\\Drivers\\Version-3\\HP Universal Printing PS", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - }, - { - "_comment": "Xerox universal print driver. Same reasoning as the HP entry above. These two universals are 100 MB combined and resolve the overwhelming majority of the fleet's printers; the four device-specific drivers (DesignJet, Zebra ZT411, Epson C3500, FARGO card printer) are another 126 MB and are deliberately NOT staged at imaging - they belong only on the bays that have that hardware, and those bays pick them up from the runtime manifest on their next enforcement cycle.", - "Name": "ShopDB Printer Driver - Xerox Global PCL6", - "Installer": "printer-drivers\\Install-ShopdbPrinterDrivers.ps1", - "Type": "PS1", - "InstallArgs": "-Only 'Xerox Global Print Driver PCL6'", - "LogFile": "C:\\Logs\\PreInstall\\printer-drivers.log", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Print\\Environments\\Windows x64\\Drivers\\Version-3\\Xerox Global Print Driver PCL6", - "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-common", "gea-shopfloor-cmm", "gea-shopfloor-genspect", "gea-shopfloor-heattreat", "gea-shopfloor-keyence", "gea-shopfloor-partmarker", "gea-shopfloor-waxtrace"] - } - ] + "_comment": "Site app list, installed during setup (same logon as the PPKG, before the post-PPKG reboot). Empty by default. Add one object per app to Applications and put its installer under pre-install/installers// on the PXE server (enrollment share). See docs/kb/How_To_Deploy_PXE_Server_New_Site.html, 'Adding shopfloor apps'.", + "_example": { + "Name": "Example App 1.2", + "Installer": "exampleapp\\ExampleApp.msi", + "Type": "MSI", + "InstallArgs": "/qn /norestart", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{00000000-0000-0000-0000-000000000000}" + }, + "Applications": [] } diff --git a/playbook/pxe-server-helpers/pxe-nic-check b/playbook/pxe-server-helpers/pxe-nic-check index 0cb8469..c5838a3 100755 --- a/playbook/pxe-server-helpers/pxe-nic-check +++ b/playbook/pxe-server-helpers/pxe-nic-check @@ -164,7 +164,7 @@ def parse_suffixes(text): def domain_matches(domain, suffixes): - """Whole-label suffix match: wjs.geaerospace.net and geaerospace.net + """Whole-label suffix match: site.geaerospace.net and geaerospace.net match geaerospace.net; notgeaerospace.net does not.""" d = (domain or "").strip().strip(".").lower() if not d: diff --git a/playbook/pxe_server_setup.yml b/playbook/pxe_server_setup.yml index bc65e0c..e4c4901 100644 --- a/playbook/pxe_server_setup.yml +++ b/playbook/pxe_server_setup.yml @@ -69,9 +69,8 @@ # Zscaler Root CA: GE's Zscaler re-signs GitHub TLS, so the iPXE update # check fails without it. Repo copy first, else the copy on the image share. zscaler_ca_src: "{{ playbook_dir }}/certs/zscaler-root-ca.crt" - # _media/ links the base image's entries, so also look in the - # image roots (on a rebuild the _media views may not exist yet). - zscaler_ca_share_glob: "{{ samba_share }}/_media/*/Deploy/Applications/ZscalerCommercialCertificate-2048-SHA256.crt {{ samba_share }}/gea-*/Deploy/Applications/ZscalerCommercialCertificate-2048-SHA256.crt" + # The copy the playbook puts in every image (Deploy/Applications). + zscaler_ca_share_glob: "{{ samba_share }}/gea-*/Deploy/Applications/ZscalerCommercialCertificate-2048-SHA256.crt" # --- The two NICs (site standard) --- # The imaging NIC (isolated imaging LAN, static pxe_server_ip, the ONLY # NIC that serves DHCP/TFTP/HTTP boot/SMB) is pinned by MAC. Leave @@ -119,7 +118,7 @@ pxe_imaging_mac: "{{ pxe_nic_mac }}" pxe_ge_mac: "{{ corp_nic_mac }}" # A foreign DHCP server handing out one of these domains (whole labels: - # wjs.geaerospace.net matches, notgeaerospace.net does not) = GE network. + # site.geaerospace.net matches, notgeaerospace.net does not) = GE network. pxe_corp_domain_suffixes: "geaerospace.net, ge.com" # Only if the IMAGING switch is itself managed and sends LLDP/CDP: its # LLDP system name / CDP device id / chassis MAC, comma separated, so @@ -145,7 +144,7 @@ # Who may reach SSH and the webapp (9009, no login, runs as root) on the # GE corporate NIC. Empty (the default) = all of GE, as before, with a # loud warning every run. Set to the admin subnets/hosts, e.g. - # ["10.134.48.0/24", "3.12.34.56/32"]: UFW then allows 22 and 9009 on + # ["10.12.34.0/24", "10.12.40.5/32"]: UFW then allows 22 and 9009 on # the corp NIC from these only. The play refuses to restrict if your own # SSH session is not inside one of them. See docs/SITE-CUSTOMIZATION.md. corp_admin_cidrs: [] @@ -200,6 +199,19 @@ # letters, digits . _ ~ - (it sits in a URI, a kernel command line and # a mount option list), 8 to 64 of them. clonezilla_smb_password: "clonezilla-backup" + # The site, as stamped on Blancco erasure reports and the monthly CMMC + # evidence packs (webapp BLANCCO_SITE). Empty: "Unnamed site", so a + # missing name shows instead of another site's. Letters, digits, spaces + # and . , - ( ) & / only (it goes into a systemd unit). + site_name: "" + # Time zone of the server clock and of every time the webapp shows + # (evidence-pack month boundaries included). A tz database name. + site_timezone: "America/New_York" + # Wi-Fi Blancco joins to license erasures in the GE Blancco cloud (the + # imaging LAN has no internet). The SSID is GE-wide; the password can + # differ per site. Empty password: Blancco cannot license (warned). + blancco_wifi_ssid: "INTERNETACCESS" + blancco_wifi_password: "" image_types: - gea-standard - gea-engineer @@ -318,6 +330,32 @@ Fix playbook/site-vars.yml and re-run. quiet: yes + - name: "Site: check site_name and site_timezone" + assert: + that: + - site_name is string + - site_name | length == 0 or site_name is match('^[A-Za-z0-9 .,()&/-]{1,60}$') + - site_timezone is match('^[A-Za-z0-9_+/-]{1,64}$') + - ('/usr/share/zoneinfo/' ~ site_timezone) is file + fail_msg: >- + site_name must be up to 60 characters from letters, digits, spaces + and . , - ( ) & / (no quotes); site_timezone a time zone name such + as America/New_York, Europe/London or Asia/Kolkata. Now: + site_name='{{ site_name }}' site_timezone='{{ site_timezone }}'. + quiet: yes + + - name: "Site: WARNING, site_name is not set" + debug: + msg: + - "!!! site_name is empty: Blancco erasure reports and the monthly evidence" + - "!!! packs will say 'Unnamed site'. Set site_name in playbook/site-vars.yml." + when: site_name | length == 0 + + - name: "Site: set the time zone" + command: timedatectl set-timezone {{ site_timezone }} + register: tz_set + changed_when: false + - name: "Clonezilla: check the clonezilla Samba password" assert: that: @@ -1040,8 +1078,6 @@ - pre-install - pre-install/bios - pre-install/installers - - installers-post - - installers-post/cmm - blancco - logs @@ -1054,10 +1090,9 @@ Single SMB share mounted by WinPE as Y: during imaging. Subdir layout: - ppkgs/ GCCH bulk-enrollment PPKGs - scripts/ run-enrollment.ps1, wait-for-internet.ps1, migrate-to-wifi.ps1 - - config/ site-config.json, FlatUnattendW10*.xml, per-site overrides - - shopfloor-setup/ Per-PC-type post-imaging scripts - - pre-install/ WinPE-phase content (bios/, installers/, preinstall.json) - - installers-post/ Post-OOBE app installers (cmm/PCDMIS, etc.) + - config/ FlatUnattendW10*.xml, per-site overrides + - shopfloor-setup/ Shopfloor setup scripts (gea-shopfloor-standard) + - pre-install/ preinstall.json + postppkg.json (site app lists) and installers/ - blancco/ Blancco custom images / configs - logs/ Client log uploads @@ -1089,13 +1124,6 @@ - { src: "{{ usb_mount }}/winpe-status-push.ps1", dest: "winpe-status-push.ps1" } ignore_errors: yes - - name: "Deploy site-config.json to config/" - copy: - src: "{{ usb_mount }}/shopfloor-setup/site-config.json" - dest: /srv/samba/enrollment/config/site-config.json - mode: '0644' - ignore_errors: yes - - name: "Deploy Dell driver packs to shared Out-of-box Drivers" args: executable: /bin/bash @@ -1138,54 +1166,31 @@ register: shopfloor_rsync changed_when: shopfloor_rsync.stdout | trim | length > 0 and 'SKIP:' not in shopfloor_rsync.stdout - - name: "Deploy preinstall.json to pre-install/" + # The site app lists (both empty in the generic build). force: no - once + # a site has filled in its lists on the share, a playbook re-run must not + # put the empty templates back. + - name: "Deploy the site app lists to pre-install/ (only if missing)" copy: - src: "{{ usb_mount }}/preinstall/preinstall.json" - dest: /srv/samba/enrollment/pre-install/preinstall.json + src: "{{ usb_mount }}/preinstall/{{ item }}" + dest: "/srv/samba/enrollment/pre-install/{{ item }}" mode: '0644' - ignore_errors: yes + force: no + loop: [preinstall.json, postppkg.json] - # Oracle Client 11.2 is the first app the preinstall runner executes, so it - # has to be present on-disk before the first client images. The 686 MB - # Oracle_OracleDatabase_11r2_V03.zip doesn't belong in git; it rides on the - # USB under oracle/ alongside the BIOS exes. Install-Oracle11r2.cmd is - # tracked at playbook/preinstall/oracle/ and arrives via usb_mount. - - name: "Create pre-install/installers/oracle/ staging dir" - file: - path: /srv/samba/enrollment/pre-install/installers/oracle - state: directory - mode: '0755' - ignore_errors: yes - - - name: "Deploy Install-Oracle11r2.cmd to pre-install/installers/oracle/" - copy: - src: "{{ usb_mount }}/preinstall/oracle/Install-Oracle11r2.cmd" - dest: /srv/samba/enrollment/pre-install/installers/oracle/Install-Oracle11r2.cmd - mode: '0755' - ignore_errors: yes - - # Per-file overrides for the .ora config dropped by the wrapper post-install. - # The zip's client/ora/ contains dated defaults; shipping an updated - # tnsnames.ora alongside the wrapper lets us refresh the DB catalog without - # repackaging the 686 MB zip. sqlnet.ora and ldap.ora can be added here the - # same way if they ever need to diverge from the zip's bundled copies. - - name: "Deploy updated tnsnames.ora override to pre-install/installers/oracle/" - copy: - src: "{{ usb_mount }}/preinstall/oracle/tnsnames.ora" - dest: /srv/samba/enrollment/pre-install/installers/oracle/tnsnames.ora - mode: '0644' - ignore_errors: yes - - - name: "Deploy Oracle 11.2 zip (686 MB) from USB to pre-install/installers/oracle/" - shell: > - if [ -f "{{ usb_root }}/oracle/Oracle_OracleDatabase_11r2_V03.zip" ]; then - cp -f "{{ usb_root }}/oracle/Oracle_OracleDatabase_11r2_V03.zip" \ - /srv/samba/enrollment/pre-install/installers/oracle/ - echo "Deployed Oracle 11.2 zip ($(stat -c %s /srv/samba/enrollment/pre-install/installers/oracle/Oracle_OracleDatabase_11r2_V03.zip) bytes)" - else - echo "WARNING: {{ usb_root }}/oracle/Oracle_OracleDatabase_11r2_V03.zip not on USB - preinstall runner will fail on Oracle step until this file is staged at /srv/samba/enrollment/pre-install/installers/oracle/" - fi - ignore_errors: yes + # Installers the imaging flow needs (PowerShell 7, which the shopfloor + # unattend installs before the PPKG) plus any the site adds. Merge, no + # delete: a site's own installers on the share stay. + - name: "Deploy pre-install installers (PowerShell 7 MSI)" + shell: | + set -e + SRC="{{ usb_mount }}/preinstall/installers/" + [ -d "$SRC" ] || { echo "SKIP: no preinstall/installers on the USB"; exit 0; } + mkdir -p /srv/samba/enrollment/pre-install/installers + rsync -rlt -i --chmod=D0755,F0644 "$SRC" /srv/samba/enrollment/pre-install/installers/ + args: + executable: /bin/bash + register: preinstall_rsync + changed_when: preinstall_rsync.stdout | trim | length > 0 and 'SKIP:' not in preinstall_rsync.stdout - name: "Ensure winpeapps/_shared/BIOS directory exists" file: @@ -1977,10 +1982,15 @@ # Idempotent file copy (was bundled into the previous shell task with a # 'creates:' gate, so playbook re-runs never picked up edits to the # source XML - stale prefs survived deploys). - - name: "Deploy Blancco preferences.xml from playbook source" + # The repo's preferences carry no site values. They are installed as + # preferences.repo.xml; the served preferences.xml is rendered from it + # plus the site settings (business location, licensing Wi-Fi) by the + # webapp's services/blancco_prefs.py, after the webapp is installed + # below. The settings are edited on Updates > Blancco releases. + - name: "Deploy Blancco preferences (repo copy, no site values)" copy: src: "{{ usb_root }}/playbook/blancco-preferences.xml" - dest: "{{ web_root }}/blancco/preferences.xml" + dest: "{{ web_root }}/blancco/preferences.repo.xml" mode: '0644' # blancco-init.sh fetches this at boot and runs it as a service in the @@ -1991,18 +2001,6 @@ dest: "{{ web_root }}/blancco/blancco-progress.py" mode: '0644' - # Hard gate: blancco-init.sh in initramfs drops to shell if the served - # preferences.xml is malformed or missing the SMB target. Fail the - # playbook here too so the problem surfaces at deploy time, not at the - # next erasure attempt. - - name: "Validate deployed preferences.xml is well-formed + targets the right SMB share" - shell: | - set -e - python3 -c 'import xml.etree.ElementTree as ET; ET.parse("{{ web_root }}/blancco/preferences.xml")' - grep -q '{{ pxe_server_ip }}' "{{ web_root }}/blancco/preferences.xml" - grep -q 'blancco-reports' "{{ web_root }}/blancco/preferences.xml" - changed_when: false - - name: "Ensure Samba user for Blancco reports exists (idempotent)" shell: | id blancco >/dev/null 2>&1 || useradd -r -s /usr/sbin/nologin blancco @@ -2404,6 +2402,39 @@ register: webapp_wheels changed_when: webapp_wheels.stdout_lines | last | default('') == 'CHANGED' + # Blancco site settings: seeded from site-vars only while none exist + # (after that the webapp page owns them), then the served preferences.xml + # is rendered from preferences.repo.xml. Password via env, not argv. + - name: "Blancco: render preferences.xml with the site settings" + command: python3 -m services.blancco_prefs render --seed + args: + chdir: /opt/pxe-webapp + environment: + WEB_ROOT: "{{ web_root }}" + BLANCCO_SEED_LOCATION: "{{ site_name }}" + BLANCCO_SEED_SSID: "{{ blancco_wifi_ssid }}" + BLANCCO_SEED_PASSWORD: "{{ blancco_wifi_password }}" + no_log: true + register: blancco_render + changed_when: "'CHANGED' in blancco_render.stdout_lines" + + - name: "Blancco: render result" + debug: + msg: "{{ blancco_render.stdout_lines | select('search', 'CHANGED|WARNING|seeded') | list }}" + + # Hard gate: blancco-init.sh in initramfs drops to shell if the served + # preferences.xml is malformed or missing the SMB target. Fail the + # playbook here too so the problem surfaces at deploy time, not at the + # next erasure attempt. + - name: "Validate deployed preferences.xml is well-formed + targets the right SMB share" + shell: | + set -e + python3 -c 'import xml.etree.ElementTree as ET; ET.parse("{{ web_root }}/blancco/preferences.xml")' + grep -q '{{ pxe_server_ip }}' "{{ web_root }}/blancco/preferences.xml" + grep -q 'blancco-reports' "{{ web_root }}/blancco/preferences.xml" + grep -q '[^<]' "{{ web_root }}/blancco/preferences.xml" + changed_when: false + - name: "Create systemd service for PXE webapp" copy: dest: /etc/systemd/system/pxe-webapp.service @@ -2423,10 +2454,12 @@ Environment=ENROLLMENT_SHARE=/srv/samba/enrollment Environment=AUDIT_LOG=/var/log/pxe-webapp-audit.log # Lock TZ so report/backup mtimes and audit-log timestamps render - # in Eastern time regardless of how the host's /etc/localtime ends - # up. Without this, a Python process started before timedatectl - # finishes can cache UTC for its lifetime. - Environment=TZ=America/New_York + # in the site's time zone regardless of how the host's + # /etc/localtime ends up. Without this, a Python process started + # before timedatectl finishes can cache UTC for its lifetime. + Environment=TZ={{ site_timezone }} + Environment=DISPLAY_TZ={{ site_timezone }} + Environment="BLANCCO_SITE={{ site_name if site_name else 'Unnamed site' }}" ExecStart=/usr/bin/python3 app.py Restart=always RestartSec=5 @@ -2470,7 +2503,9 @@ Type=oneshot WorkingDirectory=/opt/pxe-webapp Environment=BLANCCO_REPORTS=/srv/samba/blancco-reports - Environment=TZ=America/New_York + Environment=TZ={{ site_timezone }} + Environment=DISPLAY_TZ={{ site_timezone }} + Environment="BLANCCO_SITE={{ site_name if site_name else 'Unnamed site' }}" ExecStart=/usr/bin/python3 /opt/pxe-webapp/blancco_evidence_monthly.py - name: pxe-blancco-evidence.timer content: | diff --git a/playbook/select-waxtrace-asset.ps1 b/playbook/select-waxtrace-asset.ps1 deleted file mode 100644 index 6393a35..0000000 --- a/playbook/select-waxtrace-asset.ps1 +++ /dev/null @@ -1,142 +0,0 @@ -# select-waxtrace-asset.ps1 - Arrow-key bay picker for wax/trace imaging. -# -# Reads bay-config.csv on the PXE share to build the menu of known bays. -# Falls back to INDEX.csv (cal-disc index) if bay-config.csv is missing. -# Operator picks with Up/Down arrows + Enter. Always appends an -# "Other (new bay)" option at the end for unlisted bays - selecting it -# falls back to a free-text prompt. -# -# Writes the chosen asset tag to $OutFile (one line, no trailing newline). -# startnet.cmd reads that file back into the MACHINENUM batch var. -# -# Runs in WinPE PowerShell. Win10/11 WinPE ships powershell.exe with -# System.Console.ReadKey support. Tested 2026-05-18. -# -# Exit codes: -# 0 = asset tag written to $OutFile -# 1 = user cancelled (Esc) - $OutFile not written -# 2 = no readable bay source AND no fallback entered - -param( - [string]$IndexPath = 'Y:\installers-post\waxtrace\bay-config.csv', - [Parameter(Mandatory=$true)][string]$OutFile -) - -$ErrorActionPreference = 'Continue' - -function Read-BayList { - param([string]$Path) - if (-not (Test-Path -LiteralPath $Path)) { return @() } - try { - $rows = @(Import-Csv -LiteralPath $Path) - # bay-config.csv has asset_tag,ftpak_version,model,user_id,hw_sn,hw_id,host,notes - # INDEX.csv (legacy) has asset_tag,unit_serial,probe_part,... - $isBayCfg = $rows.Count -gt 0 -and ($rows[0].PSObject.Properties.Name -contains 'ftpak_version') - return $rows | Sort-Object -Property asset_tag | ForEach-Object { - if ($isBayCfg) { - [PSCustomObject]@{ - asset_tag = $_.asset_tag - col1 = $_.ftpak_version - col2 = $_.model - col3 = $_.user_id - schema = 'bay-config' - } - } else { - [PSCustomObject]@{ - asset_tag = $_.asset_tag - col1 = $_.unit_serial - col2 = $_.probe_part - col3 = '' - schema = 'index' - } - } - } - } catch { - return @() - } -} - -function Show-Menu { - param([object[]]$Items, [int]$Selected, [string]$Title, [string]$Schema) - Clear-Host - Write-Host "" - Write-Host " ============================================================" - Write-Host " $Title" - Write-Host " ============================================================" - Write-Host "" - Write-Host " Up / Down arrows = navigate, Enter = select, Esc = cancel" - Write-Host "" - if ($Schema -eq 'bay-config') { - Write-Host (" {0,-10} {1,-8} {2,-10} {3}" -f 'ASSET','FTPAK','MODEL','USER ID') - Write-Host (" {0,-10} {1,-8} {2,-10} {3}" -f '-----','-----','-----','-------') - } else { - Write-Host (" {0,-10} {1,-14} {2}" -f 'ASSET','SERIAL','PROBE') - Write-Host (" {0,-10} {1,-14} {2}" -f '-----','------','-----') - } - for ($i = 0; $i -lt $Items.Count; $i++) { - $item = $Items[$i] - if ($item -is [string]) { - $line = $item - } elseif ($Schema -eq 'bay-config') { - $line = "{0,-10} {1,-8} {2,-10} {3}" -f $item.asset_tag, $item.col1, $item.col2, $item.col3 - } else { - $line = "{0,-10} {1,-14} {2}" -f $item.asset_tag, $item.col1, $item.col2 - } - if ($i -eq $Selected) { - Write-Host (" > " + $line) -ForegroundColor Black -BackgroundColor White - } else { - Write-Host (" " + $line) - } - } - Write-Host "" -} - -# Try bay-config.csv first; fall back to INDEX.csv if missing OR if the -# explicit -IndexPath argument points to INDEX.csv (legacy callers). -$bays = @(Read-BayList -Path $IndexPath) -if ($bays.Count -eq 0 -and $IndexPath -notmatch 'INDEX\.csv$') { - $fallback = 'Y:\installers-post\waxtrace\calibrations\INDEX.csv' - if (Test-Path -LiteralPath $fallback) { - Write-Host " (no bay-config.csv at $IndexPath - falling back to $fallback)" - $bays = @(Read-BayList -Path $fallback) - } -} -$schema = if ($bays.Count -gt 0) { $bays[0].schema } else { 'bay-config' } - -$menuItems = @() -foreach ($b in $bays) { $menuItems += $b } -$menuItems += '** Other (new bay - enter asset tag manually) **' - -$sel = 0 -while ($true) { - Show-Menu -Items $menuItems -Selected $sel -Title 'Wax/Trace Asset Tag' -Schema $schema - $key = [System.Console]::ReadKey($true) - switch ($key.Key) { - 'UpArrow' { if ($sel -gt 0) { $sel-- } } - 'DownArrow' { if ($sel -lt ($menuItems.Count - 1)) { $sel++ } } - 'Enter' { - if ($sel -eq ($menuItems.Count - 1)) { - Write-Host "" - $manual = Read-Host " Enter asset tag (e.g. WJRP9999) or blank to abort" - if ($manual) { - $manual = $manual.Trim().ToUpper() - Set-Content -LiteralPath $OutFile -Value $manual -NoNewline -Encoding ascii - Write-Host "" - Write-Host " Saved asset tag: $manual" - Start-Sleep -Seconds 1 - exit 0 - } else { - exit 1 - } - } else { - $pick = $bays[$sel].asset_tag - Set-Content -LiteralPath $OutFile -Value $pick -NoNewline -Encoding ascii - Write-Host "" - Write-Host " Selected: $pick" - Start-Sleep -Seconds 1 - exit 0 - } - } - 'Escape' { exit 1 } - } -} diff --git a/playbook/shopfloor-setup/Collect-ImagingDiagnostics.ps1 b/playbook/shopfloor-setup/Collect-ImagingDiagnostics.ps1 deleted file mode 100644 index 0534fa3..0000000 --- a/playbook/shopfloor-setup/Collect-ImagingDiagnostics.ps1 +++ /dev/null @@ -1,409 +0,0 @@ -<# -.SYNOPSIS - Collect everything needed to diagnose an imaged bay, into one zip. - -.DESCRIPTION - Read-only. Changes nothing on the machine. - - Written because every imaging investigation so far has meant walking to a bay - and hand-copying files, and each time we discovered another thing we wished - we had grabbed at the same moment. This takes the lot in one pass. - - Run it on a freshly imaged bay BEFORE lockdown. - - This captures KNOWN-CURRENT, not known-good. A bay straight off the line has - applications on it that should not be there - preinstall.json entries without - a PCTypes filter install everywhere, so a Display bay picks up Adobe, - OpenText and Defect Tracker. The point of collecting is to have an exact - record of what imaging really produces, so the unnecessary items can be - identified and filtered out. - - Before lockdown specifically, because afterwards you cannot tell whether - something is absent because lockdown removed it or because imaging never - installed it. - -.PARAMETER Destination - Where to drop the zip. Defaults to C:\Logs. Point it at a share to collect - centrally, e.g. -Destination \\172.16.9.1\enrollment\imaging-logs - (only reachable while the bay is still on the imaging LAN). - -.PARAMETER Label - Optional tag folded into the filename, e.g. -Label pre-lockdown. - -.EXAMPLE - .\Collect-ImagingDiagnostics.ps1 -Label pre-lockdown - -.EXAMPLE - .\Collect-ImagingDiagnostics.ps1 -Destination \\172.16.9.1\enrollment\imaging-logs -#> - -[CmdletBinding()] -param( - [string]$Destination = 'C:\Logs', - [string]$Label = '' -) - -$ErrorActionPreference = 'Continue' -$ProgressPreference = 'SilentlyContinue' - -$serial = try { (Get-CimInstance Win32_BIOS).SerialNumber.Trim() } catch { 'unknown' } -$stamp = Get-Date -Format 'yyyyMMdd-HHmmss' -$name = if ($Label) { "$serial-$Label-$stamp" } else { "$serial-$stamp" } -$work = Join-Path $env:TEMP "imgdiag-$name" -New-Item -ItemType Directory -Path $work -Force | Out-Null - -function Section { param([string]$File, [scriptblock]$Body) - $p = Join-Path $work $File - try { & $Body 2>&1 | Out-File -FilePath $p -Encoding utf8 -Width 500 } - catch { "COLLECTION ERROR: $_" | Out-File -FilePath $p -Encoding utf8 } - Write-Host (" {0}" -f $File) -} - -function CopyTree { param([string]$Src, [string]$Dst) - # /XF *.ppkg and /MAX are not optional. run-enrollment harvests - # C:\ProgramData\Microsoft\Provisioning into C:\Logs\PPKG, so the 8 GB - # provisioning package exists TWICE under the trees we copy. Without these - # the collection is 16 GB and Compress-Archive dies with "stream was too - # long" - it cannot exceed 2 GB. - if (Test-Path $Src) { - $d = Join-Path $work $Dst - New-Item -ItemType Directory -Path $d -Force | Out-Null - robocopy $Src $d /E /R:0 /W:0 /NFL /NDL /NJH /NJS /XF *.ppkg *.wim *.iso /MAX:104857600 | Out-Null - Write-Host (" {0}\ <- {1}" -f $Dst, $Src) - } -} - -Write-Host "" -Write-Host "Collecting imaging diagnostics for $serial ..." -Write-Host "" - -# --- 1. Identity --------------------------------------------------------- -# ActiveComputerName is the name in use; ComputerName is the PENDING one. They -# differ when a rename is queued for the next reboot - which is exactly how the -# H -> F transition works, so capturing both tells you whether -# the package's rename landed or is still waiting. -Section 'identity.txt' { - '== computer names ==' - 'Active (in use): ' + (Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName' -EA SilentlyContinue).ComputerName - 'Pending (next boot): ' + (Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName' -EA SilentlyContinue).ComputerName - 'NV Hostname: ' + (Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' -EA SilentlyContinue).'NV Hostname' - '' - '== hardware ==' - Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model, Domain, PartOfDomain, TotalPhysicalMemory | Format-List - Get-CimInstance Win32_BIOS | Select-Object SerialNumber, SMBIOSBIOSVersion, ReleaseDate | Format-List - Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber, InstallDate, LastBootUpTime | Format-List - '' - '== uptime / install ==' - 'Windows installed: ' + (Get-CimInstance Win32_OperatingSystem).InstallDate -} - -# --- 2. Enrollment state ------------------------------------------------- -# dsregcmd is the authority on whether the Entra join actually happened. -# criticalChecks.json is the package's own self-assessment and the two can -# disagree - "Entra ID Joined: false" right after imaging is normal because the -# bay has not reached the production network yet. -Section 'enrollment.txt' { - '== dsregcmd /status ==' - & dsregcmd /status - '' - '== package self-checks ==' - foreach ($f in 'C:\Logs\BPRT\criticalChecks.json','C:\Logs\BPRT\packageInfo.json', - 'C:\Logs\BPRT\Orchestrator\TokenMatch.json') { - if (Test-Path $f) { "--- $f ---"; Get-Content $f -Raw } - } - '' - '== staged selections ==' - foreach ($f in 'C:\Enrollment\pc-type.txt','C:\Enrollment\display-type.txt', - 'C:\Enrollment\pc-config.txt','C:\Enrollment\machine-number.txt', - 'C:\Enrollment\fetch-source.txt') { - if (Test-Path $f) { "$f = " + ((Get-Content $f -First 1) -replace 'pxe$','') } - } -} - -# --- 3. Installed applications ------------------------------------------ -# Registry Uninstall keys, both views. Deliberately NOT Win32_Product: querying -# it triggers an MSI reconfigure of every installed product, which is slow and -# can actually change the machine. -Section 'installed-apps.txt' { - $paths = @( - 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', - 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', - 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*' - ) - Get-ItemProperty $paths -EA SilentlyContinue | - Where-Object { $_.DisplayName } | - Sort-Object DisplayName | - Select-Object DisplayName, DisplayVersion, Publisher, InstallDate, InstallLocation | - Format-Table -AutoSize -} - -# --- 4. Everything that starts by itself -------------------------------- -# THE section for "why did this app launch". Installers plant their own startup -# entries, so an app being installed IS an app being started - there is no -# separate switch. Capturing all four surfaces shows which app planted what. -# Note both registry views: a 32-bit installer's Run key lands under -# Wow6432Node and 64-bit tooling never sees it. -Section 'autostart.txt' { - '== HKLM Run / RunOnce (native + WOW64) ==' - foreach ($k in 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', - 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', - 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run', - 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce') { - if (Test-Path $k) { "--- $k ---"; Get-ItemProperty $k | Format-List } - } - '' - '== HKCU Run / RunOnce (current user) ==' - foreach ($k in 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', - 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce') { - if (Test-Path $k) { "--- $k ---"; Get-ItemProperty $k | Format-List } - } - '' - '== Startup folders ==' - foreach ($d in "$env:ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp", - "$env:AppData\Microsoft\Windows\Start Menu\Programs\StartUp") { - if (Test-Path $d) { "--- $d ---"; Get-ChildItem $d | Select-Object Name, Length, LastWriteTime | Format-Table -AutoSize } - } - '' - '== per-user Startup folders (all profiles) ==' - Get-ChildItem 'C:\Users' -Directory -EA SilentlyContinue | ForEach-Object { - $d = Join-Path $_.FullName 'AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup' - if (Test-Path $d) { "--- $d ---"; Get-ChildItem $d | Select-Object Name | Format-Table -AutoSize } - } - '' - '== enabled/disabled state (StartupApproved) ==' - # Disabling a startup item via Task Manager or Settings does NOT remove the - # Run key or the Startup shortcut - it writes a flag here. So an entry can - # appear above and still be switched off. First byte 02/06 = enabled, - # 03/07 = disabled. Capturing this is what tells "imaging installed it and - # it runs" apart from "imaging installed it and somebody turned it off", - # which matters because the fix is not to install it at all. - foreach ($k in 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run', - 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder', - 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run', - 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run32', - 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder') { - if (Test-Path $k) { - "--- $k ---" - $props = Get-Item $k - foreach ($n in $props.Property) { - $v = (Get-ItemProperty $k -Name $n).$n - $state = if ($v -is [byte[]] -and $v.Length -ge 1) { - switch ($v[0]) { 2 {'ENABLED'} 4 {'ENABLED'} 6 {'ENABLED'} 3 {'disabled'} 5 {'disabled'} 7 {'disabled'} default {"unknown(0x{0:X2})" -f $v[0]} } - } else { 'unknown' } - "{0,-10} {1}" -f $state, $n - } - } - } - '' - '== scheduled tasks (non-Microsoft) ==' - Get-ScheduledTask -EA SilentlyContinue | - Where-Object { $_.TaskPath -notlike '\Microsoft\*' } | - Select-Object TaskPath, TaskName, State, - @{n='Triggers';e={ ($_.Triggers | ForEach-Object { $_.CimClass.CimClassName }) -join ',' }}, - @{n='Action';e={ ($_.Actions | ForEach-Object { $_.Execute }) -join ',' }} | - Sort-Object TaskPath, TaskName | Format-Table -AutoSize -Wrap - '' - '== services set to auto-start (non-Microsoft paths) ==' - Get-CimInstance Win32_Service -EA SilentlyContinue | - Where-Object { $_.StartMode -eq 'Auto' -and $_.PathName -notmatch 'C:\\Windows\\' } | - Select-Object Name, DisplayName, State, StartMode, PathName | - Sort-Object Name | Format-Table -AutoSize -Wrap -} - -# --- 5. Kiosk / display specifics --------------------------------------- -Section 'display-kiosk.txt' { - '== kiosk shortcuts anywhere in Startup ==' - Get-ChildItem 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp' -EA SilentlyContinue | - ForEach-Object { - $sh = (New-Object -ComObject WScript.Shell).CreateShortcut($_.FullName) - "{0}`n target: {1}`n args: {2}" -f $_.Name, $sh.TargetPath, $sh.Arguments - } - '' - '== Edge policies ==' - foreach ($k in 'HKLM:\SOFTWARE\Policies\Microsoft\Edge', - 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System') { - if (Test-Path $k) { "--- $k ---"; Get-ItemProperty $k | Format-List } - } -} - -# --- 6. GE-Enforce ------------------------------------------------------- -Section 'ge-enforce.txt' { - '== registry config ==' - foreach ($k in 'HKLM:\SOFTWARE\GE\SFLD\Credentials','HKLM:\SOFTWARE\GE\SFLD\DSC', - 'HKLM:\SOFTWARE\GE\ShopDB') { - # values only - do not dump anything that looks like a secret - if (Test-Path $k) { - "--- $k ---" - Get-Item $k | Select-Object -ExpandProperty Property | ForEach-Object { - $v = (Get-ItemProperty $k -Name $_).$_ - if ($_ -match '(?i)key|token|secret|password|sas') { "$_ = " } - else { "$_ = $v" } - } - } - } - '' - '== enforce client / DSC on disk ==' - foreach ($d in 'C:\ProgramData\SFLD','C:\Deploy\Applications\BPRT') { - if (Test-Path $d) { "--- $d ---"; Get-ChildItem $d -Recurse -Depth 1 | Select-Object FullName, Length, LastWriteTime | Format-Table -AutoSize } - } -} - -# --- 6b. IS IT ACTUALLY TALKING TO THE SHOPDB GE-ENFORCE API? ----------- -# Config on disk proves nothing - the client can be present, configured, and -# never once succeed. This answers the actual question: is there a client, is it -# scheduled, has it run, and can this bay reach the endpoint right now. -# -# A 401 from the manifest endpoint is a GOOD result here: it proves DNS, routing -# and TLS all work and the service answered. Only a timeout or DNS failure means -# genuinely unreachable. No token is sent, so nothing here can enrol or change -# anything. -Section 'geenforce-api.txt' { - '== is the client installed? ==' - $clientPaths = @( - 'C:\Program Files\ShopDB', 'C:\ProgramData\ShopDB', - 'C:\Deploy\Applications\BPRT\ShopdbEnforceClient.psm1', - 'C:\Enrollment\ShopdbEnforceClient.psm1' - ) - $found = $false - foreach ($p in $clientPaths) { - if (Test-Path $p) { $found = $true; "FOUND: $p" - Get-ChildItem $p -Recurse -EA SilentlyContinue | - Select-Object FullName, Length, LastWriteTime | Format-Table -AutoSize } - } - if (-not $found) { 'NOT FOUND - no ShopDB enforce client on this machine.' } - '' - '== scheduled tasks that would run it ==' - $tasks = Get-ScheduledTask -EA SilentlyContinue | - Where-Object { $_.TaskName -match '(?i)shopdb|ge-?enforce|asset report' } - if ($tasks) { - foreach ($t in $tasks) { - $i = $t | Get-ScheduledTaskInfo -EA SilentlyContinue - "{0}\{1} State={2} LastRun={3} LastResult={4} NextRun={5}" -f ` - $t.TaskPath, $t.TaskName, $t.State, $i.LastRunTime, $i.LastTaskResult, $i.NextRunTime - ($t.Actions | ForEach-Object { " action: $($_.Execute) $($_.Arguments)" }) - } - } else { 'NONE - nothing scheduled to call the API.' } - '' - '== configured base URL ==' - $base = $null - foreach ($k in 'HKLM:\SOFTWARE\GE\ShopDB','HKLM:\SOFTWARE\GE\SFLD\Credentials') { - if (Test-Path $k) { - $p = Get-ItemProperty $k - foreach ($n in $p.PSObject.Properties.Name) { - # Match the NAME tightly and validate the VALUE looks like a URL. - # A loose "base" match picked up baseVersion=2.0.2 and the probe - # then tried to fetch "2.0.2/api/docs". - if ($n -match '(?i)^(baseurl|serverurl|shopdburl|endpoint|url)$') { - "$k\$n = $($p.$n)" - if (-not $base -and "$($p.$n)" -match '^https?://') { $base = $p.$n } - } - } - } - } - if (-not $base) { '(no BaseUrl configured - falling back to the known prod URL for the reachability test)' } - if (-not $base) { $base = 'https://tsgwp00525.wjs.geaerospace.net/shopdb' } - '' - "== can this bay reach it right now? (base: $base) ==" - $targets = @( - @{ Name = 'API docs'; Url = "$base/api/docs" }, - @{ Name = 'GE-Enforce manifest'; Url = "$base/api/geenforce/manifest?pctype=gea-shopfloor-display" } - ) - foreach ($t in $targets) { - try { - $sw = [Diagnostics.Stopwatch]::StartNew() - $r = Invoke-WebRequest -Uri $t.Url -UseBasicParsing -TimeoutSec 20 -EA Stop - $sw.Stop() - "{0,-22} HTTP {1} in {2} ms <- reachable" -f $t.Name, $r.StatusCode, $sw.ElapsedMilliseconds - } catch { - $code = try { $_.Exception.Response.StatusCode.value__ } catch { $null } - if ($code) { - "{0,-22} HTTP {1} <- REACHABLE (service answered; 401/403 just means no token was sent)" -f $t.Name, $code - } else { - "{0,-22} UNREACHABLE: {1}" -f $t.Name, $_.Exception.Message - ' NOTE: ShopDB is only reachable once the bay has joined the AESFMA wifi SSID.' - ' On the imaging LAN or plain wired, unreachable here is EXPECTED, not a fault.' - } - } - } - '' - '== name resolution / route ==' - try { - $h = ([uri]$base).Host - "host: $h" - Resolve-DnsName $h -EA Stop | Select-Object Name, Type, IPAddress | Format-Table -AutoSize - Test-NetConnection -ComputerName $h -Port 443 -InformationLevel Detailed -WarningAction SilentlyContinue | - Select-Object ComputerName, RemoteAddress, TcpTestSucceeded, PingSucceeded | Format-List - } catch { "DNS/route check failed: $_" } - '' - '== client logs, if any ==' - foreach ($d in 'C:\Logs\ShopDB','C:\Logs\GE-Enforce','C:\ProgramData\ShopDB\Logs') { - if (Test-Path $d) { "--- $d ---"; Get-ChildItem $d -Recurse | Select-Object FullName, Length, LastWriteTime | Format-Table -AutoSize } - } -} - -# --- 7. Drivers, disk, network ------------------------------------------ -Section 'drivers-disk-network.txt' { - '== third-party drivers ==' - & pnputil /enum-drivers - '' - '== disk layout ==' - Get-Disk -EA SilentlyContinue | Format-Table -AutoSize - Get-Partition -EA SilentlyContinue | Format-Table -AutoSize - Get-Volume -EA SilentlyContinue | Format-Table -AutoSize - '' - '== network ==' - Get-NetAdapter -EA SilentlyContinue | Select-Object Name, InterfaceDescription, Status, LinkSpeed, MacAddress | Format-Table -AutoSize - Get-NetIPAddress -AddressFamily IPv4 -EA SilentlyContinue | Select-Object InterfaceAlias, IPAddress, PrefixOrigin | Format-Table -AutoSize - Get-DnsClientServerAddress -AddressFamily IPv4 -EA SilentlyContinue | Format-Table -AutoSize -} - -# --- 8. Provisioning session state -------------------------------------- -Section 'provisioning-sessions.txt' { - '== sessions ==' - $k = 'HKLM:\SOFTWARE\Microsoft\Provisioning\Sessions' - if (Test-Path $k) { - Get-ChildItem $k | ForEach-Object { - $p = Get-ItemProperty $_.PSPath - "{0} State={1} RebootCount={2}" -f $_.PSChildName, $p.State, $p.RebootCount - } - } else { '(no provisioning sessions key)' } -} - -# --- 9. Log trees -------------------------------------------------------- -CopyTree 'C:\Logs' 'Logs' -CopyTree 'C:\Windows\Panther' 'Panther' -CopyTree 'C:\ProgramData\Microsoft\Provisioning' 'ProvisioningData' -foreach ($f in 'C:\Enrollment\winpe-staging.log','C:\Enrollment\setupcomplete.log') { - if (Test-Path $f) { Copy-Item $f $work -Force -EA SilentlyContinue } -} - -# Enrollment dir listing only - it holds an 8 GB package we do not want. -Section 'enrollment-dir-listing.txt' { - if (Test-Path 'C:\Enrollment') { - Get-ChildItem 'C:\Enrollment' -Recurse -EA SilentlyContinue | - Select-Object FullName, Length, LastWriteTime | Format-Table -AutoSize - } -} - -# --- 10. Provisioning event log ----------------------------------------- -try { - $evtx = Join-Path $work 'Provisioning-Diagnostics-Admin.evtx' - & wevtutil epl 'Microsoft-Windows-Provisioning-Diagnostics-Provider/Admin' $evtx /ow:true 2>$null - if (Test-Path $evtx) { Write-Host ' Provisioning-Diagnostics-Admin.evtx' } -} catch { } - -# --- zip ----------------------------------------------------------------- -New-Item -ItemType Directory -Path $Destination -Force -EA SilentlyContinue | Out-Null -$zip = Join-Path $Destination "imgdiag-$name.zip" -try { - Compress-Archive -Path (Join-Path $work '*') -DestinationPath $zip -Force -EA Stop - Remove-Item $work -Recurse -Force -EA SilentlyContinue - Write-Host "" - Write-Host "Wrote $zip" - Write-Host ("Size: {0:N1} MB" -f ((Get-Item $zip).Length / 1MB)) -} catch { - Write-Host "" - Write-Host "Could not zip to $Destination : $_" - Write-Host "Raw collection left at: $work" -} -Write-Host "" diff --git a/playbook/shopfloor-setup/Fetch-StagingPayload.ps1 b/playbook/shopfloor-setup/Fetch-StagingPayload.ps1 index 4ad6dcf..fb4aee6 100644 --- a/playbook/shopfloor-setup/Fetch-StagingPayload.ps1 +++ b/playbook/shopfloor-setup/Fetch-StagingPayload.ps1 @@ -6,7 +6,7 @@ # (Y:) early, then idles for many minutes while the full Windows image applies. # Samba's `deadtime` drops idle sessions, so by the time WinPE reached the # copies the Y: mount was dead and most copies failed (symptom: a bay with -# only site-config.json staged, then nothing). Doing the bulk copy here - at +# almost nothing staged). Doing the bulk copy here - at # first logon, in full Windows, on a FRESH share mount with no prior idle - # sidesteps that entirely. # @@ -18,12 +18,9 @@ # # WHAT IT FETCHES (generic bulk - Phase 1) # \\\enrollment\shopfloor-setup\Run-ShopfloorSetup.ps1 -> C:\Enrollment\ -# \\\enrollment\shopfloor-setup\{backup_lockdown.bat,Shopfloor,common, -# _ntlars-backups,gea-shopfloor-} -> C:\Enrollment\shopfloor-setup\ -# \\\enrollment\pre-install\{preinstall.json,installers,udc-backups} +# \\\enrollment\shopfloor-setup\Shopfloor -> C:\Enrollment\shopfloor-setup\ +# \\\enrollment\pre-install\{preinstall.json,postppkg.json,installers} # -> C:\PreInstall\ -# (Heavy per-type payloads - CMM/Keyence/WaxTrace - are still staged in WinPE -# for now; Phase 2 moves those here too.) # # LOGGING # Verbose transcript + a per-item table to C:\Logs\Fetch\. Every robocopy logs @@ -147,21 +144,13 @@ $PIN = 'C:\PreInstall' Fetch-Item -Label 'Run-ShopfloorSetup.ps1' -SrcDir 'shopfloor-setup' -DstDir $ENR -Files @('Run-ShopfloorSetup.ps1') # Verify-And-Heal-Staging runs as its own unattend step (right after this Fetch, -# before the production-network switch) to re-pull anything that did not arrive - -# including the heavy CMM payload Fetch does not carry. Pull the small script -# itself here so it is on disk for that step. +# before the production-network switch) to re-pull anything that did not arrive. +# Pull the small script itself here so it is on disk for that step. Fetch-Item -Label 'Verify-And-Heal-Staging.ps1' -SrcDir 'shopfloor-setup' -DstDir $ENR -Files @('Verify-And-Heal-Staging.ps1') -Fetch-Item -Label 'backup_lockdown.bat' -SrcDir 'shopfloor-setup' -DstDir $SFD -Files @('backup_lockdown.bat') Fetch-Item -Label 'Shopfloor baseline' -SrcDir 'shopfloor-setup\Shopfloor' -DstDir (Join-Path $SFD 'Shopfloor') -Recurse -Fetch-Item -Label 'common' -SrcDir 'shopfloor-setup\common' -DstDir (Join-Path $SFD 'common') -Recurse -Fetch-Item -Label '_ntlars-backups' -SrcDir 'shopfloor-setup\_ntlars-backups' -DstDir (Join-Path $SFD '_ntlars-backups') -Recurse -if ($pcType) { - Fetch-Item -Label "type:$pcType" -SrcDir "shopfloor-setup\$pcType" -DstDir (Join-Path $SFD $pcType) -Recurse -} -# preinstall bundle -Fetch-Item -Label 'preinstall.json' -SrcDir 'pre-install' -DstDir $PIN -Files @('preinstall.json') +# site app lists + their installers (and the PowerShell 7 MSI) +Fetch-Item -Label 'app lists' -SrcDir 'pre-install' -DstDir $PIN -Files @('preinstall.json', 'postppkg.json') Fetch-Item -Label 'preinstall installers' -SrcDir 'pre-install\installers' -DstDir (Join-Path $PIN 'installers') -Recurse -Fetch-Item -Label 'udc-backups' -SrcDir 'pre-install\udc-backups' -DstDir (Join-Path $PIN 'udc-backups') -Recurse # --- Unmount --- cmd /c "net use $drive /delete /y >nul 2>&1" diff --git a/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 b/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 index 880d135..15b1562 100644 --- a/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 +++ b/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 @@ -1,15 +1,18 @@ -# Run-ShopfloorSetup.ps1 - Main dispatcher for shopfloor PC type setup. +# Run-ShopfloorSetup.ps1 - shopfloor setup (gea-shopfloor-standard). # +# Called by the unattend FirstLogonCommands as SupportUser (admin), after +# Order 10 has already applied the PPKG (run-enrollment.ps1). # Flow: -# 1. PreInstall apps (Oracle, VC++, OpenText, UDC) -- from local bundle -# 2. Type-specific scripts (eDNC, ACLs, CMM share apps, etc.) -# 3. Deferred baseline (desktop org, taskbar pins) -# 4. Copy desktop tools (sync_intune, Configure-PC, Set-MachineNumber) -# 5. Run enrollment (PPKG install + wait for completion) -# 6. Register sync_intune as @logon scheduled task -# 7. Reboot -- PPKG file operations complete, sync_intune fires on next logon -# -# Called by the unattend FirstLogonCommands as SupportUser (admin). +# 1. Site app list "during setup": C:\PreInstall\preinstall.json +# (Shopfloor\Install-AppList.ps1; empty in the generic build) +# 2. Copy desktop tools (sync_intune, Force-Lockdown, SetShopfloorAutoLogon) +# 3. Register the "Shopfloor Intune Sync" logon task (Monitor-IntuneProgress: +# waits for the PPKG/Intune lockdown, then hands the PC to ShopFloor) +# 4. Register "GE Shopfloor Post-PPKG" (SYSTEM, at startup): installs +# C:\PreInstall\postppkg.json once after the reboot (empty in the +# generic build) and clears AutoLogonCount after the ShopFloor handover +# 5. Network gate, run-enrollment (a no-op when Order 10 applied the PPKG), +# then Monitor-IntuneProgress -PostPpkg: settle and reboot # --- Transcript logging --- $logDir = 'C:\Logs\SFLD' @@ -147,149 +150,27 @@ if (-not $pcType) { exit 0 } -$subtypeFile = Join-Path $enrollDir "pc-subtype.txt" -$pcSubType = '' -if (Test-Path $subtypeFile) { - $pcSubType = (Get-Content $subtypeFile -First 1).Trim() -} +Write-Host "Shopfloor PC Type: $pcType" -Write-Host "Shopfloor PC Type: $pcType$(if ($pcSubType) { " / $pcSubType" })" - -# Scripts to skip in the alphabetical baseline loop. Each is either run -# explicitly in the finalization phase below, or invoked internally by -# another script: -# -# 05 - Office shortcuts. Invoked by 06 as Phase 0. Office isn't installed -# until after the PPKG + reboot, so 05 no-ops initially. 06's SYSTEM -# logon task re-runs it on the next boot. -# 06 - Desktop org. Phase 2 needs eDNC/NTLARS on disk (installed by -# type-specific 01-eDNC.ps1). Run in finalization phase. -# 07 - Taskbar pin layout. Reads 06's output. Run in finalization phase. -# 08 - Edge default browser + startup tabs. Invoked by 06 as Phase 4. -# Reads .url files delivered by DSC (after Intune enrollment). 06's -# SYSTEM logon task re-runs it to pick them up. -$skipInBaseline = @( - '05-OfficeShortcuts.ps1', - '06-OrganizeDesktop.ps1', - '07-TaskbarLayout.ps1', - '08-EdgeDefaultBrowser.ps1', - # Machine number flow: split into two scripts registered as scheduled - # tasks by Register-CheckMachineNumberTask.ps1. Prompt runs as the - # logged-in user (GUI), Apply runs as SYSTEM (privileged writes). - # Neither should run in baseline pass. - 'Prompt-MachineNumber.ps1', - 'Apply-MachineNumber.ps1', - 'Check-MachineNumber.ps1', - 'Configure-PC.ps1' -) - -# Scripts run AFTER type-specific scripts complete. 05 and 08 are NOT -# here because 06 calls them internally as sub-phases. -$runAfterTypeSpecific = @( - '06-OrganizeDesktop.ps1', - '07-TaskbarLayout.ps1' -) - -# --- Run Shopfloor baseline scripts first (skipping deferred ones) --- -$baselineDir = Join-Path $setupDir "Shopfloor" -if (Test-Path $baselineDir) { - $scripts = Get-ChildItem -Path $baselineDir -Filter "*.ps1" -File | Sort-Object Name - foreach ($script in $scripts) { - if ($skipInBaseline -contains $script.Name) { - Write-Host "Skipping baseline: $($script.Name) (runs in finalization phase)" - continue - } - cmd /c "shutdown /a 2>nul" *>$null - Write-Host "Running baseline: $($script.Name)" - try { - & $script.FullName - } catch { - Write-Warning "Baseline script $($script.Name) failed: $_" - } - } -} - -# --- PCType dir alias resolution (2026-05-04 rename reorg) ------------- -# Fleet PCs may have pc-type.txt = legacy "Standard"/"CMM"/etc OR new -# gea-shopfloor-* names. Repo dirs have been renamed to new names; this -# helper resolves either form to the actual on-disk dir under $setupDir. -$pcTypeDirAliases = @( - @('Standard', 'gea-shopfloor-collections', 'gea-shopfloor-nocollections'), - @('Standard-Machine', 'gea-shopfloor-collections', 'gea-shopfloor-nocollections'), - @('Standard-Timeclock', 'gea-shopfloor-common'), - @('CMM', 'gea-shopfloor-cmm'), - @('Keyence', 'gea-shopfloor-keyence'), - @('Lab', 'gea-shopfloor-common'), - @('WaxAndTrace', 'gea-shopfloor-waxtrace'), - @('Genspect', 'gea-shopfloor-genspect'), - @('Display', 'gea-shopfloor-display'), - @('Heattreat', 'gea-shopfloor-heattreat') -) -function Resolve-PCTypeDir { - param([string]$BaseDir, [string]$Name) - $primary = Join-Path $BaseDir $Name - if (Test-Path $primary) { return $primary } - foreach ($g in $pcTypeDirAliases) { - if ($g -icontains $Name) { - foreach ($alias in $g) { - if ($alias -ieq $Name) { continue } - $candidate = Join-Path $BaseDir $alias - if (Test-Path $candidate) { return $candidate } - } - } - } - return $null -} - -# --- Run type-specific scripts (if not just baseline Shopfloor) --- -if ($pcType -ne "Shopfloor") { - $typeDir = Resolve-PCTypeDir -BaseDir $setupDir -Name $pcType - if ($typeDir -and (Test-Path $typeDir)) { - # Only run numbered scripts (01-eDNC.ps1, 02-MachineNumberACLs.ps1). - # Unnumbered .ps1 files (Set-MachineNumber.ps1) are desktop tools, - # not installer scripts, and must not auto-run during setup. - $scripts = Get-ChildItem -Path $typeDir -Filter "*.ps1" -File | - Where-Object { $_.Name -match '^\d' } | - Sort-Object Name - foreach ($script in $scripts) { - cmd /c "shutdown /a 2>nul" *>$null - Write-Host "Running $pcType setup: $($script.Name)" - try { - & $script.FullName - } catch { - Write-Warning "Script $($script.Name) failed: $_" - } - } - } else { - Write-Host "No type-specific scripts found for $pcType." - } -} - -# --- Finalization: run deferred baseline scripts (desktop org, taskbar pins) -# --- -# These needed to wait until all apps (eDNC, NTLARS, UDC, OpenText) were -# installed by the baseline + type-specific phases above. 06 internally -# calls 05 (Office shortcuts) and 08 (Edge config) as sub-phases, so we -# only need to invoke 06 and 07 explicitly here. -foreach ($name in $runAfterTypeSpecific) { - $script = Join-Path $baselineDir $name - if (-not (Test-Path $script)) { - Write-Warning "Deferred script not found: $script" - continue - } +# --- 1. Site app list, during setup --- +Report-Stage -Stage 'Run-ShopfloorSetup: installing the site app list' -Index 3 +$appList = Join-Path $setupDir 'Shopfloor\Install-AppList.ps1' +if (Test-Path -LiteralPath $appList) { cmd /c "shutdown /a 2>nul" *>$null - Write-Host "Running deferred baseline: $name" try { - & $script + & $appList -ListPath 'C:\PreInstall\preinstall.json' -Phase 'PreInstall' } catch { - Write-Warning "Deferred script $name failed: $_" + Write-Warning "Install-AppList failed: $_" } +} else { + Write-Warning "Install-AppList.ps1 not found at $appList" } - +cmd /c "shutdown /a 2>nul" *>$null +Report-Stage -Stage 'Run-ShopfloorSetup: site app list done' -Index 4 Write-Host "Shopfloor setup complete for $pcType." -# --- Copy utility scripts to SupportUser desktop --- -foreach ($tool in @('sync_intune.bat', 'Configure-PC.bat', 'Force-Lockdown.bat', 'SetShopfloorAutoLogon.bat')) { +# --- 2. Copy utility scripts to SupportUser desktop --- +foreach ($tool in @('sync_intune.bat', 'Force-Lockdown.bat', 'SetShopfloorAutoLogon.bat')) { $src = Join-Path $setupDir "Shopfloor\$tool" if (Test-Path $src) { Copy-Item -Path $src -Destination "C:\Users\SupportUser\Desktop\$tool" -Force @@ -297,28 +178,7 @@ foreach ($tool in @('sync_intune.bat', 'Configure-PC.bat', 'Force-Lockdown.bat', } } -# Machine-number-using PC types (collections + nocollections, plus their -# legacy Standard-Machine alias) get the Set-MachineNumber helper on the -# SupportUser desktop. Timeclock / Lab / common variants don't use a -# machine number, so the helper has nothing to do there. -$needsMachineNumberHelper = $false -if ($pcType -ieq 'Standard' -and $pcSubType -ne 'Timeclock') { $needsMachineNumberHelper = $true } -if ($pcType -ieq 'gea-shopfloor-collections' -or $pcType -ieq 'gea-shopfloor-nocollections') { $needsMachineNumberHelper = $true } -if ($needsMachineNumberHelper) { - $helperSrc = Resolve-PCTypeDir -BaseDir $setupDir -Name 'gea-shopfloor-collections' - if (-not $helperSrc) { $helperSrc = Resolve-PCTypeDir -BaseDir $setupDir -Name 'Standard' } - foreach ($helper in @('Set-MachineNumber.bat', 'Set-MachineNumber.ps1')) { - if ($helperSrc) { - $src = Join-Path $helperSrc $helper - if (Test-Path $src) { - Copy-Item -Path $src -Destination "C:\Users\SupportUser\Desktop\$helper" -Force - Write-Host "$helper copied to SupportUser desktop." - } - } - } -} - -# --- Register sync_intune as persistent @logon scheduled task --- +# --- 3. Register sync_intune as persistent @logon scheduled task --- # Must be registered BEFORE enrollment because Install-ProvisioningPackage # triggers an immediate reboot that kills run-enrollment.ps1. The task # registration must survive the PPKG reboot, so we do it here while @@ -330,13 +190,12 @@ if ($needsMachineNumberHelper) { # PPKG reboot, and is irrelevant to the Intune lifecycle. $taskName = 'Shopfloor Intune Sync' $monitorScript = Join-Path $setupDir 'Shopfloor\lib\Monitor-IntuneProgress.ps1' -$configureScript = Join-Path $setupDir 'Shopfloor\Configure-PC.ps1' if (Test-Path -LiteralPath $monitorScript) { try { $action = New-ScheduledTaskAction ` -Execute 'powershell.exe' ` - -Argument "-NoProfile -NoExit -ExecutionPolicy Bypass -File `"$monitorScript`" -AsTask -ConfigureScript `"$configureScript`"" + -Argument "-NoProfile -NoExit -ExecutionPolicy Bypass -File `"$monitorScript`" -AsTask" $trigger = New-ScheduledTaskTrigger -AtLogOn @@ -367,94 +226,13 @@ if (Test-Path -LiteralPath $monitorScript) { Write-Warning "Monitor-IntuneProgress.ps1 not found at $monitorScript" } -# Set auto-logon to expire after 4 more logins (2 needed for sync_intune -# pre-reboot + post-reboot, plus 2 margin for unexpected reboots from -# Windows Update, PPKG file operations, or script crashes). -# (AutoLogonCount intentionally not set -- see comment at top of script) - -# --- Register cross-PC-type enforcers (Acrobat, etc.) --- -# These run on every logon regardless of PC type, mounting the SFLD share -# for version-pinned app enforcement. Initial install already handled by -# preinstall flow; enforcers only kick in when detection fails. -# Wired-disable / re-enable dance retired after PXE LAN renumber to -# 172.16.9.0/24. GE Report IP filters Get-NetIPAddress on StartsWith("10.") -# so PXE LAN addresses are no longer caught - wired NIC can stay up -# through the whole imaging chain without leaking to the GE webhook. - -$commonSetupDir = Join-Path $setupDir 'common' - -# --- Register the unified GE-Enforce scheduled task --- -# Single dispatcher for all PC-type ongoing-update enforcement. Reads -# per-pctype manifest.json from the tsgwp00525 share and processes -# common + per-type + per-type-subtype manifests in order. -# -# Display PCs are excluded: their kiosk user cannot reach the SFLD -# share, and everything Display needs (kiosk EXE + Edge policies) is -# baked at imaging time (preinstall.json Install-KioskApp + 09-Setup- -# Display.ps1). No ongoing share-dependent enforcement on Displays. -$noEnforceTypes = @('Display', 'gea-shopfloor-display') -$registerGE = Join-Path $commonSetupDir 'Register-GEEnforce.ps1' -if ($noEnforceTypes -contains $pcType) { - Write-Host "" - Write-Host "=== Skipping GE-Enforce registration ($pcType is self-contained) ===" -} elseif (Test-Path -LiteralPath $registerGE) { - Write-Host "" - Write-Host "=== Registering unified GE Shopfloor enforcer ===" - try { - $enforcerRuntime = Join-Path $commonSetupDir 'GE-Enforce.ps1' - $libSource = Join-Path $commonSetupDir 'lib\Install-FromManifest.ps1' - # Stage enforcer runtime so the scheduled task can reach it post-imaging. - $runtimeDir = 'C:\Program Files\GE\Shopfloor' - $runtimeLib = Join-Path $runtimeDir 'lib' - foreach ($d in @($runtimeDir, $runtimeLib)) { - if (-not (Test-Path $d)) { New-Item -Path $d -ItemType Directory -Force | Out-Null } - } - Copy-Item -LiteralPath $enforcerRuntime -Destination (Join-Path $runtimeDir 'GE-Enforce.ps1') -Force - Copy-Item -LiteralPath $libSource -Destination (Join-Path $runtimeLib 'Install-FromManifest.ps1') -Force - & $registerGE -EnforcerPath (Join-Path $runtimeDir 'GE-Enforce.ps1') - } catch { - Write-Warning "GE-Enforce registration failed: $_" - } +# --- 4. Post-PPKG app list + AutoLogonCount cleanup (SYSTEM task) --- +# Registered before the PPKG step: the PPKG reboot can kill this script. +$registerPost = Join-Path $setupDir 'Shopfloor\Register-PostPpkgTask.ps1' +if (Test-Path -LiteralPath $registerPost) { + try { & $registerPost } catch { Write-Warning "Post-PPKG task registration failed: $_" } } else { - Write-Warning "Register-GEEnforce.ps1 not found - no ongoing enforcement will run on this PC" -} - -# Map S: drive on user logon for every account in BUILTIN\Users. The -# vendor 'SFLD - Consume Credentials' task is principal-restricted and -# does not fire for the ShopFloor end-user, so this parallel task fills -# the gap. Cross-PC-type because every shopfloor account needs S:. -# Display PCs skipped: kiosk user has no SFLD creds, S: map would fail -# every logon. Self-contained Display has no share dependency. -$registerMapShare = Join-Path $setupDir 'Shopfloor\Register-MapSfldShare.ps1' -if ($noEnforceTypes -contains $pcType) { - Write-Host "" - Write-Host "=== Skipping S: drive logon mapper ($pcType is self-contained) ===" -} elseif (Test-Path -LiteralPath $registerMapShare) { - Write-Host "" - Write-Host "=== Registering S: drive logon mapper ===" - try { & $registerMapShare } catch { Write-Warning "Map-SfldShare registration failed: $_" } -} else { - Write-Host "Register-MapSfldShare.ps1 not found (optional) - skipping" -} - -# --- Check Machine Number logon prompt --- -# Auto-register the "Check Machine Number" scheduled task. Bays imaged with -# the 9999 placeholder will prompt the first ShopFloor end-user logon to -# enter the real machine number; on success Update-MachineNumber.ps1 pulls -# the per-machine NTLARS .reg + UDC settings JSON + UDC data backup from -# SFLD and the task self-unregisters. Self-disables once the number is -# real, so safe to always register here. -# Skipped for self-contained types (Display) that have no machine number. -$registerCheckMN = Join-Path $setupDir 'Shopfloor\Register-CheckMachineNumberTask.ps1' -if ($noEnforceTypes -contains $pcType) { - Write-Host "" - Write-Host "=== Skipping Check Machine Number task ($pcType has no machine number) ===" -} elseif (Test-Path -LiteralPath $registerCheckMN) { - Write-Host "" - Write-Host "=== Registering Check Machine Number logon task ===" - try { & $registerCheckMN } catch { Write-Warning "Check-MachineNumber registration failed: $_" } -} else { - Write-Host "Register-CheckMachineNumberTask.ps1 not found (optional) - skipping" + Write-Warning "Register-PostPpkgTask.ps1 not found at $registerPost" } # --- Run enrollment (PPKG install) --- diff --git a/playbook/shopfloor-setup/Shopfloor/00-PreInstall-MachineApps.ps1 b/playbook/shopfloor-setup/Shopfloor/00-PreInstall-MachineApps.ps1 deleted file mode 100644 index 0150478..0000000 --- a/playbook/shopfloor-setup/Shopfloor/00-PreInstall-MachineApps.ps1 +++ /dev/null @@ -1,598 +0,0 @@ -# 00-PreInstall-MachineApps.ps1 - Install pre-staged apps from C:\PreInstall (Shopfloor baseline) -# -# Reads C:\PreInstall\preinstall.json (staged by startnet.cmd during WinPE phase) and -# installs each app whose PCTypes filter matches the current PC type. Detection runs first -# so already-installed apps are skipped. Numbered 00- so it runs before all other Shopfloor -# baseline scripts - apps need to exist before later scripts (e.g. 01-eDNC.ps1) reference -# them or rely on their state. -# -# Failure mode: log + continue. Intune DSC (Simple-Install.ps1) is the safety net for any -# install that fails here. -# -# Logs to C:\Logs\PreInstall\install.log (wiped each run). - -$preInstallDir = "C:\PreInstall" -$jsonPath = Join-Path $preInstallDir "preinstall.json" -$installerDir = Join-Path $preInstallDir "installers" -$logDir = "C:\Logs\PreInstall" -$logFile = Join-Path $logDir "install.log" - -# --- Inline site-config reader (same pattern as Setup-OpenText.ps1; this script -# runs from C:\Enrollment\shopfloor-setup\Shopfloor\ but Get-PCProfile.ps1 may -# not be available yet, so keep the lookup self-contained) --- -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path $configPath)) { return $null } - try { - return Get-Content $configPath -Raw | ConvertFrom-Json - } catch { - return $null - } -} - -# --- Setup logging --- -# IMPORTANT: do NOT wipe the log on each run. The runner can get killed by an -# installer-triggered reboot mid-execution. On the next autologon, the dispatcher -# re-runs us - if we wipe the log here, we destroy the forensic record from the -# previous (interrupted) run. Instead, append a session header so runs are visible -# but history is preserved. -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -function Write-PreInstallLog { - param( - [Parameter(Mandatory=$true, Position=0)] - [string]$Message, - [Parameter(Position=1)] - [ValidateSet('INFO','WARN','ERROR')] - [string]$Level = 'INFO' - ) - $stamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" - $line = "[$stamp] [$Level] $Message" - Write-Host $line - - # Synchronous write-through so each line hits disk immediately, even if a system - # reboot kills the process right after this call returns. Bypasses the OS write - # cache via FileOptions.WriteThrough. - try { - $fs = New-Object System.IO.FileStream( - $logFile, - [System.IO.FileMode]::Append, - [System.IO.FileAccess]::Write, - [System.IO.FileShare]::Read, - 4096, - [System.IO.FileOptions]::WriteThrough - ) - $bytes = [System.Text.Encoding]::UTF8.GetBytes($line + "`r`n") - $fs.Write($bytes, 0, $bytes.Length) - $fs.Flush() - $fs.Dispose() - } - catch { - # Last-resort fallback if the FileStream open fails for any reason - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - } -} - -# Session header so multiple runs are visually distinguishable in the log -Write-PreInstallLog "================================================================" -Write-PreInstallLog "=== Runner session start (PID $PID) ===" -Write-PreInstallLog "================================================================" - -# --- Bail early if no preinstall bundle staged --- -if (-not (Test-Path $jsonPath)) { - Write-PreInstallLog "No preinstall.json at $jsonPath - skipping (no bundle staged for this PC)." - exit 0 -} - -# --- Read PCTYPE and optional PCSUBTYPE from C:\Enrollment\ --- -$pcTypeFile = "C:\Enrollment\pc-type.txt" -if (-not (Test-Path $pcTypeFile)) { - Write-PreInstallLog "No pc-type.txt at $pcTypeFile - skipping" "WARN" - exit 0 -} -$pcType = (Get-Content $pcTypeFile -First 1).Trim() -if (-not $pcType) { - Write-PreInstallLog "pc-type.txt is empty - skipping" "WARN" - exit 0 -} - -$pcSubtype = '' -$subtypeFile = "C:\Enrollment\pc-subtype.txt" -if (Test-Path $subtypeFile) { - $pcSubtype = (Get-Content $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() -} -$pcProfileKey = if ($pcSubtype) { "$pcType-$pcSubtype" } else { $pcType } -Write-PreInstallLog "PC type: $pcType$(if ($pcSubtype) { " (subtype: $pcSubtype, profile: $pcProfileKey)" })" - -# --- Parse JSON --- -try { - $config = Get-Content $jsonPath -Raw | ConvertFrom-Json -} catch { - Write-PreInstallLog "Failed to parse $jsonPath : $_" "ERROR" - exit 0 -} - -if (-not $config.Applications) { - Write-PreInstallLog "No Applications in preinstall.json" - exit 0 -} - -Write-PreInstallLog "Staged installer dir: $installerDir" -Write-PreInstallLog "Found $($config.Applications.Count) app entries in preinstall.json" - -# --- Site-name override: replace 'West Jefferson' in InstallArgs if -# site-config says otherwise. UDC_Setup.exe expects the spaced site -# name in quotes as arg 1, with a dash-prefixed machine number as arg 2. -$siteConfig = Get-SiteConfig -if ($siteConfig -and $siteConfig.siteName -and $siteConfig.siteName -ne 'West Jefferson') { - Write-PreInstallLog "Site config loaded - siteName: $($siteConfig.siteName)" - foreach ($app in $config.Applications) { - if ($app.InstallArgs -and $app.InstallArgs -match 'West Jefferson') { - $app.InstallArgs = $app.InstallArgs -replace 'West Jefferson', $siteConfig.siteName - Write-PreInstallLog " Overrode site name in $($app.Name) args: $($app.InstallArgs)" - } - } -} else { - Write-PreInstallLog "No site-config override for siteName (using defaults in preinstall.json)" -} - -# --- Machine-number override: replace "9999" in UDC InstallArgs if tech entered a number --- -$machineNumFile = 'C:\Enrollment\machine-number.txt' -if (Test-Path -LiteralPath $machineNumFile) { - $machineNum = (Get-Content -LiteralPath $machineNumFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($machineNum -and $machineNum -ne '9999' -and $machineNum -match '^\d+$') { - Write-PreInstallLog "Machine number from PXE menu: $machineNum" - foreach ($app in $config.Applications) { - if ($app.InstallArgs -and $app.InstallArgs -match '9999') { - $app.InstallArgs = $app.InstallArgs -replace '9999', $machineNum - Write-PreInstallLog " Overrode machine number in $($app.Name) args: $($app.InstallArgs)" - } - } - } else { - Write-PreInstallLog "Machine number: $machineNum (default placeholder)" - } -} else { - Write-PreInstallLog "No machine-number.txt found (using 9999 default)" -} - -# --- Pre-stage UDC settings backup if available. UDC_Setup.exe tries to -# pull udc_settings_.json from \\tsgwp00525\shared\SPC\UDC\Settings_Backups\, -# but at imaging time that share is unreachable (no SFLD creds yet). -# We carry a local mirror of Settings_Backups on the PXE server at -# Y:\pre-install\udc-backups\. Pre-creating C:\ProgramData\UDC\udc_settings.json -# before UDC_Setup.exe runs means the installer's File.Copy (overwrite:true) -# would overwrite it IF the share were reachable, but since it isn't, our -# pre-staged file survives and UDC launches with correct settings. -# UDC payload (settings backups + webserver settings) lives only in the -# collections per-pc-type dir - UDC is the "C" of "collections". On nocoll -# bays the dir doesn't exist; Test-Path skips silently. -$udcCollDir = Join-Path (Split-Path $PSScriptRoot -Parent) 'gea-shopfloor-collections' -if ($machineNum -and $machineNum -ne '9999') { - $udcBackupDir = Join-Path $udcCollDir 'udc-backups' - $udcBackup = Join-Path $udcBackupDir "udc_settings_$machineNum.json" - $udcTarget = 'C:\ProgramData\UDC\udc_settings.json' - if (Test-Path -LiteralPath $udcBackup) { - if (-not (Test-Path 'C:\ProgramData\UDC')) { - New-Item -Path 'C:\ProgramData\UDC' -ItemType Directory -Force | Out-Null - } - Copy-Item -Path $udcBackup -Destination $udcTarget -Force - Write-PreInstallLog "Pre-staged UDC settings from $udcBackup -> $udcTarget" - } else { - Write-PreInstallLog "No UDC settings backup for machine $machineNum at $udcBackup (skipping - normal for nocoll bays)" - } -} - -$udcWebSrc = Join-Path $udcCollDir 'udc_webserver_settings.json' -$udcWebDst = 'C:\ProgramData\UDC\udc_webserver_settings.json' -if (Test-Path -LiteralPath $udcWebSrc) { - if (-not (Test-Path 'C:\ProgramData\UDC')) { - New-Item -Path 'C:\ProgramData\UDC' -ItemType Directory -Force | Out-Null - } - Copy-Item -Path $udcWebSrc -Destination $udcWebDst -Force - Write-PreInstallLog "Pre-staged UDC webserver settings from $udcWebSrc -> $udcWebDst" -} else { - Write-PreInstallLog "No UDC webserver settings file at $udcWebSrc (skipping - normal for nocoll bays)" -} - -# --- Suppress Windows Defender Firewall "Allow access" prompts globally for -# this preinstall pass. Oracle's OUI extracts a JRE to a per-run -# %TEMP%\OraInstall\jdk\jre\bin\java.exe and binds a localhost -# port, which trips the unsigned-app firewall dialog. The temp path is -# timestamp-randomized so a path-based -Program rule can't match it. -# Turning off NotifyOnListen stops the prompt without weakening the -# firewall's actual block decisions. -try { - Set-NetFirewallProfile -Profile Domain,Public,Private -NotifyOnListen False -ErrorAction Stop - Write-PreInstallLog "Firewall NotifyOnListen disabled (Domain/Public/Private)" -} catch { - Write-PreInstallLog "Failed to disable firewall NotifyOnListen: $_" "WARN" -} - -# --- Pre-enable .NET Framework 3.5. Oracle 11.2 OUI uses a .NET 2.0/3.5 -# component on its welcome path; on Win10/11 NetFx3 is OFF by default -# and the first 3.5 API call pops the "Download and install this feature" -# dialog. Enable-WindowsOptionalFeature pulls payload from Windows Update -# when available; on hosts without internet at preinstall time this will -# fail and Oracle will still prompt (TODO: stage NetFx3 sxs cab on image -# and pass -Source for true air-gap support). Idempotent no-op when -# already enabled. Mirrors the per-PC enable in CMM/09-Setup-CMM.ps1. -try { - $netfx = Get-WindowsOptionalFeature -Online -FeatureName 'NetFx3' -ErrorAction Stop - if ($netfx.State -eq 'Enabled') { - Write-PreInstallLog ".NET Framework 3.5 already enabled" - } else { - Write-PreInstallLog ".NET Framework 3.5 state is $($netfx.State) - enabling now (may take a minute)..." - $result = Enable-WindowsOptionalFeature -Online -FeatureName 'NetFx3' -All -NoRestart -ErrorAction Stop - Write-PreInstallLog " Enable-WindowsOptionalFeature RestartNeeded=$($result.RestartNeeded)" - } -} catch { - Write-PreInstallLog "Failed to enable .NET 3.5: $_" "WARN" - Write-PreInstallLog " Continuing - Oracle and other 3.5-dependent installers may surface a Windows feature-install prompt" -} - -# --- Pre-create Windows Firewall rules for UDC + MTConnect Agent so the -# installer doesn't pop firewall-allow dialogs during silent install. -# Rules are idempotent (New-NetFirewallRule -ErrorAction SilentlyContinue -# on existing rule name is a no-op in practice; we remove-then-add). -$fwRules = @( - @{ Name = 'UDC'; Program = 'C:\Program Files\UDC\UDC.exe' }, - @{ Name = 'UDC MTConnect Agent'; Program = 'C:\ProgramData\UDC\MTConnect_UDC\Agent\agent.exe' } -) -foreach ($r in $fwRules) { - try { - Remove-NetFirewallRule -DisplayName $r.Name -ErrorAction SilentlyContinue - New-NetFirewallRule -DisplayName $r.Name -Direction Inbound -Program $r.Program ` - -Action Allow -Profile Any -ErrorAction Stop | Out-Null - Write-PreInstallLog "Firewall rule created: $($r.Name) -> $($r.Program)" - } catch { - Write-PreInstallLog "Firewall rule '$($r.Name)' failed: $_" "WARN" - } -} - -# --- Detection helper (mirrors Simple-Install.ps1's Test-ApplicationInstalled) --- -function Test-AppInstalled { - param($App) - - if (-not $App.DetectionMethod) { - return $false - } - - try { - switch ($App.DetectionMethod) { - "Registry" { - if (-not (Test-Path $App.DetectionPath)) { - return $false - } - if ($App.DetectionName) { - $value = Get-ItemProperty -Path $App.DetectionPath -Name $App.DetectionName -ErrorAction SilentlyContinue - if (-not $value) { - return $false - } - if ($App.DetectionValue) { - return ($value.$($App.DetectionName) -eq $App.DetectionValue) - } - return $true - } - return $true - } - "File" { - return Test-Path $App.DetectionPath - } - default { - Write-PreInstallLog " Unknown detection method: $($App.DetectionMethod)" "WARN" - return $false - } - } - } catch { - Write-PreInstallLog " Detection check threw: $_" "WARN" - return $false - } -} - -# --- Iterate apps --- -$installed = 0 -$skipped = 0 -$failed = 0 - -foreach ($app in $config.Applications) { - # Cancel any reboot a previous installer scheduled (some respect /norestart, some - # don't - VC++ 2008's bootstrapper sometimes triggers an immediate Windows reboot - # despite the flag). Doing this BEFORE each install protects the rest of the loop. - cmd /c "shutdown /a 2>nul" *>$null - - Write-PreInstallLog "==> $($app.Name)" - - # Filter by PCTypes - matches on wildcard, base type, composite type-subtype - # key, OR any alias-equivalent name. The 2026-05-04 rename reorg gave us - # gea-shopfloor-* PC type strings that need to match legacy ["Standard"], - # ["CMM"], etc filters in preinstall.json (and vice versa: a future - # preinstall.json that uses gea-shopfloor-* should still match a fleet PC - # whose pc-type.txt is still "Standard"). - $allowedTypes = @($app.PCTypes) - $aliasGroups = @( - @('Standard', 'Standard-Machine','Standard-Timeclock','gea-shopfloor-collections','gea-shopfloor-nocollections','gea-shopfloor-common'), - @('Standard-Machine', 'gea-shopfloor-collections','gea-shopfloor-nocollections'), - @('Standard-Timeclock', 'gea-shopfloor-common'), - @('CMM', 'gea-shopfloor-cmm'), - @('Keyence', 'gea-shopfloor-keyence'), - @('Lab', 'gea-shopfloor-common'), - @('WaxAndTrace', 'gea-shopfloor-waxtrace'), - @('Genspect', 'gea-shopfloor-genspect'), - @('Display', 'gea-shopfloor-display'), - @('Heattreat', 'gea-shopfloor-heattreat'), - @('PartMarker', 'gea-shopfloor-partmarker') - ) - $myNames = New-Object System.Collections.Generic.HashSet[string]([System.StringComparer]::OrdinalIgnoreCase) - foreach ($n in @($pcType, $pcProfileKey) | Where-Object { $_ }) { - [void]$myNames.Add($n) - foreach ($g in $aliasGroups) { - if ($g -icontains $n) { foreach ($x in $g) { [void]$myNames.Add($x) } } - } - } - # PCTypesStrict=true bypasses the alias-expansion matcher and requires - # the actual pcType (or composite pcProfileKey) to literally equal one - # of the allowedTypes entries. Used by UDC because the alias graph - # transitively connects gea-shopfloor-collections <-> nocollections via - # the legacy 'Standard' group, which would otherwise cause UDC to install - # on nocoll bays even with PCTypes=['gea-shopfloor-collections']. - $matchesType = ($allowedTypes -contains '*') - if (-not $matchesType) { - if ($app.PCTypesStrict) { - foreach ($t in $allowedTypes) { - if (($pcType -ieq $t) -or ($pcProfileKey -ieq $t)) { $matchesType = $true; break } - } - } else { - foreach ($t in $allowedTypes) { - if ($myNames.Contains($t)) { $matchesType = $true; break } - foreach ($g in $aliasGroups) { - if ($g -icontains $t) { - foreach ($x in $g) { if ($myNames.Contains($x)) { $matchesType = $true; break } } - } - if ($matchesType) { break } - } - } - } - } - if (-not $matchesType) { - Write-PreInstallLog " PCTypes filter excludes '$pcProfileKey' (allowed: $($allowedTypes -join ', ')) - skipping" - $skipped++ - continue - } - - # Detection check - if (Test-AppInstalled -App $app) { - Write-PreInstallLog " Already installed - skipping" - $skipped++ - continue - } - - # Locate installer file - $installerPath = Join-Path $installerDir $app.Installer - if (-not (Test-Path $installerPath)) { - Write-PreInstallLog " Installer file not found: $installerPath" "ERROR" - $failed++ - continue - } - - Write-PreInstallLog " Installing from $installerPath" - if ($app.InstallArgs) { - Write-PreInstallLog " InstallArgs: $($app.InstallArgs)" - } - - # Per-app verbose msiexec log path - written by /L*v on MSI installs and tailed - # into the runner log on failure so we don't need to dig through C:\Logs manually. - $safeName = $app.Name -replace '[^a-zA-Z0-9]','_' - $msiLog = Join-Path $logDir "msi-$safeName.log" - if (Test-Path $msiLog) { Remove-Item $msiLog -Force -ErrorAction SilentlyContinue } - - try { - # We use [System.Diagnostics.Process]::Start() directly instead of Start-Process - # because PowerShell 5.1's Start-Process -PassThru has a bug where the returned - # Process object's OS handle is disposed when control returns to the script, - # causing ExitCode to always read as $null even after WaitForExit() succeeds. - # Calling Process.Start() directly returns a Process object with a live handle - # that exposes ExitCode correctly. We poll HasExited so UDC_Setup.exe (which - # hangs forever after spawning a hidden WPF window) can be killed via the - # detection-during-install path. - $psi = New-Object System.Diagnostics.ProcessStartInfo - $psi.UseShellExecute = $false - $psi.CreateNoWindow = $true - $psi.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden - - if ($app.Type -eq "MSI") { - $psi.FileName = "msiexec.exe" - $psi.Arguments = "/i `"$installerPath`"" - if ($app.InstallArgs) { - $psi.Arguments += " " + $app.InstallArgs - } - $psi.Arguments += " /L*v `"$msiLog`"" - Write-PreInstallLog " msiexec verbose log: $msiLog" - } - elseif ($app.Type -eq "EXE") { - $psi.FileName = $installerPath - if ($app.InstallArgs) { - $psi.Arguments = $app.InstallArgs - } - # If the JSON entry specifies a LogFile (per-installer log written by - # the EXE itself - e.g. Setup-OpenText.ps1 -> C:\Logs\PreInstall\Setup- - # OpenText.log), surface it on failure the same way we surface the - # msiexec /L*v verbose log for MSI installs. Lets EXE wrappers actually - # report what went wrong inside. - if ($app.LogFile) { - Write-PreInstallLog " Installer log: $($app.LogFile)" - } - } - else { - Write-PreInstallLog " Unsupported Type: $($app.Type) - skipping" "ERROR" - $failed++ - continue - } - - $proc = [System.Diagnostics.Process]::Start($psi) - - # Poll for completion: process exit OR detection success (whichever happens first) - $timeoutSec = 600 # 10 min hard cap per app - $pollInterval = 5 - $elapsed = 0 - $killedAfterDetect = $false - - while ($elapsed -lt $timeoutSec) { - if ($proc.HasExited) { break } - - # Detection-during-install kill is OPT-IN via "KillAfterDetection: true" - # in the JSON entry. It's only safe for installers that hang forever after - # creating their detection markers (UDC_Setup.exe spawns a hidden WPF window - # and never exits). For normal installers (Oracle, msiexec, etc.) the - # detection registry key often gets written midway through the install AND - # msiexec is still doing post-install cleanup AND msiserver is still holding - # the install mutex - killing msiexec at that point leaves the system in a - # bad state and the NEXT msiexec call returns 1618 ERROR_INSTALL_ALREADY_ - # RUNNING. So opt-out by default; only kill apps that explicitly need it. - if ($app.KillAfterDetection -and (Test-AppInstalled -App $app)) { - Write-PreInstallLog " Detection passed at $elapsed s - killing installer to advance (KillAfterDetection)" - try { $proc.Kill(); $proc.WaitForExit(5000) | Out-Null } catch { } - - # UDC's installer auto-launches UDC.exe silently; it's UDC.exe - # (not UDC_Setup) that actually writes udc_settings.json from - # the CLI args. Killing it immediately after the detection - # marker appears loses the MachineNumber write. Wait (up to - # 15s) for settings.json to reflect the target number, then - # kill. Works uniformly for tech-typed numbers and the 9999 - # placeholder - whichever was passed as arg 2 is what we - # expect to see persist. - if ($app.Name -eq "UDC") { - $udcJson = 'C:\ProgramData\UDC\udc_settings.json' - $targetNum = $null - if ($app.InstallArgs -match '-(\d+)\s*$') { $targetNum = $matches[1] } - $waitSec = 0 - while ($waitSec -lt 15) { - if (Test-Path $udcJson) { - try { - $mn = (Get-Content $udcJson -Raw -ErrorAction Stop | - ConvertFrom-Json).GeneralSettings.MachineNumber - if ($mn -and $mn -eq $targetNum) { - Write-PreInstallLog " UDC persisted MachineNumber=$mn after $waitSec s" - break - } - } catch { } - } - Start-Sleep -Seconds 1 - $waitSec++ - } - if ($waitSec -ge 15) { - Write-PreInstallLog " UDC did not persist MachineNumber within 15 s - killing anyway" "WARN" - } - Get-Process UDC -ErrorAction SilentlyContinue | ForEach-Object { - try { $_.Kill(); $_.WaitForExit(2000) | Out-Null } catch { } - } - } - - $killedAfterDetect = $true - break - } - - Start-Sleep -Seconds $pollInterval - $elapsed += $pollInterval - } - - if (-not $proc.HasExited -and -not $killedAfterDetect) { - Write-PreInstallLog " TIMEOUT after $timeoutSec seconds - killing installer" "ERROR" - try { $proc.Kill() } catch { } - if ($app.Name -eq "UDC") { - Get-Process UDC -ErrorAction SilentlyContinue | ForEach-Object { - try { $_.Kill() } catch { } - } - } - $failed++ - continue - } - - if ($killedAfterDetect) { - Write-PreInstallLog " SUCCESS (verified via detection during install)" - $installed++ - } - else { - # Start-Process -PassThru returns a Process object whose ExitCode is null - # until WaitForExit() is called - even if HasExited is already true. Without - # this, every install that goes through the exit-code branch gets reported - # as "Exit code - FAILED" (empty) regardless of the real result. - try { $proc.WaitForExit() } catch { } - $exitCode = $proc.ExitCode - - if ($exitCode -eq 0 -or $exitCode -eq 3010) { - Write-PreInstallLog " Exit code $exitCode after $elapsed s - SUCCESS" - if ($exitCode -eq 3010) { - Write-PreInstallLog " (Reboot required for $($app.Name))" - } - $installed++ - } - else { - Write-PreInstallLog " Exit code $exitCode - FAILED" "ERROR" - - # If the JSON entry specifies a LogFile for an EXE install (e.g. - # Setup-OpenText.ps1 writes its own log at C:\Logs\PreInstall\Setup- - # OpenText.log), tail it here so the runner log surfaces the actual - # cause without us having to dig through C:\Logs manually. - if ($app.Type -eq "EXE" -and $app.LogFile -and (Test-Path $app.LogFile)) { - Write-PreInstallLog " --- last 30 lines of $($app.LogFile) ---" - Get-Content $app.LogFile -Tail 30 -ErrorAction SilentlyContinue | ForEach-Object { - Write-PreInstallLog " $_" - } - Write-PreInstallLog " --- end installer log tail ---" - } - - # Surface the *meaningful* lines from the verbose msiexec log (not just - # the tail, which is rollback/cleanup noise). The actual root-cause lines - # are: MSI error notes (Note: 1: ), failed action returns (return - # value 3), errors logged by custom actions, and any line containing the - # word "Error". Grep these out so the runner log shows the smoking gun. - if ($app.Type -eq "MSI" -and (Test-Path $msiLog)) { - Write-PreInstallLog " --- meaningful lines from $msiLog ---" - $patterns = @( - 'Note: 1: ', - 'return value 3', - 'Error \d+\.', - 'CustomAction .* returned actual error', - 'Failed to ', - 'Installation failed', - 'Calling custom action', - '1: 2262', # Database not found - '1: 2203', # Cannot open database - '1: 2330' # Insufficient permissions - ) - $regex = ($patterns -join '|') - $matches = Select-String -Path $msiLog -Pattern $regex -ErrorAction SilentlyContinue | - Select-Object -First 30 - if ($matches) { - foreach ($m in $matches) { - Write-PreInstallLog " $($m.Line.Trim())" - } - } else { - Write-PreInstallLog " (no error patterns matched - falling back to last 25 lines)" - Get-Content $msiLog -Tail 25 -ErrorAction SilentlyContinue | ForEach-Object { - Write-PreInstallLog " $_" - } - } - Write-PreInstallLog " --- end MSI log scan ---" - } - $failed++ - } - } - } catch { - Write-PreInstallLog " Install threw: $_" "ERROR" - $failed++ - } -} - -Write-PreInstallLog "============================================" -Write-PreInstallLog "PreInstall complete: $installed installed, $skipped skipped, $failed failed" -Write-PreInstallLog "============================================" - -# Final reboot cancel - if the last installer in the loop scheduled one, the -# dispatcher's later `shutdown /a` won't fire until the next baseline script starts. -# Cancel here so control returns cleanly to Run-ShopfloorSetup.ps1. -cmd /c "shutdown /a 2>nul" *>$null - -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/03-ShellDefaults.ps1 b/playbook/shopfloor-setup/Shopfloor/03-ShellDefaults.ps1 deleted file mode 100644 index 3897da9..0000000 --- a/playbook/shopfloor-setup/Shopfloor/03-ShellDefaults.ps1 +++ /dev/null @@ -1,127 +0,0 @@ -# 03-ShellDefaults.ps1 - Shell appearance defaults for all new user profiles. -# -# Applies the following tweaks so shopfloor PCs look/behave closer to the -# Win10 baseline and don't reach out to Bing from the Start menu: -# 1. Taskbar aligned to the left (TaskbarAl=0). Per-user setting, written -# into the Default User hive so every NEW profile inherits it. -# 2. Start menu "Recommended" section hidden (HideRecommendedSection=1). -# 3. Web results + Bing search-box suggestions killed in Start/Search. -# 4. Cortana disabled via policy (no-op on LTSC 2024 since Cortana isn't -# shipped, but set anyway for belt-and-suspenders). -# -# 2-4 are HKLM policy values - W11 LTSC / Enterprise honour them; Home/Pro -# do not. Fine here since the fleet is LTSC 2024. -# -# Existing profiles (SupportUser, pre-existing end-user accounts) are NOT -# modified for TaskbarAl - the Default User hive is a template copied on -# profile creation, not a live cascade. The HKLM policies affect everyone. - -$ErrorActionPreference = 'Continue' - -$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) -if (-not $isAdmin) { - Write-Host "ERROR: 03-ShellDefaults.ps1 must run as Administrator." -ForegroundColor Red - exit 1 -} - -# ---- 1. HKLM policy DWORDs (all LTSC-honoured) ------------------------------- -# Each entry: KeyPath, ValueName, ValueData. Key is created if missing. -$hklmPolicies = @( - # Hide Start menu "Recommended" section. - @{ Key = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer' - Name = 'HideRecommendedSection'; Value = 1 } - - # Kill web results in Start/taskbar search. - @{ Key = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' - Name = 'DisableWebSearch'; Value = 1 } - @{ Key = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' - Name = 'ConnectedSearchUseWeb'; Value = 0 } - - # Disable Cortana (policy; LTSC doesn't ship Cortana but this is harmless). - @{ Key = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' - Name = 'AllowCortana'; Value = 0 } - - # Kill Bing-powered search-box suggestions (per-keystroke telemetry). - @{ Key = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer' - Name = 'DisableSearchBoxSuggestions'; Value = 1 } -) - -foreach ($p in $hklmPolicies) { - try { - if (-not (Test-Path $p.Key)) { - New-Item -Path $p.Key -Force | Out-Null - } - Set-ItemProperty -Path $p.Key -Name $p.Name -Value $p.Value -Type DWord -Force - Write-Host ("Set {0}\{1} = {2}" -f $p.Key, $p.Name, $p.Value) - } catch { - Write-Warning ("Failed to set {0}\{1}: {2}" -f $p.Key, $p.Name, $_) - } -} - -# ---- 2. Set Adobe Acrobat Reader as default PDF viewer ---- -# OEMDefaultAssociations.xml is read when a new user profile is created. -# Deploying it before ShopFloor's first logon means the profile lands with -# Acrobat as the PDF handler instead of Edge. Existing profiles (SupportUser) -# are not affected. DISM /import-defaultappassociations writes the XML to -# C:\Windows\System32\OEMDefaultAssociations.xml and sets the policy key. -$assocXml = @" - - - - -"@ -$assocPath = Join-Path $env:TEMP 'DefaultAssociations.xml' -try { - Set-Content -Path $assocPath -Value $assocXml -Encoding UTF8 -Force - $out = & dism.exe /online /import-defaultappassociations:"$assocPath" 2>&1 - if ($LASTEXITCODE -eq 0) { - Write-Host "Set .pdf default to Acrobat.Document.DC via DISM" - } else { - Write-Warning "DISM import-defaultappassociations returned $LASTEXITCODE" - } - Remove-Item $assocPath -Force -ErrorAction SilentlyContinue -} catch { - Write-Warning "Failed to set default PDF viewer: $_" -} - -# ---- 3. Taskbar left-align via Default User hive ---- -$defaultHive = 'C:\Users\Default\NTUSER.DAT' -$mountPoint = 'HKU\SFLDDefault' -$regPath = 'Registry::HKEY_USERS\SFLDDefault\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' - -if (-not (Test-Path -LiteralPath $defaultHive)) { - Write-Warning "Default User hive not found at $defaultHive - skipping taskbar tweak." - exit 0 -} - -# Unload a stale mount from a previous run, if any. reg unload returns -# non-zero when nothing is mounted; ignore that. -& reg.exe unload $mountPoint *> $null - -$loadOutput = & reg.exe load $mountPoint $defaultHive 2>&1 -if ($LASTEXITCODE -ne 0) { - Write-Warning "reg load failed ($LASTEXITCODE): $loadOutput" - exit 1 -} - -try { - if (-not (Test-Path $regPath)) { - New-Item -Path $regPath -Force | Out-Null - } - Set-ItemProperty -Path $regPath -Name 'TaskbarAl' -Value 0 -Type DWord -Force - Write-Host "Set Default User TaskbarAl=0 (left-aligned)" -} catch { - Write-Warning "Failed to set TaskbarAl: $_" -} finally { - # Force GC so PowerShell drops its handles on the hive before unload, - # otherwise reg unload fails with "The process cannot access the file". - [gc]::Collect() - [gc]::WaitForPendingFinalizers() - [gc]::Collect() - & reg.exe unload $mountPoint *> $null - if ($LASTEXITCODE -ne 0) { - Write-Warning "reg unload returned $LASTEXITCODE - Default User hive may still be mounted" - } -} - -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/04-NetworkAndWinRM.ps1 b/playbook/shopfloor-setup/Shopfloor/04-NetworkAndWinRM.ps1 deleted file mode 100644 index d2e4126..0000000 --- a/playbook/shopfloor-setup/Shopfloor/04-NetworkAndWinRM.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -# 04-NetworkAndWinRM.ps1 -- Set network profiles to Private and enable WinRM (baseline) - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '04-NetworkAndWinRM.log') -Append -Force | Out-Null } catch {} - -# --- Set all network profiles to Private --- -Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private -Write-Host "All network profiles set to Private." - -# --- Enable and configure WinRM --- -Enable-PSRemoting -Force -SkipNetworkProfileCheck -Write-Host "WinRM enabled." -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/Shopfloor/05-OfficeShortcuts.ps1 b/playbook/shopfloor-setup/Shopfloor/05-OfficeShortcuts.ps1 deleted file mode 100644 index b5fa8b6..0000000 --- a/playbook/shopfloor-setup/Shopfloor/05-OfficeShortcuts.ps1 +++ /dev/null @@ -1,101 +0,0 @@ -# 05-OfficeShortcuts.ps1 - Public desktop + Default User Start Menu shortcuts for -# the core Office apps (Excel, Word, PowerPoint). -# -# Only runs if Office is actually installed - self-detects via EXE existence so it -# silently no-ops on PC types whose ppkg didn't include Office (Display kiosks, -# Wax/Trace, etc.). Office Click-to-Run installs the binaries but doesn't create -# desktop shortcuts; this script fills that gap. -# -# Shortcuts land in two places: -# - C:\Users\Public\Desktop\ - visible to all users immediately -# - C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ -# - inherited by every NEW user profile -# (Azure AD logons after the device is -# enrolled) -# -# Idempotent: overwrites existing .lnk files each run. - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '05-OfficeShortcuts.log') -Append -Force | Out-Null } catch {} - -$officeApps = @( - @{ Exe = 'EXCEL.EXE'; Name = 'Excel' } - @{ Exe = 'WINWORD.EXE'; Name = 'Word' } - @{ Exe = 'POWERPNT.EXE'; Name = 'PowerPoint' } -) - -# Office binary location varies by install type and version: -# - Office 2019+ / M365 / LTSC Click-to-Run: \Microsoft Office\root\Office16\ -# - Office 2016 MSI (legacy): \Microsoft Office\Office16\ (no root\) -# - Office 2013 MSI: \Microsoft Office\Office15\ -# - x86 Office on 64-bit Windows: Program Files (x86)\... -# The standard ShopFloor Office ppkg is x86 Click-to-Run so normal case -# is "Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE", but -# we check all variants so the script works across SKUs. -$officeSearchRoots = @( - 'C:\Program Files\Microsoft Office\root\Office16', - 'C:\Program Files (x86)\Microsoft Office\root\Office16', - 'C:\Program Files\Microsoft Office\Office16', - 'C:\Program Files (x86)\Microsoft Office\Office16', - 'C:\Program Files\Microsoft Office\Office15', - 'C:\Program Files (x86)\Microsoft Office\Office15' -) - -$officeRoot = $null -foreach ($base in $officeSearchRoots) { - if (Test-Path (Join-Path $base 'EXCEL.EXE')) { - $officeRoot = $base - break - } -} - -if (-not $officeRoot) { - Write-Host "No Office install detected - skipping shortcut creation." - Write-Host "Searched:" - foreach ($p in $officeSearchRoots) { - $hit = if (Test-Path $p) { "(dir exists)" } else { "(missing)" } - Write-Host " $p $hit" - } - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -Write-Host "Office detected at: $officeRoot" - -$publicDesktop = 'C:\Users\Public\Desktop' -$defaultStart = 'C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs' - -if (-not (Test-Path $defaultStart)) { - New-Item -Path $defaultStart -ItemType Directory -Force | Out-Null -} - -$shell = New-Object -ComObject WScript.Shell - -foreach ($app in $officeApps) { - $exePath = Join-Path $officeRoot $app.Exe - if (-not (Test-Path $exePath)) { - Write-Warning "$($app.Name) EXE not found at $exePath - skipping." - continue - } - foreach ($dest in @($publicDesktop, $defaultStart)) { - $lnkPath = Join-Path $dest "$($app.Name).lnk" - try { - $sc = $shell.CreateShortcut($lnkPath) - $sc.TargetPath = $exePath - $sc.WorkingDirectory = $officeRoot - $sc.IconLocation = "$exePath,0" - $sc.Save() - Write-Host " $($app.Name) -> $lnkPath" - } - catch { - Write-Warning "Failed to create $lnkPath : $($_.Exception.Message)" - } - } -} - -[System.Runtime.InteropServices.Marshal]::ReleaseComObject($shell) | Out-Null -Write-Host "Office shortcuts created." -try { Stop-Transcript | Out-Null } catch {} -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/06-OrganizeDesktop.ps1 b/playbook/shopfloor-setup/Shopfloor/06-OrganizeDesktop.ps1 deleted file mode 100644 index 2640731..0000000 --- a/playbook/shopfloor-setup/Shopfloor/06-OrganizeDesktop.ps1 +++ /dev/null @@ -1,646 +0,0 @@ -# 06-OrganizeDesktop.ps1 - Single source of truth for the Public Desktop -# layout. Builds three category folders and fills them, so end users see -# a clean desktop instead of 20+ loose icons. -# -# Creates three subfolders under C:\Users\Public\Desktop: -# Office\ - Excel, Word, PowerPoint, Outlook, OneNote, etc. -# Shopfloor Tools\ - UDC, eDNC, HostExplorer, MarkZebra, PC-DMIS, Hexagon, -# WJ Shopfloor, Defect_Tracker, NTLARS, etc. -# Web Links\ - .url shortcuts (internal portals) -# -# Two phases: -# PHASE 1 (Invoke-DesktopSweep): walks everything at the desktop ROOT, -# classifies each .lnk / .url by filename / extension / .lnk target, and -# moves it into the right category folder. Unknown items are LEFT AT -# THE ROOT on purpose. eDNC.lnk and NTLARS.lnk are allowlisted to stay -# at the root - end users click them too often to bury in a folder. -# -# PHASE 2 (Add-ShopfloorToolsApps): materializes specific app shortcuts -# into Shopfloor Tools\ from known .exe paths (UDC, eDNC, NTLARS). For -# MSI-advertised shortcuts that don't have a resolvable target (WJ -# Shopfloor, Defect_Tracker), finds the existing .lnk wherever it lives -# and copies it in. This runs AFTER the sweep so it overwrites any -# stale copies the sweeper may have moved in. -# -# Also registers an "Organize Public Desktop" scheduled task that re-runs -# the sweep (phase 1) at every logon. Phase 2 doesn't re-run - the -# shortcuts it creates are stable and 06 on first run populates them. -# -# 07-TaskbarLayout.ps1 reads the result of this script and writes -# LayoutModification.xml to pin specific shortcuts to the taskbar. - -$ErrorActionPreference = 'Continue' - -# ============================================================================ -# Admin check - writing to C:\Users\Public\Desktop\* and registering -# system-wide scheduled tasks both require elevation. Fail fast if not -# admin so we don't spam half-successful garbage across the output. -# ============================================================================ -$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) -if (-not $isAdmin) { - Write-Host "" - Write-Host "ERROR: 06-OrganizeDesktop.ps1 must run as Administrator." -ForegroundColor Red - Write-Host " Re-run from an elevated PowerShell:" -ForegroundColor Red - Write-Host " Start -> type 'powershell' -> right-click -> Run as administrator" -ForegroundColor Red - Write-Host "" - exit 1 -} - -# Transcript. 06 runs as a SYSTEM scheduled task at every logon via the -# 'Organize Public Desktop' task, so without a transcript its decisions -# (what got added, what got suppressed) are invisible. Append mode keeps -# a history across logons; session header + PID makes individual runs -# easy to find. -$transcriptDir = 'C:\Logs\SFLD' -if (-not (Test-Path $transcriptDir)) { - try { New-Item -ItemType Directory -Path $transcriptDir -Force | Out-Null } catch {} -} -$transcriptPath = Join-Path $transcriptDir '06-OrganizeDesktop.log' -try { Start-Transcript -Path $transcriptPath -Append -Force | Out-Null } catch {} -Write-Host "" -Write-Host "================================================================" -Write-Host "=== 06-OrganizeDesktop session start (PID $PID, $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')) ===" -Write-Host "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" -Write-Host "================================================================" - -# ============================================================================ -# Cleanup: remove 'Shopfloor Intune Sync' task after sync completes -# -# Monitor-IntuneProgress.ps1 registers that task as BUILTIN\Users + RunLevel -# Limited (needs a user context to show the QR code / Configure-PC prompt), -# and a Limited task cannot Unregister-ScheduledTask itself. So when sync -# completes it just writes C:\Enrollment\sync-complete.txt as a marker and -# the task stays around firing on every logon as a no-op. -# -# 06 runs as SYSTEM via its own sweep task, which DOES have permission to -# delete any task. When we see the marker, drop the stale task so Task -# Scheduler doesn't keep the dead entry forever. -# ============================================================================ -$syncCompleteMarker = 'C:\Enrollment\sync-complete.txt' -$syncTaskName = 'Shopfloor Intune Sync' -if (Test-Path -LiteralPath $syncCompleteMarker) { - $syncTask = Get-ScheduledTask -TaskName $syncTaskName -ErrorAction SilentlyContinue - if ($syncTask) { - try { - Unregister-ScheduledTask -TaskName $syncTaskName -Confirm:$false -ErrorAction Stop - Write-Host "Removed stale '$syncTaskName' task (sync complete, marker present)." - } catch { - Write-Warning "Failed to remove '$syncTaskName' task: $_" - } - } -} - -# Load site config + PC profile -. "$PSScriptRoot\lib\Get-PCProfile.ps1" - -$publicDesktop = 'C:\Users\Public\Desktop' -$shopfloorToolsDir = Join-Path $publicDesktop 'Shopfloor Tools' -$scriptPath = $MyInvocation.MyCommand.Path -$scriptDir = Split-Path -Parent $scriptPath - -# Filenames that always stay at the desktop root regardless of classification. -# Empty right now - every shortcut lives inside a category folder for a -# clean end-user desktop. Add entries here if a future shortcut needs to -# stay pinned at root. -$keepAtRoot = @() - -# ============================================================================ -# Phase 1: Sweep loose shortcuts at desktop root into category folders -# ============================================================================ -function Invoke-DesktopSweep { - param([string]$DesktopPath) - - if (-not (Test-Path -LiteralPath $DesktopPath)) { - Write-Host "Public desktop not found at $DesktopPath - skipping sweep." - return - } - - # Category definitions. Order matters: first match wins. Each category - # can classify by file Extension, file Name (regex), or .lnk Target - # (regex, resolved via WScript.Shell). - $categories = [ordered]@{ - 'Office' = @{ - Name = @( - '^(Excel|Word|PowerPoint|Outlook|OneNote|Access|Publisher|OneDrive)(\s|$)' - ) - Target = @( - '\\(EXCEL|WINWORD|POWERPNT|OUTLOOK|ONENOTE|MSACCESS|MSPUB)\.EXE$', - '\\OneDrive\.exe$' - ) - } - 'Shopfloor Tools' = @{ - Name = @( - '^UDC', - 'eDNC', '\bDNC\b', 'DncMain', 'GE DNC', 'NTLARS', - 'Host\s*Explorer', 'TN3270', 'TN5250', 'HE\s*3270', 'HE\s*5250', - # OpenText / 'WJ Shopfloor' / 'ShopFloor' shortcuts left on - # the desktop intentionally. The actual filename varies by - # OpenText profile (e.g. 'WJ Shopfloor OpenText.lnk') so the - # taskbar pin path mismatch silently skipped these. Leaving - # them at the public desktop top level instead. - 'Defect[_\s-]?Tracker', - 'MarkZebra', 'Zebra', - 'PC-?DMIS', - 'Hexagon', 'CLM\s*Tools', - 'Blancco', - 'Keyence' - ) - Target = @( - '\\UDC\.exe$', - 'DncMain\.exe$', 'NTLARS\.exe$', 'DNCRemote', - 'HostExplorer\.exe$', 'hostex32\.exe$', 'humicon15\.exe$', - 'PC-?DMIS', - 'Hexagon', - 'Defect_Tracker\.application$' - ) - } - 'Web Links' = @{ - Extension = @('.url') - } - } - - # Category folders are created LAZILY - only when we're about to move - # something into them - so a Display / Wax-Trace PC without Office - # doesn't get an empty Office\ folder littering the desktop. See - # Remove-EmptyCategoryFolders at the end of the script for the - # post-sweep cleanup pass that finishes the job. - - # WScript.Shell for resolving .lnk targets - $shell = $null - try { $shell = New-Object -ComObject WScript.Shell } catch {} - - # Only sweep files at the desktop root, never recurse into the category - # folders themselves (that would loop things back). - $items = @(Get-ChildItem -LiteralPath $DesktopPath -File -ErrorAction SilentlyContinue) - - $moved = 0 - $skipped = 0 - - foreach ($item in $items) { - # Allowlist check: never sweep items the user wants to keep visible - if ($keepAtRoot -contains $item.Name) { - Write-Host " keep: $($item.Name) (allowlisted)" - continue - } - - $category = $null - - # 1. Extension match (cheapest) - foreach ($cat in $categories.Keys) { - $exts = $categories[$cat].Extension - if ($exts -and ($exts -contains $item.Extension)) { - $category = $cat - break - } - } - - # 2. File name regex match - if (-not $category) { - foreach ($cat in $categories.Keys) { - $pats = $categories[$cat].Name - if (-not $pats) { continue } - foreach ($p in $pats) { - if ($item.BaseName -match $p) { - $category = $cat - break - } - } - if ($category) { break } - } - } - - # 3. .lnk target resolution - if (-not $category -and $item.Extension -ieq '.lnk' -and $shell) { - try { - $sc = $shell.CreateShortcut($item.FullName) - $target = $sc.TargetPath - if ($target) { - foreach ($cat in $categories.Keys) { - $pats = $categories[$cat].Target - if (-not $pats) { continue } - foreach ($p in $pats) { - if ($target -match $p) { - $category = $cat - break - } - } - if ($category) { break } - } - } - } catch {} - } - - if ($category) { - $destDir = Join-Path $DesktopPath $category - if (-not (Test-Path -LiteralPath $destDir)) { - try { - New-Item -ItemType Directory -Path $destDir -Force -ErrorAction Stop | Out-Null - } catch { - Write-Warning "Failed to create category folder '$category' : $_" - continue - } - } - $destPath = Join-Path $destDir $item.Name - try { - Move-Item -LiteralPath $item.FullName -Destination $destPath -Force -ErrorAction Stop - Write-Host " moved: $($item.Name) -> $category\" - $moved++ - } catch { - Write-Warning "Failed to move $($item.Name) : $_" - } - } else { - $skipped++ - } - } - - if ($shell) { - try { [System.Runtime.InteropServices.Marshal]::ReleaseComObject($shell) | Out-Null } catch {} - } - - Write-Host "Sweep complete: $moved moved, $skipped unclassified (left at root)." -} - -# ============================================================================ -# Phase 2: Materialize specific app shortcuts into Shopfloor Tools\ -# -# Runs AFTER the sweep. Creates fresh .lnk files for apps we can target by -# .exe path (UDC, eDNC, NTLARS) and copies existing .lnk files for apps -# that are MSI-advertised and have no resolvable target (WJ Shopfloor, -# Defect_Tracker). Overwrites whatever the sweeper may have moved in - -# this is intentional because fresh shortcuts are more reliable than -# whatever install crud might be floating around. -# -# Each app is CONDITIONAL - if its source isn't present on this PC, the -# entry is silently skipped. Safe to run on all shopfloor PC types. -# ============================================================================ - -function New-ShopfloorLnk { - param( - [string]$Path, - [string]$Target, - [string]$Arguments = '', - [string]$WorkingDirectory = '' - ) - $wsh = New-Object -ComObject WScript.Shell - try { - $sc = $wsh.CreateShortcut($Path) - $sc.TargetPath = $Target - if ($Arguments) { $sc.Arguments = $Arguments } - if ($WorkingDirectory) { $sc.WorkingDirectory = $WorkingDirectory } - elseif ($Target) { - $parent = Split-Path -Parent $Target - if ($parent) { $sc.WorkingDirectory = $parent } - } - $sc.IconLocation = "$Target,0" - $sc.Save() - return $true - } catch { - Write-Warning "Failed to create $Path : $_" - return $false - } finally { - try { [System.Runtime.InteropServices.Marshal]::ReleaseComObject($wsh) | Out-Null } catch {} - } -} - -# Look up an existing .lnk file across the paths where installers / ppkgs -# typically drop them. Used for apps where we don't build the .lnk from -# an .exe (because the target is an MSI-advertised Darwin descriptor). -function Find-ExistingLnk { - param([string]$Filename) - - $candidates = @( - (Join-Path $publicDesktop $Filename), - (Join-Path $shopfloorToolsDir $Filename), - "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\$Filename", - "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Shopfloor Tools\$Filename" - ) - foreach ($c in $candidates) { - if (Test-Path -LiteralPath $c) { return $c } - } - return $null -} - -function Add-ShopfloorToolsApps { - # App registry - each entry describes how to materialize one shortcut - # into Shopfloor Tools\. Folder creation is deferred until we know we - # have at least one app to put in it (lazy creation, so PC types with - # nothing installed don't get an empty Shopfloor Tools folder). - # - # Kind = 'exe' -> build a fresh .lnk from ExePath - # Kind = 'existing' -> copy an existing .lnk via Find-ExistingLnk - $cfgApps = Get-ProfileValue 'desktopApps' - - # An EMPTY configured list means "no desktop apps" and must be honoured. - # Get-ProfileValue returns $null only when the key is absent from both the - # profile and site-config, so $null is the real "not configured" signal. - # - # The old test also required .Count -gt 0, which meant "desktopApps": [] - # fell through to the hardcoded shopfloor list below - so a Display kiosk, - # which explicitly configures an empty list, was given UDC, eDNC, NTLARS, - # WJ Shopfloor and Defect_Tracker shortcuts. Configuring "none" produced - # "everything". Observed on 579C144, 2026-08-06. - if ($null -ne $cfgApps) { - $apps = @($cfgApps | ForEach-Object { - $entry = @{ Name = $_.name; Kind = $_.kind } - if ($_.kind -eq 'exe') { $entry.ExePath = $_.exePath } - if ($_.kind -eq 'existing') { $entry.SourceName = $_.sourceName } - $entry - }) - } else { - $apps = @( - @{ Name = 'UDC'; Kind = 'exe'; ExePath = 'C:\Program Files\UDC\UDC.exe' } - @{ Name = 'eDNC'; Kind = 'exe'; ExePath = 'C:\Program Files (x86)\Dnc\bin\DncMain.exe' } - @{ Name = 'NTLARS'; Kind = 'exe'; ExePath = 'C:\Program Files (x86)\Dnc\Common\NTLARS.exe' } - @{ Name = 'WJ Shopfloor'; Kind = 'existing'; SourceName = 'WJ Shopfloor.lnk' } - @{ Name = 'Defect_Tracker'; Kind = 'exe'; ExePath = 'C:\Program Files (x86)\WJF_Defect_Tracker\Defect_Tracker.exe' } - ) - } - - # Lazy folder creation - only create Shopfloor Tools\ the first time - # we have an app that's actually going to land in it. PC types with - # nothing installed get no empty folder. - $ensureToolsDir = { - if (-not (Test-Path -LiteralPath $shopfloorToolsDir)) { - try { - New-Item -ItemType Directory -Path $shopfloorToolsDir -Force -ErrorAction Stop | Out-Null - return $true - } catch { - Write-Warning "Failed to create $shopfloorToolsDir : $_" - return $false - } - } - return $true - } - - foreach ($app in $apps) { - $dest = Join-Path $shopfloorToolsDir "$($app.Name).lnk" - - switch ($app.Kind) { - 'exe' { - if (Test-Path -LiteralPath $app.ExePath) { - if (-not (& $ensureToolsDir)) { break } - if (New-ShopfloorLnk -Path $dest -Target $app.ExePath) { - Write-Host " created: $($app.Name) -> $dest" - } - } else { - Write-Host " skip: $($app.Name) - target not installed ($($app.ExePath))" -ForegroundColor DarkGray - } - } - - 'existing' { - $src = Find-ExistingLnk $app.SourceName - if ($src) { - # Skip if the sweep already moved the source into the - # destination folder (src == dest -> "cannot overwrite - # the item with itself"). - if ((Resolve-Path -LiteralPath $src -ErrorAction SilentlyContinue).Path -eq - (Join-Path $shopfloorToolsDir $app.SourceName)) { - Write-Host " exists: $($app.Name) (already in Shopfloor Tools)" - } else { - if (-not (& $ensureToolsDir)) { break } - try { - Copy-Item -LiteralPath $src -Destination $dest -Force -ErrorAction Stop - Write-Host " copied: $($app.Name) from $src" - } catch { - Write-Warning "Failed to copy $src -> $dest : $_" - } - } - } else { - Write-Host " skip: $($app.Name) - no source .lnk found" -ForegroundColor DarkGray - } - } - } - } -} - -# ============================================================================ -# Phase 3: Remove empty category folders -# -# If the sweep classified nothing into a given category (e.g. no Office -# on a Display PC, no Shopfloor Tools apps on a kiosk), we don't want an -# empty folder cluttering the desktop. The scheduled-task sweep also runs -# this so categories that go empty between logons self-heal. -# ============================================================================ -function Remove-EmptyCategoryFolders { - foreach ($cat in @('Office', 'Shopfloor Tools', 'Web Links')) { - $dir = Join-Path $publicDesktop $cat - if (-not (Test-Path -LiteralPath $dir)) { continue } - $contents = @(Get-ChildItem -LiteralPath $dir -Force -ErrorAction SilentlyContinue) - if ($contents.Count -eq 0) { - try { - Remove-Item -LiteralPath $dir -Force -ErrorAction Stop - Write-Host " removed empty: $cat\" - } catch { - Write-Warning "Failed to remove empty $dir : $_" - } - } - } -} - -# ============================================================================ -# Phase 4: Edge default browser + startup tabs (delegated to 08) -# -# 08-EdgeDefaultBrowser.ps1 resolves startup-tab URLs from .url files on -# the Public Desktop (or in Web Links\ after the sweep). The .url files -# are delivered by DSC AFTER this initial shopfloor setup, so the first -# run at imaging time won't find them (falls back to hardcoded URLs, -# Plant Apps gets skipped). By calling 08 from inside 06, every SYSTEM -# scheduled-task logon re-run of 06 also re-runs 08 -- so after DSC drops -# the .url files and the next sweep files them into Web Links\, 08 -# picks them up and updates the Edge policy. Self-healing. -# ============================================================================ -function Invoke-EdgeDefaultBrowser { - $edgeScript = Join-Path $scriptDir '08-EdgeDefaultBrowser.ps1' - if (-not (Test-Path -LiteralPath $edgeScript)) { - Write-Host " 08-EdgeDefaultBrowser.ps1 not found - skipping" - return - } - try { - & $edgeScript - } catch { - Write-Warning "08-EdgeDefaultBrowser.ps1 failed: $_" - } -} - -# ============================================================================ -# Scheduled task registration (re-runs 06 at every logon as SYSTEM) -# ============================================================================ -function Register-SweepScheduledTask { - param([string]$ScriptPath) - - $taskName = 'Organize Public Desktop' - - if (-not (Test-Path -LiteralPath $ScriptPath)) { - Write-Warning "Cannot register scheduled task - script not found at $ScriptPath" - return - } - - try { - $action = New-ScheduledTaskAction ` - -Execute 'powershell.exe' ` - -Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$ScriptPath`"" - - $trigger = New-ScheduledTaskTrigger -AtLogOn - - # Run as SYSTEM so the script can (a) pass its admin check at the - # top, (b) write to Public Desktop / ProgramData Start Menu / the - # Default User profile without Access Denied, and (c) register the - # next iteration of itself idempotently. Earlier versions used - # -GroupId 'BUILTIN\Users' -RunLevel Limited which fired at logon - # but the script exited immediately on the non-admin check. - $principal = New-ScheduledTaskPrincipal ` - -UserId 'NT AUTHORITY\SYSTEM' ` - -LogonType ServiceAccount ` - -RunLevel Highest - - $settings = New-ScheduledTaskSettingsSet ` - -AllowStartIfOnBatteries ` - -DontStopIfGoingOnBatteries ` - -StartWhenAvailable ` - -ExecutionTimeLimit (New-TimeSpan -Minutes 5) - - # -ErrorAction Stop is required because Register-ScheduledTask emits - # non-terminating errors on failure (Access Denied etc), which try/catch - # would otherwise miss and we'd falsely claim success. - Register-ScheduledTask ` - -TaskName $taskName ` - -Action $action ` - -Trigger $trigger ` - -Principal $principal ` - -Settings $settings ` - -Force ` - -ErrorAction Stop | Out-Null - - Write-Host "Scheduled task '$taskName' registered (runs at every logon)." - } catch { - Write-Warning "Failed to register scheduled task : $_" - } -} - -# ============================================================================ -# Main -# ============================================================================ -Write-Host "" -Write-Host "=== Phase 0: create Office shortcuts (if Office is installed) ===" -# Delegated to 05-OfficeShortcuts.ps1. Office is installed via ppkg but -# doesn't finish streaming until AFTER the first reboot, so the first -# imaging-time run of 06 finds no Office and this no-ops. On the second -# logon (after reboot), Office is installed and 05 creates the shortcuts -# so Phase 1 below can sweep them into the Office\ folder. -$officeScript = Join-Path $scriptDir '05-OfficeShortcuts.ps1' -if (Test-Path -LiteralPath $officeScript) { - try { & $officeScript } catch { Write-Warning "05-OfficeShortcuts.ps1 failed: $_" } -} else { - Write-Host " 05-OfficeShortcuts.ps1 not found - skipping" -} - -Write-Host "" -Write-Host "=== Phase 1: sweep loose shortcuts into category folders ===" -Invoke-DesktopSweep -DesktopPath $publicDesktop - -Write-Host "" -Write-Host "=== Phase 2: populate Shopfloor Tools with app shortcuts ===" -Add-ShopfloorToolsApps - -Write-Host "" -Write-Host "=== Phase 3: auto-apply startup items from PC profile ===" -# Creates .lnk files in AllUsers Startup folder based on the profile's -# startupItems. This runs as SYSTEM at every logon via the sweep scheduled -# task, so any item the tech removes via Configure-PC would bounce right -# back unless we remember the removal. startup-overrides.json tracks labels -# the tech has explicitly suppressed; items in that list are skipped here -# and re-enabling them via Configure-PC removes them from the list. -$startupDir = 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup' -$overridesPath = 'C:\ProgramData\GE\Shopfloor\startup-overrides.json' - -$suppressed = @() -if (Test-Path -LiteralPath $overridesPath) { - try { - $overrides = Get-Content -LiteralPath $overridesPath -Raw | ConvertFrom-Json - if ($overrides.suppressed) { $suppressed = @($overrides.suppressed) } - } catch { - Write-Warning " Failed to parse $overridesPath : $_" - } -} - -$cfgStartup = Get-ProfileValue 'startupItems' - -# Same rule as desktopApps: $null = not configured, empty array = configured as -# none. Harmless here today because the else branch has no hardcoded fallback, -# but kept consistent so the two keys cannot drift apart again. -if ($null -ne $cfgStartup -and $cfgStartup.Count -gt 0) { - if (-not (Test-Path $startupDir)) { - New-Item -ItemType Directory -Path $startupDir -Force | Out-Null - } - $edgePath = @( - 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe', - 'C:\Program Files\Microsoft\Edge\Application\msedge.exe' - ) | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 - - foreach ($si in $cfgStartup) { - if ($suppressed -contains $si.label) { - Write-Host " suppressed: $($si.label) (tech disabled via Configure-PC)" - continue - } - $lnkPath = Join-Path $startupDir "$($si.label).lnk" - # Skip if already exists (idempotent - don't overwrite user changes) - if (Test-Path -LiteralPath $lnkPath) { - Write-Host " exists: $($si.label)" - continue - } - switch ($si.type) { - 'exe' { - if (Test-Path -LiteralPath $si.target) { - if (New-ShopfloorLnk -Path $lnkPath -Target $si.target) { - Write-Host " added: $($si.label)" - } - } else { - Write-Host " skip: $($si.label) - target not installed" -ForegroundColor DarkGray - } - } - 'existing' { - $src = Find-ExistingLnk $si.sourceLnk - if ($src) { - try { - Copy-Item -LiteralPath $src -Destination $lnkPath -Force - Write-Host " added: $($si.label)" - } catch { Write-Warning " failed: $($si.label) - $_" } - } else { - Write-Host " skip: $($si.label) - source not found" -ForegroundColor DarkGray - } - } - 'url' { - $url = $null - if ($si.urlKey -and $siteConfig -and $siteConfig.urls) { - $url = $siteConfig.urls.$($si.urlKey) - } - if ($url -and $edgePath) { - if (New-ShopfloorLnk -Path $lnkPath -Target $edgePath -Arguments "--new-window `"$url`"") { - Write-Host " added: $($si.label)" - } - } else { - Write-Host " skip: $($si.label) - URL or Edge not available" -ForegroundColor DarkGray - } - } - } - } -} else { - Write-Host " (no startup items in profile)" -} - -Write-Host "" -Write-Host "=== Phase 4: remove empty category folders ===" -Remove-EmptyCategoryFolders - -Write-Host "" -Write-Host "=== Phase 5: Edge default browser + startup tabs ===" -Invoke-EdgeDefaultBrowser - -Write-Host "" -Write-Host "=== Phase 6: register logon sweeper scheduled task ===" -Register-SweepScheduledTask -ScriptPath $scriptPath - -Write-Host "" -Write-Host "=== 06-OrganizeDesktop session end ($(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')) ===" -try { Stop-Transcript | Out-Null } catch {} -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/07-TaskbarLayout.ps1 b/playbook/shopfloor-setup/Shopfloor/07-TaskbarLayout.ps1 deleted file mode 100644 index e0d9d9f..0000000 --- a/playbook/shopfloor-setup/Shopfloor/07-TaskbarLayout.ps1 +++ /dev/null @@ -1,164 +0,0 @@ -# 07-TaskbarLayout.ps1 - Minimal taskbar pinner. -# -# Reads the shortcuts that 06-OrganizeDesktop.ps1 created in -# C:\Users\Public\Desktop\Shopfloor Tools\ and writes a LayoutModification.xml -# that pins them to the taskbar along with Microsoft Edge. -# -# This script does NOT create, move, or copy any shortcuts - all shortcut -# management lives in 06. 07 is the last-mile taskbar config only. -# -# Pin order (left to right): Edge, WJ Shopfloor, UDC, eDNC, NTLARS, Defect_Tracker. -# -# LayoutModification.xml is written to the Default User profile shell -# directory, which means the pins apply on FIRST LOGON of any new user -# profile. Existing profiles don't re-read the Default User template, so -# they won't pick up the pins without a manual re-pin or profile delete. -# This is a Windows design limitation - syspin.exe style hacks are the -# only workaround for existing profiles, and they're unsupported. - -$ErrorActionPreference = 'Continue' - -# ============================================================================ -# Admin check - writing to the Default User profile requires elevation. -# ============================================================================ -$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) -if (-not $isAdmin) { - Write-Host "" - Write-Host "ERROR: 07-TaskbarLayout.ps1 must run as Administrator." -ForegroundColor Red - Write-Host " Re-run from an elevated PowerShell." -ForegroundColor Red - Write-Host "" - exit 1 -} - -# Load site config + PC profile -. "$PSScriptRoot\lib\Get-PCProfile.ps1" - -$publicDesktop = 'C:\Users\Public\Desktop' -$shopfloorToolsDir = Join-Path $publicDesktop 'Shopfloor Tools' -$defaultUserShell = 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell' -$layoutXmlPath = Join-Path $defaultUserShell 'LayoutModification.xml' - -# ============================================================================ -# Pin list: exact ordered list of shortcut names to pin. Each entry points -# at a .lnk file via a Windows environment-variable-expanded path. Edge is -# special-cased to its default Start Menu location since Windows maintains -# it; all other entries reference C:\Users\Public\Desktop\Shopfloor Tools\ -# which 06-OrganizeDesktop.ps1 populates. -# ============================================================================ -$cfgPins = Get-ProfileValue 'taskbarPins' - -# An EMPTY configured list means "no pins" and must be honoured. Get-ProfileValue -# returns $null only when the key is absent from BOTH the profile and -# site-config, so $null is the real "not configured" signal. Requiring -# .Count -gt 0 as well makes "taskbarPins": [] fall through to the hardcoded -# shopfloor list - configuring "none" producing "everything", the same bug that -# put Plant Apps and Defect Tracker in a Display kiosk's Startup folder -# (Configure-PC.ps1) and machine-tool shortcuts on its desktop -# (06-OrganizeDesktop.ps1). -if ($null -ne $cfgPins) { - $pinSpec = @($cfgPins | ForEach-Object { - @{ - Name = $_.name - Path = $_.lnkPath - Literal = [Environment]::ExpandEnvironmentVariables($_.lnkPath) - } - }) -} else { - $pinSpec = @( - @{ - Name = 'Microsoft Edge' - Path = '%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk' - Literal = 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk' - } - @{ - Name = 'WJ Shopfloor' - Path = '%PUBLIC%\Desktop\Shopfloor Tools\WJ Shopfloor.lnk' - Literal = (Join-Path $shopfloorToolsDir 'WJ Shopfloor.lnk') - } - @{ - Name = 'UDC' - Path = '%PUBLIC%\Desktop\Shopfloor Tools\UDC.lnk' - Literal = (Join-Path $shopfloorToolsDir 'UDC.lnk') - } - @{ - Name = 'eDNC' - Path = '%PUBLIC%\Desktop\Shopfloor Tools\eDNC.lnk' - Literal = (Join-Path $shopfloorToolsDir 'eDNC.lnk') - } - @{ - Name = 'NTLARS' - Path = '%PUBLIC%\Desktop\Shopfloor Tools\NTLARS.lnk' - Literal = (Join-Path $shopfloorToolsDir 'NTLARS.lnk') - } - @{ - Name = 'Defect_Tracker' - Path = '%PUBLIC%\Desktop\Shopfloor Tools\Defect_Tracker.lnk' - Literal = (Join-Path $shopfloorToolsDir 'Defect_Tracker.lnk') - } - ) -} - -# ============================================================================ -# Build the pin list - skip any whose .lnk is missing -# ============================================================================ -Write-Host "" -Write-Host "Checking which Shopfloor Tools shortcuts exist..." - -$pinPaths = @() -foreach ($pin in $pinSpec) { - if (Test-Path -LiteralPath $pin.Literal) { - Write-Host " pin: $($pin.Name) -> $($pin.Literal)" - $pinPaths += $pin.Path - } else { - Write-Host " skip: $($pin.Name) - not found at $($pin.Literal)" -ForegroundColor DarkGray - } -} - -if ($pinPaths.Count -eq 0) { - Write-Warning "No pins to apply (nothing found in Shopfloor Tools\). Did 06-OrganizeDesktop.ps1 run first?" - exit 0 -} - -# ============================================================================ -# Write LayoutModification.xml -# ============================================================================ -$pinXml = ($pinPaths | ForEach-Object { - " " -}) -join "`r`n" - -$layoutXml = @" - - - - - -$pinXml - - - - -"@ - -try { - if (-not (Test-Path -LiteralPath $defaultUserShell)) { - New-Item -ItemType Directory -Path $defaultUserShell -Force -ErrorAction Stop | Out-Null - } - # -ErrorAction Stop so Access Denied becomes a catchable terminating error - # instead of silently falling through to the success message. - Set-Content -LiteralPath $layoutXmlPath -Value $layoutXml -Encoding UTF8 -Force -ErrorAction Stop - Write-Host "" - Write-Host "Wrote taskbar layout with $($pinPaths.Count) pin(s) to:" - Write-Host " $layoutXmlPath" - Write-Host "" - Write-Host "Pins will apply on first logon of any NEW user profile." -} catch { - Write-Warning "Failed to write $layoutXmlPath : $_" - exit 1 -} - -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/08-EdgeDefaultBrowser.ps1 b/playbook/shopfloor-setup/Shopfloor/08-EdgeDefaultBrowser.ps1 deleted file mode 100644 index 0a7b5da..0000000 --- a/playbook/shopfloor-setup/Shopfloor/08-EdgeDefaultBrowser.ps1 +++ /dev/null @@ -1,325 +0,0 @@ -# 08-EdgeDefaultBrowser.ps1 - Set Microsoft Edge as the default browser -# and PDF handler for all new user profiles, and configure startup tabs -# so Edge opens with Plant Apps / Shop Floor Homepage / Shopfloor Dashboard -# when the end user first launches it. -# -# WHY THIS EXISTS: -# The West Jefferson shopfloor ppkg installs Google Chrome alongside Edge. -# On first URL click in a new Azure AD user profile, Windows pops a "Choose -# your default app" picker because multiple browsers are installed and -# nothing has been marked as default. End users hit this on every fresh PC -# and it derails the shopfloor workflow. -# -# HOW IT WORKS: -# Two layers, belt-and-suspenders: -# -# 1. DISM default-app-associations XML -# Writes an XML file mapping http/https/.htm/.html/.pdf/.svg/etc to -# Edge's ProgIds, then runs: -# dism /Online /Import-DefaultAppAssociations: -# This imports the XML into the Default User profile template. Any -# NEW user profile created after this point inherits the associations -# on first logon. Microsoft-supported, works across Win10/Win11. -# -# 2. Group Policy registry key -# HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\DefaultAssociationsConfiguration -# points at the same XML file. This is the "Set a default associations -# configuration file" GPO. With this set, Windows re-applies the XML -# on every logon, not just once at profile creation - so Windows -# update defaults-reset and similar edge cases don't un-do us. -# -# CAVEATS: -# - Applies to NEW profiles on first logon. An existing profile that's -# already been logged in (e.g. SupportUser) won't pick up the change -# without a manual Settings > Default apps visit. Acceptable because -# SupportUser isn't the end-user account. -# - Does not UNinstall Chrome. Chrome remains available, it's just not -# the default handler for URLs. -# - Microsoft blocks programmatic UserChoice hash tampering since Win10 -# 1703. The DISM + policy route is the only supported path, and it -# only fires for new profiles - that's by design. - -$ErrorActionPreference = 'Stop' - -# ---------------------------------------------------------------------------- -# Admin check -# ---------------------------------------------------------------------------- -$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) -if (-not $isAdmin) { - Write-Host "" - Write-Host "ERROR: 08-EdgeDefaultBrowser.ps1 must run as Administrator." -ForegroundColor Red - Write-Host " Re-run from an elevated PowerShell." -ForegroundColor Red - Write-Host "" - exit 1 -} - -# Load site config + PC profile -. "$PSScriptRoot\lib\Get-PCProfile.ps1" - -# ---------------------------------------------------------------------------- -# Sanity: Edge must be installed for this to mean anything -# ---------------------------------------------------------------------------- -$edgeCandidates = @( - 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe', - 'C:\Program Files\Microsoft\Edge\Application\msedge.exe' -) -$edgePath = $edgeCandidates | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 -if (-not $edgePath) { - Write-Host "Microsoft Edge not found in either Program Files location - skipping default browser config." - exit 0 -} -Write-Host "Found Edge at: $edgePath" - -# ---------------------------------------------------------------------------- -# XML: Edge as default for web browsing + PDFs + common image formats -# ---------------------------------------------------------------------------- -$xml = @' - - - - - - - - - - - - - - -'@ - -# Write to a stable location that persists across reimaging (C:\Enrollment is -# the canonical staging dir in this repo, survives logoff/logon, referenced -# by the GP policy below so it must be a path every user-session can read). -$xmlDir = 'C:\Enrollment' -$xmlPath = Join-Path $xmlDir 'edge-default-associations.xml' - -if (-not (Test-Path -LiteralPath $xmlDir)) { - New-Item -ItemType Directory -Path $xmlDir -Force | Out-Null -} -Set-Content -LiteralPath $xmlPath -Value $xml -Encoding UTF8 -Force -Write-Host "Wrote associations XML to: $xmlPath" - -# ---------------------------------------------------------------------------- -# Layer 1: DISM import into the Default User profile template -# ---------------------------------------------------------------------------- -Write-Host "" -Write-Host "Layer 1: dism /Online /Import-DefaultAppAssociations..." -& dism.exe /Online /Import-DefaultAppAssociations:"$xmlPath" | Out-Null -$dismExit = $LASTEXITCODE -if ($dismExit -eq 0) { - Write-Host " OK - defaults imported into Default User template." -} else { - Write-Warning " dism returned exit code $dismExit - import may not have applied." -} - -# ---------------------------------------------------------------------------- -# Layer 2: Group Policy registry key - enforces XML on every logon -# ---------------------------------------------------------------------------- -Write-Host "" -Write-Host "Layer 2: Setting DefaultAssociationsConfiguration policy..." -$polKey = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -if (-not (Test-Path $polKey)) { - New-Item -Path $polKey -Force | Out-Null -} -Set-ItemProperty -Path $polKey -Name 'DefaultAssociationsConfiguration' -Value $xmlPath -Type String -Force -Write-Host " OK - HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\DefaultAssociationsConfiguration = $xmlPath" - -Write-Host "" -Write-Host "================================================================" -Write-Host "Edge default browser config applied." -Write-Host "================================================================" - -# ---------------------------------------------------------------------------- -# Edge startup tabs + homepage -# -# End users should see Plant Apps, the Shop Floor Homepage, and the -# Shopfloor Dashboard open in three tabs the moment Edge launches. Rather -# than hardcoding URLs in this script, we read them out of the .url files -# that already live on the Public Desktop (copied there by ppkg). This -# way, if an admin renames or retargets a .url file later, the script -# picks up the new URL on the next imaging run without a code change. -# -# Fallback: if the .url file is missing, we fall back to a hardcoded URL -# (only for the ones we know for sure). Plant Apps has no fallback because -# I don't have its URL memorized. -# -# Machine policies (all under HKLM:\SOFTWARE\Policies\Microsoft\Edge): -# RestoreOnStartup = 4 (open a specific set of URLs) -# RestoreOnStartupURLs = subkey with "1","2","3"... = URLs in tab order -# HomepageLocation = first startup URL (home button opens same) -# HomepageIsNewTabPage = 0 (home button opens HomepageLocation, not NTP) -# ShowHomeButton = 1 (show the home button in the toolbar) -# ---------------------------------------------------------------------------- -Write-Host "" -Write-Host "Configuring Edge startup tabs..." - -function Get-UrlFromFile { - param([string]$Path) - try { - $content = Get-Content -LiteralPath $Path -ErrorAction Stop - $urlLine = $content | Where-Object { $_ -match '^URL=' } | Select-Object -First 1 - if ($urlLine) { - return ($urlLine -replace '^URL=', '').Trim() - } - } catch {} - return $null -} - -function Resolve-StartupUrl { - param( - [string]$BaseName, # .url filename without extension - [string]$Fallback = '' - ) - # Look in Public Desktop root first, then Web Links subfolder (06's - # sweeper may have moved it there already). - $candidates = @( - "C:\Users\Public\Desktop\$BaseName.url", - "C:\Users\Public\Desktop\Web Links\$BaseName.url" - ) - foreach ($c in $candidates) { - if (Test-Path -LiteralPath $c) { - $url = Get-UrlFromFile $c - if ($url) { - Write-Host " resolved $BaseName -> $url (from $c)" - return $url - } - } - } - if ($Fallback) { - Write-Host " fallback $BaseName -> $Fallback (.url file not found)" -ForegroundColor DarkGray - return $Fallback - } - Write-Warning " $BaseName : no .url file found and no fallback - will be skipped" - return $null -} - -# Resolve startup tabs: profile > site-wide > hardcoded fallback -# Different PC types can have different tabs (e.g. Lab has Webmail -# instead of Plant Apps, Standard-Machine has Plant Apps). -$cfgTabs = Get-ProfileValue 'edgeStartupTabs' - -$startupTabs = @() - -# Empty configured list = "no startup tabs", and must be honoured. $null (key -# absent from both profile and site-config) is the only "not configured" signal. -# Requiring .Count -gt 0 would make "edgeStartupTabs": [] fall through to the -# Plant Apps + WJ Shopfloor + Dashboard fallback below - the same -# configuring-none-gives-everything bug fixed in Configure-PC.ps1, -# 06-OrganizeDesktop.ps1 and 07-TaskbarLayout.ps1. -if ($null -ne $cfgTabs) { - foreach ($tab in $cfgTabs) { - $fallback = if ($tab.fallbackUrlKey -and $siteConfig.urls) { $siteConfig.urls.$($tab.fallbackUrlKey) } else { '' } - $url = Resolve-StartupUrl -BaseName $tab.baseName -Fallback $fallback - if ($url) { $startupTabs += $url } - } -} else { - $plantApps = Resolve-StartupUrl -BaseName 'Plant Apps' -Fallback 'https://mes-wjefferson.apps.lr.geaerospace.net/run/?app_name=Plant%20Applications' - if ($plantApps) { $startupTabs += $plantApps } - - $shopFloorHome = Resolve-StartupUrl -BaseName 'WJ Shop Floor Homepage' -Fallback 'https://tsgwp00525.wjs.geaerospace.net' - if ($shopFloorHome) { $startupTabs += $shopFloorHome } - - $dashboard = Resolve-StartupUrl -BaseName 'Shopfloor Dashboard' -Fallback 'https://tsgwp00525.wjs.geaerospace.net/shopdb/shopfloor' - if ($dashboard) { $startupTabs += $dashboard } -} - -# Resolve homepage: profile can override (e.g. Lab has a different homepage -# than Standard). Falls back to the first startup tab if not specified. -$edgeHomepage = if ($pcProfile -and $pcProfile.edgeHomepage) { $pcProfile.edgeHomepage } else { $null } - -if ($startupTabs.Count -eq 0) { - Write-Warning "No startup tab URLs resolved - skipping Edge startup config." -} else { - $edgePolKey = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge' - if (-not (Test-Path $edgePolKey)) { - New-Item -Path $edgePolKey -Force | Out-Null - } - - # RestoreOnStartup = 4 means "open a specific set of URLs" (the list - # lives under the RestoreOnStartupURLs subkey below). - Set-ItemProperty -Path $edgePolKey -Name 'RestoreOnStartup' -Value 4 -Type DWord -Force - - # Build RestoreOnStartupURLs subkey: numbered string values "1","2","3" - $urlsKey = Join-Path $edgePolKey 'RestoreOnStartupURLs' - if (Test-Path $urlsKey) { - # Wipe any prior entries so we don't leak stale tabs if the list - # shrinks between runs - Remove-Item -Path $urlsKey -Recurse -Force - } - New-Item -Path $urlsKey -Force | Out-Null - for ($i = 0; $i -lt $startupTabs.Count; $i++) { - $name = [string]($i + 1) - Set-ItemProperty -Path $urlsKey -Name $name -Value $startupTabs[$i] -Type String -Force - } - - # Homepage: profile override > first startup tab. Home button opens it, not NTP. - $homepageUrl = if ($edgeHomepage) { $edgeHomepage } else { $startupTabs[0] } - Write-Host "Homepage set to: $homepageUrl" - Set-ItemProperty -Path $edgePolKey -Name 'HomepageLocation' -Value $homepageUrl -Type String -Force - Set-ItemProperty -Path $edgePolKey -Name 'HomepageIsNewTabPage' -Value 0 -Type DWord -Force - Set-ItemProperty -Path $edgePolKey -Name 'ShowHomeButton' -Value 1 -Type DWord -Force - - Write-Host "" - Write-Host "Edge startup tabs set ($($startupTabs.Count) tab(s)):" - for ($i = 0; $i -lt $startupTabs.Count; $i++) { - Write-Host " $($i + 1). $($startupTabs[$i])" - } - Write-Host "Homepage set to: $($startupTabs[0])" -} - -# ============================================================================ -# Chrome: same homepage + startup tabs as Edge -# -# The PPKG installs Chrome alongside Edge. Apply the same profile-driven -# homepage and startup tabs so both browsers behave identically. Uses the -# same $startupTabs and $homepageUrl resolved above. -# HKLM:\SOFTWARE\Policies\Google\Chrome mirrors the Edge policy structure. -# ============================================================================ -Write-Host "" -Write-Host "Configuring Chrome startup tabs..." - -$chromePath = @( - 'C:\Program Files\Google\Chrome\Application\chrome.exe', - 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' -) | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 - -if (-not $chromePath) { - Write-Host " Chrome not installed - skipping." -ForegroundColor DarkGray -} elseif ($startupTabs.Count -eq 0) { - Write-Host " No startup tabs resolved - skipping Chrome config." -ForegroundColor DarkGray -} else { - $chromePolKey = 'HKLM:\SOFTWARE\Policies\Google\Chrome' - if (-not (Test-Path $chromePolKey)) { - New-Item -Path $chromePolKey -Force | Out-Null - } - - Set-ItemProperty -Path $chromePolKey -Name 'RestoreOnStartup' -Value 4 -Type DWord -Force - - $urlsKey = Join-Path $chromePolKey 'RestoreOnStartupURLs' - if (Test-Path $urlsKey) { - Remove-Item -Path $urlsKey -Recurse -Force - } - New-Item -Path $urlsKey -Force | Out-Null - for ($i = 0; $i -lt $startupTabs.Count; $i++) { - Set-ItemProperty -Path $urlsKey -Name ([string]($i + 1)) -Value $startupTabs[$i] -Type String -Force - } - - $chromeHomepage = if ($homepageUrl) { $homepageUrl } elseif ($edgeHomepage) { $edgeHomepage } else { $startupTabs[0] } - Set-ItemProperty -Path $chromePolKey -Name 'HomepageLocation' -Value $chromeHomepage -Type String -Force - Set-ItemProperty -Path $chromePolKey -Name 'HomepageIsNewTabPage' -Value 0 -Type DWord -Force - Set-ItemProperty -Path $chromePolKey -Name 'ShowHomeButton' -Value 1 -Type DWord -Force - - Write-Host " Chrome startup tabs set ($($startupTabs.Count) tab(s)), homepage: $chromeHomepage" -} - -Write-Host "" -Write-Host "================================================================" -Write-Host "08-EdgeDefaultBrowser.ps1 complete." -Write-Host "Edge + Chrome homepage and startup tabs configured." -Write-Host "Machine-wide GPO - applies to all users on next browser launch." -Write-Host "================================================================" - -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/09-Install-PrinterInstallerMap.ps1 b/playbook/shopfloor-setup/Shopfloor/09-Install-PrinterInstallerMap.ps1 deleted file mode 100644 index 4f2bf83..0000000 --- a/playbook/shopfloor-setup/Shopfloor/09-Install-PrinterInstallerMap.ps1 +++ /dev/null @@ -1,89 +0,0 @@ -# 09-Install-PrinterInstallerMap.ps1 - imaging-time placement of the -# PrinterInstallerMap.exe tool plus a Public Desktop shortcut. -# Runs for every shopfloor PC type (Standard, CMM, Keyence, Display, -# etc.) so a tech can launch the printer installer at any bay without -# going through Edge. Numbered 09 to run after 06-OrganizeDesktop -# (which creates Shopfloor Tools folder) and 08-EdgeDefaultBrowser. -# -# Why this exists: the legacy printer-deploy flow was a web map -# (printerinstallermap.asp) that handed users a per-selection .bat to -# download and run. New Edge policy blocks both .bat downloads and -# unsigned .exe runs. PrinterInstallerMap is a forked installer with the -# map UX baked into a custom Inno wizard page; baking the EXE onto the -# image at PXE time means it never goes through a browser (no MOTW, no -# SmartScreen prompt). UAC still fires because PrivilegesRequired=admin -# and supportuser creds satisfy it - that is the only remaining gate. -# -# Layout this script produces on a Standard PC: -# C:\Tools\PrinterInstallerMap\PrinterInstallerMap.exe -# C:\Users\Public\Desktop\Shopfloor Tools\Printer Installer.lnk -# -# The Shopfloor Tools desktop folder is also created/maintained by -# 06-OrganizeDesktop.ps1; this script tolerates either order (it creates -# the folder if absent so it can run before 06). -# -# Idempotent: re-imaging or re-running the script overwrites the EXE and -# rewrites the shortcut. Drop-in newer PrinterInstallerMap.exe alongside -# this script in the imaging payload, re-image the PC, the desktop link -# now points to the new build. -# -# Source EXE expected at $PSScriptRoot\PrinterInstallerMap.exe (placed -# next to this script when the imaging payload lands). Until the Inno -# compile + sign+ship step is wired in (see ../../docs/ + the inno repo -# feature/printer-map branch), this script no-ops with a warning if the -# EXE is missing - re-image will pick it up once the build artifact is -# dropped in. - -$ErrorActionPreference = 'Continue' - -$src = Join-Path $PSScriptRoot 'PrinterInstallerMap.exe' -$installDir = 'C:\Tools\PrinterInstallerMap' -$installExe = Join-Path $installDir 'PrinterInstallerMap.exe' -$publicDesktop = 'C:\Users\Public\Desktop' -$shopfloorTools = Join-Path $publicDesktop 'Shopfloor Tools' -$shortcutPath = Join-Path $shopfloorTools 'Printer Installer.lnk' - -if (-not (Test-Path -LiteralPath $src)) { - Write-Warning "Install-PrinterInstallerMap: source EXE not found at $src - skipping. Re-image after the build artifact is dropped alongside this script." - exit 0 -} - -# Stage EXE -if (-not (Test-Path -LiteralPath $installDir)) { - New-Item -Path $installDir -ItemType Directory -Force | Out-Null -} -try { - Copy-Item -LiteralPath $src -Destination $installExe -Force -ErrorAction Stop - Write-Host "Install-PrinterInstallerMap: staged EXE -> $installExe" -} catch { - Write-Error "Install-PrinterInstallerMap: failed to copy EXE: $_" - exit 1 -} - -# Ensure Shopfloor Tools folder exists. 06-OrganizeDesktop.ps1 also -# creates this; we create it here so this script does not depend on -# 06 having run first. -if (-not (Test-Path -LiteralPath $shopfloorTools)) { - try { - New-Item -Path $shopfloorTools -ItemType Directory -Force | Out-Null - } catch { - Write-Warning "Install-PrinterInstallerMap: could not create $shopfloorTools : $_" - } -} - -# Create / overwrite shortcut -try { - $wsh = New-Object -ComObject WScript.Shell - $lnk = $wsh.CreateShortcut($shortcutPath) - $lnk.TargetPath = $installExe - $lnk.IconLocation = "$installExe,0" - $lnk.WorkingDirectory = $installDir - $lnk.Description = 'Install network printers from the WJ site map' - $lnk.Save() - Write-Host "Install-PrinterInstallerMap: shortcut -> $shortcutPath" -} catch { - Write-Error "Install-PrinterInstallerMap: failed to create shortcut: $_" - exit 1 -} - -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/Apply-MachineNumber.ps1 b/playbook/shopfloor-setup/Shopfloor/Apply-MachineNumber.ps1 deleted file mode 100644 index 8987a70..0000000 --- a/playbook/shopfloor-setup/Shopfloor/Apply-MachineNumber.ps1 +++ /dev/null @@ -1,115 +0,0 @@ -# Apply-MachineNumber.ps1 - SYSTEM-context worker for the two-task machine -# number flow. Triggered on-demand by Prompt-MachineNumber.ps1 via -# `schtasks /run /tn "WT-Apply-MachineNumber"`. Reads the requested number -# from a file the GUI script wrote, invokes Update-MachineNumber as SYSTEM -# (full HKLM + ProgramData access), writes a result JSON for the GUI to -# display, then cleans up. -# -# Why SYSTEM: -# The eDNC reg key (HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\ -# General\MachineNo) and UDC settings JSON live in HKLM + ProgramData -# respectively - both require admin to write. The OLD design granted -# BUILTIN\Users SetValue + Modify via 02-MachineNumberACLs.ps1, but that -# was fragile (timing race with eDNC install, ACL silently failed on -# some bays) AND a security hole (any user could mess with the machine -# identity). Two-task design: GUI gathers input as logged-in user, SYSTEM -# does the actual write. -# -# Files: -# C:\Logs\SFLD\machine-number-request.txt - input, single line, new number -# C:\Logs\SFLD\machine-number-result.json - output, status fields for GUI -# C:\Logs\SFLD\Apply-MachineNumber.log - transcript - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path -LiteralPath $logDir)) { - try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$transcript = Join-Path $logDir 'Apply-MachineNumber.log' -try { Start-Transcript -Path $transcript -Append -Force | Out-Null } catch {} - -$requestFile = Join-Path $logDir 'machine-number-request.txt' -$resultFile = Join-Path $logDir 'machine-number-result.json' - -function Write-Result { - param([hashtable]$Body) - $Body | ConvertTo-Json -Depth 5 | Set-Content -LiteralPath $resultFile -Encoding ascii -Force -} - -Write-Host "Apply-MachineNumber.ps1 starting $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -Write-Host "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -try { - if (-not (Test-Path -LiteralPath $requestFile)) { - Write-Warning "No request file at $requestFile - nothing to apply." - Write-Result @{ Status = 'NoRequest'; Errors = @("request file missing: $requestFile") } - exit 0 - } - $newNumber = (Get-Content -LiteralPath $requestFile -First 1 -ErrorAction Stop).Trim() - Write-Host "Requested new machine number: $newNumber" - - if ($newNumber -notmatch '^\d+$') { - Write-Warning "Request is not digits-only: '$newNumber'" - Write-Result @{ Status = 'BadInput'; Requested = $newNumber; Errors = @("Not digits only: '$newNumber'") } - Remove-Item -LiteralPath $requestFile -Force -ErrorAction SilentlyContinue - exit 1 - } - - # Dot-source the shared helper. Update-MachineNumber.ps1 now has - # -ErrorAction Stop on the writes so failures actually throw. - . "$PSScriptRoot\lib\Get-PCProfile.ps1" - . "$PSScriptRoot\lib\Update-MachineNumber.ps1" - - $site = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } - $mnResult = Update-MachineNumber -NewNumber $newNumber -Site $site - - $resultBody = @{ - Status = if ($mnResult.Errors.Count -eq 0) { 'OK' } else { 'PartialErrors' } - Requested = $newNumber - Site = $site - UdcUpdated = [bool]$mnResult.UdcUpdated - EdncUpdated = [bool]$mnResult.EdncUpdated - OldUdc = $mnResult.OldUdc - OldEdnc = $mnResult.OldEdnc - UdcSettingsRestored = [bool]$mnResult.UdcSettingsRestored - UdcRestored = [bool]$mnResult.UdcRestored - MTConnectUpdated = $mnResult.MTConnectUpdated - MachineNumberTxtUpdated = [bool]$mnResult.MachineNumberTxtUpdated - Errors = $mnResult.Errors - AppliedAt = (Get-Date -Format 'o') - AppliedAs = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name - } - Write-Result -Body $resultBody - - Write-Host "Update-MachineNumber result:" - Write-Host " UdcUpdated = $($mnResult.UdcUpdated)" - Write-Host " EdncUpdated = $($mnResult.EdncUpdated)" - Write-Host " Errors = $($mnResult.Errors.Count)" - if ($mnResult.Errors) { $mnResult.Errors | ForEach-Object { Write-Host " FAILED: $_" } } - - Remove-Item -LiteralPath $requestFile -Force -ErrorAction SilentlyContinue - - # On clean success, also unregister the Prompt logon task. Prompt itself - # tries to self-unregister but it runs as a Limited user (BUILTIN\Users) - # and silently fails on Unregister-ScheduledTask (no delete right on a - # SYSTEM-registered task). We're running as SYSTEM here, so we can. - # Idempotent if Prompt already unregistered itself somehow. - if ($mnResult.Errors.Count -eq 0 -and $mnResult.EdncUpdated) { - try { - if (Get-ScheduledTask -TaskName 'Prompt Machine Number' -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName 'Prompt Machine Number' -Confirm:$false -ErrorAction Stop - Write-Host "Unregistered 'Prompt Machine Number' task (SYSTEM cleanup)." - } - } catch { - Write-Host "Could not unregister 'Prompt Machine Number': $_" - } - } - - Write-Host "Apply-MachineNumber.ps1 finished $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -} catch { - Write-Warning "Apply threw: $_" - Write-Result @{ Status = 'Exception'; Errors = @("$_") } -} finally { - try { Stop-Transcript | Out-Null } catch {} -} diff --git a/playbook/shopfloor-setup/Shopfloor/Check-MachineNumber.ps1 b/playbook/shopfloor-setup/Shopfloor/Check-MachineNumber.ps1 deleted file mode 100644 index 94a9484..0000000 --- a/playbook/shopfloor-setup/Shopfloor/Check-MachineNumber.ps1 +++ /dev/null @@ -1,129 +0,0 @@ -# Check-MachineNumber.ps1 - Logon-triggered check for placeholder machine -# number. If UDC or eDNC are still at 9999, pops an InputBox for the user -# to enter the real number. On success, unregisters the scheduled task so -# the prompt never appears again. -# -# Runs as the LOGGED-IN USER (not SYSTEM) because it needs to show GUI. -# Writing to ProgramData + HKLM is possible because 02-MachineNumberACLs.ps1 -# pre-granted BUILTIN\Users write access on those specific targets during -# imaging. -# -# Registered/unregistered by Configure-PC.ps1 (item 6 in the toggle list). - -# --- Transcript logging --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { - try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$transcriptPath = Join-Path $logDir 'Check-MachineNumber.log' -try { Start-Transcript -Path $transcriptPath -Append -Force | Out-Null } catch {} -Write-Host "Check-MachineNumber.ps1 starting $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -Write-Host "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -. "$PSScriptRoot\lib\Get-PCProfile.ps1" -. "$PSScriptRoot\lib\Update-MachineNumber.ps1" - -Add-Type -AssemblyName Microsoft.VisualBasic -Add-Type -AssemblyName System.Windows.Forms - -$taskName = 'Check Machine Number' -$site = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } - -# --- Read current values --- -$currentMN = Get-CurrentMachineNumber -$currentUdc = $currentMN.Udc -$currentEdnc = $currentMN.Ednc - -# --- Check if placeholder --- -Write-Host "UDC machine number: $(if ($currentUdc) { $currentUdc } else { '(not found)' })" -Write-Host "eDNC machine number: $(if ($currentEdnc) { $currentEdnc } else { '(not found)' })" - -if ($currentUdc -ne '9999' -and $currentEdnc -ne '9999') { - Write-Host "Machine number is set (not 9999). Unregistering task and exiting." - try { - Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue - } catch {} - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -Write-Host "Placeholder 9999 detected - showing prompt." - -# --- Show prompt --- -$promptLines = @() -$promptLines += "The machine number on this PC is still set to the" -$promptLines += "placeholder value (9999). Please enter the correct" -$promptLines += "machine number for this workstation." -$promptLines += "" -if ($currentUdc) { $promptLines += "Current UDC: $currentUdc" } -if ($currentEdnc) { $promptLines += "Current eDNC: $currentEdnc" } -$promptLines += "" -$promptLines += "Enter the new Machine Number:" - -$prompt = $promptLines -join "`n" -$new = [Microsoft.VisualBasic.Interaction]::InputBox($prompt, "Set Machine Number", "") - -if ([string]::IsNullOrWhiteSpace($new)) { - Write-Host "User cancelled. Will prompt again next logon." - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -$new = $new.Trim() - -# --- Validate --- -if ($new -notmatch '^\d+$') { - Write-Host "Invalid input: '$new' (not digits only). Will prompt again next logon." - [System.Windows.Forms.MessageBox]::Show( - "Machine number must be digits only.`n`nYou entered: '$new'`n`nThe prompt will appear again at next logon.", - "Invalid Machine Number", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Error - ) | Out-Null - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -# --- Update via shared helper --- -$mnResult = Update-MachineNumber -NewNumber $new -Site $site - -$results = @() -if ($mnResult.UdcUpdated) { $results += "UDC updated to $new" } -if ($mnResult.EdncUpdated) { $results += "eDNC updated to $new" } -foreach ($err in $mnResult.Errors) { $results += $err -replace '^', 'FAILED: ' } - -# --- Show result --- -$summary = ($results -join "`n") + "`n`nTo apply eDNC changes, restart any running DncMain.exe.`n`nFull log: C:\Logs\SFLD\Check-MachineNumber.log" -# Force the MessageBox to topmost + take focus so it isn't hidden behind -# other windows. Without this, the result dialog can render off-screen or -# behind the FormTracePak / DNC windows and the tech misses it. -$tmpForm = New-Object System.Windows.Forms.Form -$tmpForm.TopMost = $true -$tmpForm.WindowState = 'Minimized' -$tmpForm.ShowInTaskbar = $false -$tmpForm.Opacity = 0 -$tmpForm.Show() -[System.Windows.Forms.MessageBox]::Show( - $tmpForm, - $summary, - "Machine Number Updated", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Information -) | Out-Null -$tmpForm.Close() - -# --- Unregister task on success --- -Write-Host "Results: $($results -join '; ')" -$anyFail = $results | Where-Object { $_ -match 'FAILED' } -if (-not $anyFail) { - Write-Host "All updates succeeded. Unregistering logon task." - try { - Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue - } catch {} -} else { - Write-Host "Some updates failed. Task stays registered - will prompt again next logon." -} - -Write-Host "Check-MachineNumber.ps1 finished $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -try { Stop-Transcript | Out-Null } catch {} -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/Configure-PC.bat b/playbook/shopfloor-setup/Shopfloor/Configure-PC.bat deleted file mode 100644 index 5a9e1ed..0000000 --- a/playbook/shopfloor-setup/Shopfloor/Configure-PC.bat +++ /dev/null @@ -1,23 +0,0 @@ -@echo off -REM Configure-PC.bat - Launches Configure-PC.ps1 in an elevated PowerShell. -REM SupportUser desktop tool for setting machine number + auto-startup items. - -title Configure PC - -set "SCRIPT=%~dp0Configure-PC.ps1" -if exist "%SCRIPT%" goto :found - -set "SCRIPT=C:\Users\SupportUser\Desktop\Configure-PC.ps1" -if exist "%SCRIPT%" goto :found - -set "SCRIPT=C:\Enrollment\shopfloor-setup\Shopfloor\Configure-PC.ps1" -if exist "%SCRIPT%" goto :found - -echo ERROR: Configure-PC.ps1 not found -pause -exit /b 1 - -:found -echo Launching: %SCRIPT% -powershell -NoProfile -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile','-NoExit','-ExecutionPolicy','Bypass','-File','%SCRIPT%'" -exit /b diff --git a/playbook/shopfloor-setup/Shopfloor/Configure-PC.ps1 b/playbook/shopfloor-setup/Shopfloor/Configure-PC.ps1 deleted file mode 100644 index cef8782..0000000 --- a/playbook/shopfloor-setup/Shopfloor/Configure-PC.ps1 +++ /dev/null @@ -1,518 +0,0 @@ -# Configure-PC.ps1 - Interactive tool for SupportUser to configure a -# shopfloor PC after imaging. Two sections: -# -# 1. Machine number - if UDC/eDNC are still at placeholder 9999, prompt -# to set the real number right now. -# -# 2. Auto-startup items + machine-number logon prompt - toggle which apps -# start automatically for all users, and optionally register a logon -# task that prompts STANDARD users for the machine number if it's -# still 9999 when they log in (for the case where SupportUser skips -# it here and the end user needs to set it themselves). -# -# Startup .lnk files go in the AllUsers Startup folder: -# C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\ -# -# Run via Configure-PC.bat on the SupportUser desktop. - -param( - # When set, only show the machine number section (skip startup items). - # Used by sync_intune -AsTask after completion -- startup items are - # already auto-applied by 06-OrganizeDesktop from the PC profile. - [switch]$MachineNumberOnly -) - -$ErrorActionPreference = 'Continue' - -# --- Transcript logging --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { - try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$transcriptPath = Join-Path $logDir 'Configure-PC.log' -try { Start-Transcript -Path $transcriptPath -Append -Force | Out-Null } catch {} -Write-Host "Transcript: $transcriptPath" -Write-Host "Started: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -Write-Host "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -# Load site config + PC profile (resolves pc-type.txt + pc-subtype.txt -# into a profile from site-config.json's pcProfiles section) -. "$PSScriptRoot\lib\Get-PCProfile.ps1" -. "$PSScriptRoot\lib\Update-MachineNumber.ps1" - -$startupDir = 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup' -$publicDesktop = 'C:\Users\Public\Desktop' -$overridesPath = 'C:\ProgramData\GE\Shopfloor\startup-overrides.json' - -# Persist user-toggled startup overrides so the logon-triggered sweep -# (06-OrganizeDesktop.ps1 Phase 3) doesn't re-create .lnks the tech -# explicitly removed. Labels in $suppressed are the ones currently OFF. -function Get-SuppressedStartup { - if (-not (Test-Path -LiteralPath $overridesPath)) { return @() } - try { - $data = Get-Content -LiteralPath $overridesPath -Raw | ConvertFrom-Json - if ($data.suppressed) { return @($data.suppressed) } - } catch { - Write-Warning " Failed to parse $overridesPath : $_" - } - return @() -} - -function Set-SuppressedStartup { - param([string[]]$Labels) - $dir = Split-Path -Parent $overridesPath - if (-not (Test-Path $dir)) { - New-Item -ItemType Directory -Path $dir -Force | Out-Null - } - $payload = @{ suppressed = @($Labels | Sort-Object -Unique) } - $payload | ConvertTo-Json | Set-Content -LiteralPath $overridesPath -Encoding UTF8 -} - -# ============================================================================ -# Helpers -# ============================================================================ - -function Get-UrlFromFile { - param([string]$BaseName) - $candidates = @( - (Join-Path $publicDesktop "$BaseName.url"), - (Join-Path (Join-Path $publicDesktop 'Web Links') "$BaseName.url") - ) - foreach ($c in $candidates) { - if (-not (Test-Path -LiteralPath $c)) { continue } - try { - $content = Get-Content -LiteralPath $c -ErrorAction Stop - $urlLine = $content | Where-Object { $_ -match '^URL=' } | Select-Object -First 1 - if ($urlLine) { return ($urlLine -replace '^URL=', '').Trim() } - } catch {} - } - return $null -} - -function New-StartupLnk { - param( - [string]$Name, - [string]$Target, - [string]$Arguments = '', - [string]$WorkingDirectory = '' - ) - $path = Join-Path $startupDir "$Name.lnk" - $wsh = New-Object -ComObject WScript.Shell - try { - $sc = $wsh.CreateShortcut($path) - $sc.TargetPath = $Target - if ($Arguments) { $sc.Arguments = $Arguments } - if ($WorkingDirectory) { $sc.WorkingDirectory = $WorkingDirectory } - elseif ($Target) { - $parent = Split-Path -Parent $Target - if ($parent) { $sc.WorkingDirectory = $parent } - } - $sc.Save() - return $true - } catch { - Write-Warning "Failed to create startup shortcut '$Name': $_" - return $false - } finally { - try { [System.Runtime.InteropServices.Marshal]::ReleaseComObject($wsh) | Out-Null } catch {} - } -} - -# ============================================================================ -# Machine number - read current state -# ============================================================================ - -$currentMN = Get-CurrentMachineNumber -$currentUdc = $currentMN.Udc -$currentEdnc = $currentMN.Ednc - -$needsMachineNumber = ($currentUdc -eq '9999' -or $currentEdnc -eq '9999') - -# ============================================================================ -# Edge path (for URL-based startup items) -# ============================================================================ - -$edgePath = @( - 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe', - 'C:\Program Files\Microsoft\Edge\Application\msedge.exe' -) | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 - -# ============================================================================ -# Startup item definitions -# Resolved from: pcProfile.startupItems > siteConfig.startupItems > hardcoded -# ============================================================================ - -$cfgItems = Get-ProfileValue 'startupItems' - -# An EMPTY configured list means "no startup items" and must be honoured. -# Get-ProfileValue returns $null only when the key is absent from BOTH the -# profile and site-config, so $null is the real "not configured" signal. -# -# The old test also required .Count -gt 0, so "startupItems": [] fell through to -# the hardcoded list below and a Display kiosk was given UDC, eDNC, Defect -# Tracker, WJ Shopfloor and Plant Apps startup shortcuts - Plant Apps launching -# Edge in a new window on a kiosk. Confirmed on 579C144 2026-08-06: -# -# C:\ProgramData\...\StartUp\Defect Tracker.lnk 16:46:03 -# C:\ProgramData\...\StartUp\Plant Apps.lnk 16:46:03 -# -# Configuring "none" produced "everything". Same bug as desktopApps in -# 06-OrganizeDesktop.ps1 and taskbarPins in 07-TaskbarLayout.ps1. -if ($null -ne $cfgItems) { - $items = @() - $num = 0 - foreach ($si in $cfgItems) { - $num++ - switch ($si.type) { - 'exe' { - $target = $si.target - $items += @{ - Num = $num - Label = $si.label - Detail = (Split-Path -Leaf $target) - Available = (Test-Path $target) - CreateLnk = [scriptblock]::Create("return (New-StartupLnk -Name '$($si.label)' -Target '$target')") - } - } - 'existing' { - $srcLnk = $si.sourceLnk - $label = $si.label - $items += @{ - Num = $num - Label = $label - Detail = 'shortcut' - Available = $true - CreateLnk = [scriptblock]::Create(@" - `$src = @( - (Join-Path `$publicDesktop '$srcLnk'), - (Join-Path (Join-Path `$publicDesktop 'Shopfloor Tools') '$srcLnk') - ) | Where-Object { Test-Path -LiteralPath `$_ } | Select-Object -First 1 - if (`$src) { - `$dst = Join-Path `$startupDir '$label.lnk' - try { Copy-Item -LiteralPath `$src -Destination `$dst -Force; return `$true } - catch { Write-Warning "Failed to copy $label`: `$_"; return `$false } - } else { - Write-Warning "$srcLnk not found on desktop" - return `$false - } -"@) - } - } - 'url' { - $urlKey = $si.urlKey - $label = $si.label - $fallback = if ($urlKey -and $siteConfig.urls) { $siteConfig.urls.$urlKey } else { '' } - $items += @{ - Num = $num - Label = $label - Detail = 'opens in Edge' - Available = [bool]$edgePath - CreateLnk = [scriptblock]::Create(@" - `$fallback = '$fallback' - `$url = Get-UrlFromFile '$label' - if (-not `$url) { - Write-Host " $label .url not found on desktop, using known URL." - `$url = `$fallback - } - Write-Host " URL: `$url" - return (New-StartupLnk -Name '$label' -Target `$edgePath -Arguments "--new-window ```"`$url```"") -"@) - } - } - } - } -} else { - $items = @( - @{ - Num = 1 - Label = 'UDC' - Detail = 'UDC.exe' - Available = (Test-Path 'C:\Program Files\UDC\UDC.exe') - CreateLnk = { - return (New-StartupLnk -Name 'UDC' -Target 'C:\Program Files\UDC\UDC.exe') - } - } - @{ - Num = 2 - Label = 'eDNC' - Detail = 'DncMain.exe' - Available = (Test-Path 'C:\Program Files (x86)\Dnc\bin\DncMain.exe') - CreateLnk = { - return (New-StartupLnk -Name 'eDNC' -Target 'C:\Program Files (x86)\Dnc\bin\DncMain.exe') - } - } - @{ - Num = 3 - Label = 'Defect Tracker' - Detail = 'ClickOnce app' - Available = $true - CreateLnk = { - $src = @( - (Join-Path $publicDesktop 'Defect_Tracker.lnk'), - (Join-Path (Join-Path $publicDesktop 'Shopfloor Tools') 'Defect_Tracker.lnk') - ) | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 - if ($src) { - $dst = Join-Path $startupDir 'Defect Tracker.lnk' - try { Copy-Item -LiteralPath $src -Destination $dst -Force; return $true } - catch { Write-Warning "Failed to copy Defect Tracker: $_"; return $false } - } else { - Write-Warning "Defect_Tracker.lnk not found on desktop" - return $false - } - } - } - @{ - Num = 4 - Label = 'WJ Shopfloor' - Detail = 'HostExplorer session' - Available = $true - CreateLnk = { - $src = @( - (Join-Path $publicDesktop 'WJ Shopfloor.lnk'), - (Join-Path (Join-Path $publicDesktop 'Shopfloor Tools') 'WJ Shopfloor.lnk') - ) | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 - if ($src) { - $dst = Join-Path $startupDir 'WJ Shopfloor.lnk' - try { Copy-Item -LiteralPath $src -Destination $dst -Force; return $true } - catch { Write-Warning "Failed to copy WJ Shopfloor: $_"; return $false } - } else { - Write-Warning "WJ Shopfloor.lnk not found on desktop" - return $false - } - } - } - @{ - Num = 5 - Label = 'Plant Apps' - Detail = 'opens in Edge' - Available = [bool]$edgePath - CreateLnk = { - $fallback = 'https://mes-wjefferson.apps.lr.geaerospace.net/run/?app_name=Plant%20Applications' - $url = Get-UrlFromFile 'Plant Apps' - if (-not $url) { - Write-Host " Plant Apps .url not found on desktop, using known URL." - $url = $fallback - } - Write-Host " URL: $url" - return (New-StartupLnk -Name 'Plant Apps' -Target $edgePath -Arguments "--new-window `"$url`"") - } - } - ) -} - -# Machine-number logon tasks (item 6 toggle controls both) -# 2026-05-24: split into user-context Prompt + SYSTEM-context Apply. -# 'Check Machine Number' is the legacy single-task name kept for -# backward-detection on bays imaged before the split. -$machineNumPromptTask = 'Prompt Machine Number' -$machineNumApplyTask = 'Apply Machine Number' -$machineNumLegacyTask = 'Check Machine Number' - -# ============================================================================ -# Interactive UI -# ============================================================================ - -Clear-Host -Write-Host "" -Write-Host "========================================" -ForegroundColor Cyan -Write-Host " Configure PC" -ForegroundColor Cyan -Write-Host "========================================" -ForegroundColor Cyan - -# --- Section 1: Machine number --- -Write-Host "" -Write-Host " MACHINE NUMBER" -ForegroundColor Yellow -Write-Host " ----------------------------------------" - -if ($needsMachineNumber) { - if ($currentUdc) { Write-Host " UDC : $currentUdc" -ForegroundColor Red } - if ($currentEdnc) { Write-Host " eDNC : $currentEdnc" -ForegroundColor Red } - Write-Host "" - $newNum = Read-Host " Enter new machine number (digits only, Enter to skip)" - $newNum = $newNum.Trim() - - if ($newNum -and $newNum -match '^\d+$') { - $site = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } - $mnResult = Update-MachineNumber -NewNumber $newNum -Site $site - - if ($mnResult.UdcUpdated) { - Write-Host " UDC : $currentUdc -> $newNum" -ForegroundColor Green - $currentUdc = $newNum - } - if ($mnResult.EdncUpdated) { - Write-Host " eDNC : $currentEdnc -> $newNum" -ForegroundColor Green - $currentEdnc = $newNum - } - foreach ($err in $mnResult.Errors) { Write-Warning " $err" } - if ($mnResult.UdcUpdated) { Write-Host " UDC.exe relaunched." } - - $needsMachineNumber = ($currentUdc -eq '9999' -or $currentEdnc -eq '9999') - } elseif ($newNum) { - Write-Host " Invalid (digits only). Skipped." -ForegroundColor Yellow - } else { - Write-Host " Skipped (still 9999)." -ForegroundColor DarkGray - } -} else { - if ($currentUdc) { Write-Host " UDC : $currentUdc" -ForegroundColor Green } - if ($currentEdnc) { Write-Host " eDNC : $currentEdnc" -ForegroundColor Green } -} - -# --- Section 2: Startup items + machine-number logon task --- -# Skipped when -MachineNumberOnly (called from sync_intune -AsTask after -# completion -- startup items already auto-applied by 06-OrganizeDesktop). -if (-not $MachineNumberOnly) { -Write-Host "" -Write-Host " AUTO-STARTUP ITEMS" -ForegroundColor Yellow -Write-Host " ----------------------------------------" -Write-Host " Toggle which items start at user logon:" -Write-Host "" - -$existingStartup = @(Get-ChildItem -LiteralPath $startupDir -Filter '*.lnk' -File -ErrorAction SilentlyContinue | Select-Object -ExpandProperty BaseName) - -foreach ($item in $items) { - $on = if ($existingStartup -contains $item.Label) { '[ON]' } else { '[ ]' } - $avail = if ($item.Available) { '' } else { ' (not installed)' } - Write-Host " $($item.Num). $on $($item.Label) - $($item.Detail)$avail" -} - -# Item 6: machine number logon prompt. "ON" if EITHER the new Prompt task OR -# the legacy Check Machine Number task is registered. -$machineNumTaskExists = [bool]( - (Get-ScheduledTask -TaskName $machineNumPromptTask -ErrorAction SilentlyContinue) -or - (Get-ScheduledTask -TaskName $machineNumLegacyTask -ErrorAction SilentlyContinue) -) -$mnOn = if ($machineNumTaskExists) { '[ON]' } else { '[ ]' } -Write-Host " 6. $mnOn Prompt standard user for machine number if 9999" - -Write-Host "" -Write-Host " Enter numbers to toggle (e.g. 1,2,6), Enter to keep current:" -$selection = Read-Host " Selection" -$selection = $selection.Trim() - -if ($selection) { - $selected = $selection -split '[,\s]+' | Where-Object { $_ -match '^\d+$' } | ForEach-Object { [int]$_ } - - # Process startup items 1-5 - $suppressed = @(Get-SuppressedStartup) - $suppressedChanged = $false - - foreach ($item in $items) { - if ($selected -notcontains $item.Num) { continue } - - $existingLnk = Join-Path $startupDir "$($item.Label).lnk" - if (Test-Path -LiteralPath $existingLnk) { - # Toggling OFF: remove the .lnk AND record the suppression so - # the logon sweep in 06-OrganizeDesktop doesn't re-create it. - try { - Remove-Item -LiteralPath $existingLnk -Force - Write-Host " $($item.Label): REMOVED from startup" -ForegroundColor Yellow - } catch { Write-Warning " Failed to remove $($item.Label): $_" } - - if ($suppressed -notcontains $item.Label) { - $suppressed += $item.Label - $suppressedChanged = $true - } - } else { - # Toggling ON: drop any suppression first so the sweep won't - # fight us next logon, then create the .lnk. - if ($suppressed -contains $item.Label) { - $suppressed = @($suppressed | Where-Object { $_ -ne $item.Label }) - $suppressedChanged = $true - } - - if (-not $item.Available) { - Write-Host " $($item.Label): not installed, cannot add to startup" -ForegroundColor DarkGray - continue - } - - $result = & $item.CreateLnk - if ($result) { - Write-Host " $($item.Label): ADDED to startup" -ForegroundColor Green - } - } - } - - if ($suppressedChanged) { - try { - Set-SuppressedStartup -Labels $suppressed - Write-Host " (saved override state to $overridesPath)" -ForegroundColor DarkGray - } catch { - Write-Warning " Failed to write override state: $_" - } - } - - # Process item 6: machine number logon task - if ($selected -contains 6) { - if ($machineNumTaskExists) { - # Toggle OFF - remove Prompt + Apply (new design) AND the legacy - # Check Machine Number task name (in case this bay was imaged - # before the split and never re-imaged). - $removed = @() - foreach ($t in @($machineNumPromptTask, $machineNumApplyTask, $machineNumLegacyTask)) { - try { - if (Get-ScheduledTask -TaskName $t -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName $t -Confirm:$false -ErrorAction Stop - $removed += $t - } - } catch { Write-Warning " Failed to remove '$t': $_" } - } - if ($removed) { - Write-Host " Machine number logon prompt: REMOVED ($($removed -join ', '))" -ForegroundColor Yellow - } - $machineNumTaskExists = $false - } else { - # Toggle ON - register logon task - # Defer task registration to the shared registrar so this code - # path always matches the imaging-time path. Registrar installs - # BOTH the user-context "Prompt Machine Number" task and the - # SYSTEM-context "Apply Machine Number" task, sets the SDDL on - # Apply so Limited users can schtasks /run it, and cleans up - # any legacy "Check Machine Number" task name. - $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path - $registrar = Join-Path $scriptDir 'Register-CheckMachineNumberTask.ps1' - if (-not (Test-Path -LiteralPath $registrar)) { - $registrar = 'C:\Enrollment\shopfloor-setup\Shopfloor\Register-CheckMachineNumberTask.ps1' - } - if (Test-Path -LiteralPath $registrar) { - try { - & $registrar - Write-Host " Machine number logon prompt: ENABLED" -ForegroundColor Green - Write-Host " (Prompt user-task + Apply SYSTEM-task registered;" -ForegroundColor DarkGray - Write-Host " will auto-disable after machine number is set)" -ForegroundColor DarkGray - $machineNumTaskExists = $true - } catch { - Write-Warning " Register-CheckMachineNumberTask failed: $_" - } - } else { - Write-Warning " Register-CheckMachineNumberTask.ps1 not found at $registrar" - } - } - } -} else { - Write-Host " No changes." -ForegroundColor DarkGray -} - -} # end if (-not $MachineNumberOnly) - -# --- Summary --- -Write-Host "" -Write-Host " CURRENT STATE" -ForegroundColor Cyan -Write-Host " ----------------------------------------" -$final = @(Get-ChildItem -LiteralPath $startupDir -Filter '*.lnk' -File -ErrorAction SilentlyContinue | Select-Object -ExpandProperty BaseName) -Write-Host " Startup items:" -if ($final.Count -eq 0) { - Write-Host " (none)" -} else { - foreach ($f in $final) { Write-Host " - $f" } -} -$mnState = if ($machineNumTaskExists) { 'ON (prompts at logon if 9999)' } else { 'OFF' } -Write-Host " Machine number logon prompt: $mnState" - -Write-Host "" -Write-Host "========================================" -ForegroundColor Cyan -Write-Host " Done" -ForegroundColor Cyan -Write-Host "========================================" -ForegroundColor Cyan -Write-Host "" -Write-Host "Completed: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -try { Stop-Transcript | Out-Null } catch {} - -Write-Host "Press any key to close..." -try { [void][Console]::ReadKey($true) } catch { [void](Read-Host) } diff --git a/playbook/shopfloor-setup/Shopfloor/Install-AppList.ps1 b/playbook/shopfloor-setup/Shopfloor/Install-AppList.ps1 new file mode 100644 index 0000000..b87e249 --- /dev/null +++ b/playbook/shopfloor-setup/Shopfloor/Install-AppList.ps1 @@ -0,0 +1,364 @@ +# Install-AppList.ps1 - install the apps in a site app list (shopfloor). +# +# -ListPath C:\PreInstall\preinstall.json during setup (Run-ShopfloorSetup, +# same logon as the PPKG) +# C:\PreInstall\postppkg.json after the post-PPKG reboot +# (Invoke-PostPpkg.ps1, SYSTEM) +# -Phase name for the log folder: C:\Logs\\install.log +# +# Both lists are EMPTY in the generic build; a site adds its apps: +# { "Name": "Foo 1.2", "Installer": "foo\\Foo.msi", "Type": "MSI" | "EXE", +# "InstallArgs": "/qn /norestart", +# "DetectionMethod": "Registry" | "File", "DetectionPath": "...", +# optional: "DetectionName", "DetectionValue", "LogFile", +# "KillAfterDetection": true, "PCTypes": ["gea-shopfloor-standard"] } +# Installers come from \installers\ (staged from the PXE server's +# enrollment share, pre-install\installers\). Detection runs first, so an app +# that is already there is skipped and re-runs are safe. +# +# Never fails the caller: a missing or empty list, a bad JSON file or a failed +# install is logged and the script exits 0. + +param( + [string]$ListPath = 'C:\PreInstall\preinstall.json', + [string]$Phase = 'PreInstall' +) + +$installerDir = Join-Path (Split-Path -Parent $ListPath) 'installers' +$logDir = "C:\Logs\$Phase" +$logFile = Join-Path $logDir 'install.log' + +# Appended, never wiped: an installer-triggered reboot can kill a run, and the +# next run must not destroy that record. +if (-not (Test-Path $logDir)) { + New-Item -Path $logDir -ItemType Directory -Force | Out-Null +} + +function Write-ListLog { + param( + [Parameter(Mandatory=$true, Position=0)] + [string]$Message, + [Parameter(Position=1)] + [ValidateSet('INFO','WARN','ERROR')] + [string]$Level = 'INFO' + ) + $stamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" + $line = "[$stamp] [$Level] $Message" + Write-Host $line + # Write-through, so each line is on disk even if a reboot follows. + try { + $fs = New-Object System.IO.FileStream( + $logFile, + [System.IO.FileMode]::Append, + [System.IO.FileAccess]::Write, + [System.IO.FileShare]::Read, + 4096, + [System.IO.FileOptions]::WriteThrough + ) + $bytes = [System.Text.Encoding]::UTF8.GetBytes($line + "`r`n") + $fs.Write($bytes, 0, $bytes.Length) + $fs.Flush() + $fs.Dispose() + } + catch { + Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue + } +} + +Write-ListLog "================================================================" +Write-ListLog "=== $Phase session start (PID $PID): $ListPath ===" +Write-ListLog "================================================================" + +if (-not (Test-Path -LiteralPath $ListPath)) { + Write-ListLog "No app list at $ListPath - nothing to install." + exit 0 +} + +$pcType = '' +$pcTypeFile = 'C:\Enrollment\pc-type.txt' +if (Test-Path $pcTypeFile) { + $pcType = "$(Get-Content $pcTypeFile -First 1 -ErrorAction SilentlyContinue)".Trim() +} +Write-ListLog "PC type: $(if ($pcType) { $pcType } else { '(unknown)' })" + +try { + $config = Get-Content -LiteralPath $ListPath -Raw | ConvertFrom-Json +} catch { + Write-ListLog "Failed to parse $ListPath : $_" "ERROR" + exit 0 +} + +$apps = @($config.Applications | Where-Object { $_ }) +if ($apps.Count -eq 0) { + Write-ListLog "The list has no applications - nothing to install." + exit 0 +} +Write-ListLog "Installer dir: $installerDir" +Write-ListLog "$($apps.Count) app entries" + +# --- Detection helper --- +function Test-AppInstalled { + param($App) + + if (-not $App.DetectionMethod) { + return $false + } + + try { + switch ($App.DetectionMethod) { + "Registry" { + if (-not (Test-Path $App.DetectionPath)) { + return $false + } + if ($App.DetectionName) { + $value = Get-ItemProperty -Path $App.DetectionPath -Name $App.DetectionName -ErrorAction SilentlyContinue + if (-not $value) { + return $false + } + if ($App.DetectionValue) { + return ($value.$($App.DetectionName) -eq $App.DetectionValue) + } + return $true + } + return $true + } + "File" { + return Test-Path $App.DetectionPath + } + default { + Write-ListLog " Unknown detection method: $($App.DetectionMethod)" "WARN" + return $false + } + } + } catch { + Write-ListLog " Detection check threw: $_" "WARN" + return $false + } +} + +# --- Iterate apps --- +$installed = 0 +$skipped = 0 +$failed = 0 + +foreach ($app in $apps) { + # Cancel any reboot a previous installer scheduled (some respect /norestart, some + # don't - VC++ 2008's bootstrapper sometimes triggers an immediate Windows reboot + # despite the flag). Doing this BEFORE each install protects the rest of the loop. + cmd /c "shutdown /a 2>nul" *>$null + + Write-ListLog "==> $($app.Name)" + + # PCTypes: absent, '*' or the PC's type = install. (One generic type, + # gea-shopfloor-standard; the filter is there for sites that add types.) + $allowedTypes = @($app.PCTypes | Where-Object { $_ }) + if ($allowedTypes.Count -gt 0 -and -not ($allowedTypes -contains '*') -and -not ($allowedTypes -icontains $pcType)) { + Write-ListLog " PCTypes excludes '$pcType' (allowed: $($allowedTypes -join ', ')) - skipping" + $skipped++ + continue + } + + # Detection check + if (Test-AppInstalled -App $app) { + Write-ListLog " Already installed - skipping" + $skipped++ + continue + } + + # Locate installer file + $installerPath = Join-Path $installerDir $app.Installer + if (-not (Test-Path $installerPath)) { + Write-ListLog " Installer file not found: $installerPath" "ERROR" + $failed++ + continue + } + + Write-ListLog " Installing from $installerPath" + if ($app.InstallArgs) { + Write-ListLog " InstallArgs: $($app.InstallArgs)" + } + + # Per-app verbose msiexec log path - written by /L*v on MSI installs and tailed + # into the runner log on failure so we don't need to dig through C:\Logs manually. + $safeName = $app.Name -replace '[^a-zA-Z0-9]','_' + $msiLog = Join-Path $logDir "msi-$safeName.log" + if (Test-Path $msiLog) { Remove-Item $msiLog -Force -ErrorAction SilentlyContinue } + + try { + # We use [System.Diagnostics.Process]::Start() directly instead of Start-Process + # because PowerShell 5.1's Start-Process -PassThru has a bug where the returned + # Process object's OS handle is disposed when control returns to the script, + # causing ExitCode to always read as $null even after WaitForExit() succeeds. + # Calling Process.Start() directly returns a Process object with a live handle + # that exposes ExitCode correctly. We poll HasExited so UDC_Setup.exe (which + # hangs forever after spawning a hidden WPF window) can be killed via the + # detection-during-install path. + $psi = New-Object System.Diagnostics.ProcessStartInfo + $psi.UseShellExecute = $false + $psi.CreateNoWindow = $true + $psi.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden + + if ($app.Type -eq "MSI") { + $psi.FileName = "msiexec.exe" + $psi.Arguments = "/i `"$installerPath`"" + if ($app.InstallArgs) { + $psi.Arguments += " " + $app.InstallArgs + } + $psi.Arguments += " /L*v `"$msiLog`"" + Write-ListLog " msiexec verbose log: $msiLog" + } + elseif ($app.Type -eq "EXE") { + $psi.FileName = $installerPath + if ($app.InstallArgs) { + $psi.Arguments = $app.InstallArgs + } + # If the JSON entry specifies a LogFile (per-installer log written by + # the EXE itself - e.g. Setup-OpenText.ps1 -> C:\Logs\PreInstall\Setup- + # OpenText.log), surface it on failure the same way we surface the + # msiexec /L*v verbose log for MSI installs. Lets EXE wrappers actually + # report what went wrong inside. + if ($app.LogFile) { + Write-ListLog " Installer log: $($app.LogFile)" + } + } + else { + Write-ListLog " Unsupported Type: $($app.Type) - skipping" "ERROR" + $failed++ + continue + } + + $proc = [System.Diagnostics.Process]::Start($psi) + # 1618 = another MSI install is running (after the PPKG its own + # installs can still be going). Wait and retry, up to 5 times. + for ($try = 1; $app.Type -eq "MSI" -and $try -le 5; $try++) { + $proc.WaitForExit(15000) | Out-Null + if (-not $proc.HasExited -or $proc.ExitCode -ne 1618) { break } + Write-ListLog " Another installation is in progress (1618) - retry $try of 5 in 60 s" "WARN" + Start-Sleep -Seconds 60 + $proc = [System.Diagnostics.Process]::Start($psi) + } + + # Poll for completion: process exit OR detection success (whichever happens first) + $timeoutSec = 600 # 10 min hard cap per app + $pollInterval = 5 + $elapsed = 0 + $killedAfterDetect = $false + + while ($elapsed -lt $timeoutSec) { + if ($proc.HasExited) { break } + + # Detection-during-install kill is OPT-IN via "KillAfterDetection: true" + # in the JSON entry. It's only safe for installers that hang forever after + # creating their detection markers (UDC_Setup.exe spawns a hidden WPF window + # and never exits). For normal installers (Oracle, msiexec, etc.) the + # detection registry key often gets written midway through the install AND + # msiexec is still doing post-install cleanup AND msiserver is still holding + # the install mutex - killing msiexec at that point leaves the system in a + # bad state and the NEXT msiexec call returns 1618 ERROR_INSTALL_ALREADY_ + # RUNNING. So opt-out by default; only kill apps that explicitly need it. + if ($app.KillAfterDetection -and (Test-AppInstalled -App $app)) { + Write-ListLog " Detection passed at $elapsed s - killing installer to advance (KillAfterDetection)" + try { $proc.Kill(); $proc.WaitForExit(5000) | Out-Null } catch { } + + $killedAfterDetect = $true + break + } + + Start-Sleep -Seconds $pollInterval + $elapsed += $pollInterval + } + + if (-not $proc.HasExited -and -not $killedAfterDetect) { + Write-ListLog " TIMEOUT after $timeoutSec seconds - killing installer" "ERROR" + try { $proc.Kill() } catch { } + $failed++ + continue + } + + if ($killedAfterDetect) { + Write-ListLog " SUCCESS (verified via detection during install)" + $installed++ + } + else { + # Start-Process -PassThru returns a Process object whose ExitCode is null + # until WaitForExit() is called - even if HasExited is already true. Without + # this, every install that goes through the exit-code branch gets reported + # as "Exit code - FAILED" (empty) regardless of the real result. + try { $proc.WaitForExit() } catch { } + $exitCode = $proc.ExitCode + + if ($exitCode -eq 0 -or $exitCode -eq 3010) { + Write-ListLog " Exit code $exitCode after $elapsed s - SUCCESS" + if ($exitCode -eq 3010) { + Write-ListLog " (Reboot required for $($app.Name))" + } + $installed++ + } + else { + Write-ListLog " Exit code $exitCode - FAILED" "ERROR" + + # If the JSON entry specifies a LogFile for an EXE install (e.g. + # Setup-OpenText.ps1 writes its own log at C:\Logs\PreInstall\Setup- + # OpenText.log), tail it here so the runner log surfaces the actual + # cause without us having to dig through C:\Logs manually. + if ($app.Type -eq "EXE" -and $app.LogFile -and (Test-Path $app.LogFile)) { + Write-ListLog " --- last 30 lines of $($app.LogFile) ---" + Get-Content $app.LogFile -Tail 30 -ErrorAction SilentlyContinue | ForEach-Object { + Write-ListLog " $_" + } + Write-ListLog " --- end installer log tail ---" + } + + # Surface the *meaningful* lines from the verbose msiexec log (not just + # the tail, which is rollback/cleanup noise). The actual root-cause lines + # are: MSI error notes (Note: 1: ), failed action returns (return + # value 3), errors logged by custom actions, and any line containing the + # word "Error". Grep these out so the runner log shows the smoking gun. + if ($app.Type -eq "MSI" -and (Test-Path $msiLog)) { + Write-ListLog " --- meaningful lines from $msiLog ---" + $patterns = @( + 'Note: 1: ', + 'return value 3', + 'Error \d+\.', + 'CustomAction .* returned actual error', + 'Failed to ', + 'Installation failed', + 'Calling custom action', + '1: 2262', # Database not found + '1: 2203', # Cannot open database + '1: 2330' # Insufficient permissions + ) + $regex = ($patterns -join '|') + $matches = Select-String -Path $msiLog -Pattern $regex -ErrorAction SilentlyContinue | + Select-Object -First 30 + if ($matches) { + foreach ($m in $matches) { + Write-ListLog " $($m.Line.Trim())" + } + } else { + Write-ListLog " (no error patterns matched - falling back to last 25 lines)" + Get-Content $msiLog -Tail 25 -ErrorAction SilentlyContinue | ForEach-Object { + Write-ListLog " $_" + } + } + Write-ListLog " --- end MSI log scan ---" + } + $failed++ + } + } + } catch { + Write-ListLog " Install threw: $_" "ERROR" + $failed++ + } +} + +Write-ListLog "============================================" +Write-ListLog "$Phase complete: $installed installed, $skipped skipped, $failed failed" +Write-ListLog "============================================" + +# Final reboot cancel - if the last installer in the loop scheduled one, the +# caller's later `shutdown /a` may not come in time. Cancel here so control +# returns cleanly to the caller. +cmd /c "shutdown /a 2>nul" *>$null + +exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/Invoke-PostPpkg.ps1 b/playbook/shopfloor-setup/Shopfloor/Invoke-PostPpkg.ps1 new file mode 100644 index 0000000..e133b4a --- /dev/null +++ b/playbook/shopfloor-setup/Shopfloor/Invoke-PostPpkg.ps1 @@ -0,0 +1,86 @@ +# Invoke-PostPpkg.ps1 - run by the "GE Shopfloor Post-PPKG" task (SYSTEM, +# at startup and logon). Three jobs, each done once: +# +# 1. Install the site's post-PPKG app list, C:\PreInstall\postppkg.json +# (Install-AppList.ps1; empty in the generic build). Only once the PPKG +# has been applied (C:\Enrollment\.ppkg-applied, written by +# run-enrollment.ps1), i.e. on the boot after the PPKG reboot. +# Done marker: C:\Enrollment\postppkg-done.txt +# 2. After the ShopFloor handover (Winlogon DefaultUserName ShopFloor*), +# delete the imaging AutoLogonCount. Left in place, ShopFloor inherits +# it and Windows turns autologon off when it reaches 0: the bay stops at +# a ShopFloor password prompt a few reboots later. The monitor tries the +# same, but it runs as Users and the HKLM write can be denied. +# 3. Once Monitor-IntuneProgress has written C:\Enrollment\sync-complete.txt, +# remove the "Shopfloor Intune Sync" logon task. +# When all three are done the task unregisters itself. +# +# Never throws: every step logs and the script exits 0. + +$ErrorActionPreference = 'Continue' +$logDir = 'C:\Logs\SFLD' +New-Item -Path $logDir -ItemType Directory -Force -ErrorAction SilentlyContinue | Out-Null +try { Start-Transcript -Path (Join-Path $logDir 'postppkg.log') -Append -Force | Out-Null } catch {} + +$appliedMarker = 'C:\Enrollment\.ppkg-applied' +$doneMarker = 'C:\Enrollment\postppkg-done.txt' +$syncComplete = 'C:\Enrollment\sync-complete.txt' +$listPath = 'C:\PreInstall\postppkg.json' +$taskName = 'GE Shopfloor Post-PPKG' +$syncTask = 'Shopfloor Intune Sync' + +Write-Host "=== Invoke-PostPpkg $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ===" + +# 1. post-PPKG app list +if (Test-Path -LiteralPath $doneMarker) { + Write-Host "Post-PPKG list already done ($(Get-Content $doneMarker -First 1))." +} elseif (-not (Test-Path -LiteralPath $appliedMarker)) { + Write-Host "PPKG not applied yet ($appliedMarker missing) - waiting for the next boot." +} else { + $runner = Join-Path $PSScriptRoot 'Install-AppList.ps1' + if (Test-Path -LiteralPath $runner) { + try { & $runner -ListPath $listPath -Phase 'PostPpkg' } catch { Write-Warning "Install-AppList failed: $_" } + Set-Content -Path $doneMarker -Value (Get-Date -Format 'yyyy-MM-dd HH:mm:ss') -ErrorAction SilentlyContinue + Write-Host "Post-PPKG list done (log: C:\Logs\PostPpkg\install.log)." + } else { + Write-Warning "Install-AppList.ps1 not found next to this script ($runner)." + } +} + +# 2. AutoLogonCount after the ShopFloor handover +$handedOver = $false +$countGone = $true +try { + $wlKey = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' + $wl = Get-ItemProperty $wlKey -ErrorAction Stop + $handedOver = ($wl.DefaultUserName -like 'ShopFloor*') + if ($handedOver -and $null -ne $wl.AutoLogonCount) { + Remove-ItemProperty $wlKey -Name AutoLogonCount -ErrorAction Stop + Write-Host "Removed leftover AutoLogonCount ($($wl.AutoLogonCount)) after the ShopFloor handover." + } + $countGone = ($null -eq (Get-ItemProperty $wlKey -ErrorAction Stop).AutoLogonCount) +} catch { + Write-Warning "AutoLogonCount check failed: $_" + $countGone = $false +} + +# 3. the monitor's logon task, once it has finished +$syncDone = Test-Path -LiteralPath $syncComplete +if ($syncDone -and (Get-ScheduledTask -TaskName $syncTask -ErrorAction SilentlyContinue)) { + try { + Unregister-ScheduledTask -TaskName $syncTask -Confirm:$false -ErrorAction Stop + Write-Host "Removed the '$syncTask' task (sync-complete.txt present)." + } catch { + Write-Warning "Could not remove '$syncTask': $_" + } +} + +if ((Test-Path -LiteralPath $doneMarker) -and $handedOver -and $countGone -and $syncDone) { + Write-Host "All done - unregistering '$taskName'." + try { Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction Stop } catch { Write-Warning "Could not unregister: $_" } +} else { + Write-Host ("Still to do: list={0} handover={1} autologoncount_cleared={2} sync_complete={3}" -f ` + (Test-Path -LiteralPath $doneMarker), $handedOver, $countGone, $syncDone) +} +try { Stop-Transcript | Out-Null } catch {} +exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/Prompt-MachineNumber.ps1 b/playbook/shopfloor-setup/Shopfloor/Prompt-MachineNumber.ps1 deleted file mode 100644 index 4d708ff..0000000 --- a/playbook/shopfloor-setup/Shopfloor/Prompt-MachineNumber.ps1 +++ /dev/null @@ -1,200 +0,0 @@ -# Prompt-MachineNumber.ps1 - User-context GUI script for the two-task -# machine number flow. Triggered AtLogOn for any BUILTIN\Users member. -# -# Flow: -# 1. Read current UDC + eDNC values (read-only - no privileges needed). -# 2. If neither is 9999, unregister self and exit (this PC is set up). -# 3. Show InputBox for new machine number. -# 4. Write number to C:\Logs\SFLD\machine-number-request.txt. -# 5. Trigger the SYSTEM-context Apply-MachineNumber task via -# schtasks /run. SYSTEM has full HKLM + ProgramData access so the -# actual write happens with proper privileges - the prompted user -# never needs HKLM write rights (security improvement over the old -# 02-MachineNumberACLs.ps1 ACL-grant hack). -# 6. Poll for C:\Logs\SFLD\machine-number-result.json (30s timeout). -# 7. Show result MessageBox. Unregister self on success. -# -# Why this script doesn't do the writes itself: GUI is required (InputBox), -# but GUI requires user-context (SYSTEM can't render to user desktop on -# modern Windows). The user-context dialog gathers input; the SYSTEM task -# does privileged writes. - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path -LiteralPath $logDir)) { - try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$transcript = Join-Path $logDir 'Prompt-MachineNumber.log' -try { Start-Transcript -Path $transcript -Append -Force | Out-Null } catch {} -Write-Host "Prompt-MachineNumber.ps1 starting $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -Write-Host "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -. "$PSScriptRoot\lib\Get-PCProfile.ps1" -. "$PSScriptRoot\lib\Update-MachineNumber.ps1" - -Add-Type -AssemblyName Microsoft.VisualBasic -Add-Type -AssemblyName System.Windows.Forms - -$taskName = 'Prompt Machine Number' -$applyTaskName = 'Apply Machine Number' -$requestFile = Join-Path $logDir 'machine-number-request.txt' -$resultFile = Join-Path $logDir 'machine-number-result.json' -$site = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } - -# --- Read current values (read-only, no perms needed) --- -$currentMN = Get-CurrentMachineNumber -$currentUdc = $currentMN.Udc -$currentEdnc = $currentMN.Ednc -Write-Host "UDC machine number: $(if ($currentUdc) { $currentUdc } else { '(not found)' })" -Write-Host "eDNC machine number: $(if ($currentEdnc) { $currentEdnc } else { '(not found)' })" - -if ($currentUdc -ne '9999' -and $currentEdnc -ne '9999') { - Write-Host "Machine number is set (not 9999). Unregistering Prompt task and exiting." - try { Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue } catch {} - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -Write-Host "Placeholder 9999 detected - showing prompt." - -# --- Show prompt --- -$promptLines = @() -$promptLines += "The machine number on this PC is still set to the" -$promptLines += "placeholder value (9999). Please enter the correct" -$promptLines += "machine number for this workstation." -$promptLines += "" -if ($currentUdc) { $promptLines += "Current UDC: $currentUdc" } -if ($currentEdnc) { $promptLines += "Current eDNC: $currentEdnc" } -$promptLines += "" -$promptLines += "Enter the new Machine Number:" -$prompt = $promptLines -join "`n" -$new = [Microsoft.VisualBasic.Interaction]::InputBox($prompt, "Set Machine Number", "") - -if ([string]::IsNullOrWhiteSpace($new)) { - Write-Host "User cancelled. Will prompt again next logon." - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} -$new = $new.Trim() - -if ($new -notmatch '^\d+$') { - Write-Host "Invalid input: '$new' (not digits only). Showing error and re-prompting next logon." - [System.Windows.Forms.MessageBox]::Show( - "Machine number must be digits only.`n`nYou entered: '$new'`n`nThe prompt will appear again at next logon.", - "Invalid Machine Number", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Error - ) | Out-Null - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -# --- Hand off to SYSTEM task --- -# Clean any stale request / result files first so we read fresh ones. -Remove-Item -LiteralPath $requestFile, $resultFile -Force -ErrorAction SilentlyContinue - -try { - Set-Content -LiteralPath $requestFile -Value $new -Encoding ascii -Force -ErrorAction Stop -} catch { - [System.Windows.Forms.MessageBox]::Show( - "Could not write request file at $requestFile`n`n$_`n`nThe prompt will appear again at next logon.", - "Machine Number Request Failed", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Error - ) | Out-Null - try { Stop-Transcript | Out-Null } catch {} - exit 1 -} - -Write-Host "Wrote $requestFile with '$new'. Triggering SYSTEM apply task..." -& schtasks.exe /run /tn $applyTaskName 2>&1 | ForEach-Object { Write-Host " schtasks: $_" } - -# --- Wait for result --- -$deadline = (Get-Date).AddSeconds(60) -$result = $null -while ((Get-Date) -lt $deadline) { - if (Test-Path -LiteralPath $resultFile) { - try { - $result = Get-Content -LiteralPath $resultFile -Raw -ErrorAction Stop | ConvertFrom-Json - break - } catch { Start-Sleep -Milliseconds 200 } - } - Start-Sleep -Milliseconds 500 -} - -# Make the result MessageBox topmost so it shows above the FormTracePak / -# DNC windows and isn't missed. -$tmpForm = New-Object System.Windows.Forms.Form -$tmpForm.TopMost = $true -$tmpForm.WindowState = 'Minimized' -$tmpForm.ShowInTaskbar = $false -$tmpForm.Opacity = 0 -$tmpForm.Show() - -if (-not $result) { - Write-Host "Timed out waiting for SYSTEM apply task to produce result file ($resultFile)." - [System.Windows.Forms.MessageBox]::Show( - $tmpForm, - "Timed out waiting for the SYSTEM update task to complete.`n`nCheck:`n C:\Logs\SFLD\Apply-MachineNumber.log`n C:\Logs\SFLD\Prompt-MachineNumber.log`n`nThe prompt will appear again at next logon.", - "Machine Number Update Timed Out", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Warning - ) | Out-Null - $tmpForm.Close() - try { Stop-Transcript | Out-Null } catch {} - exit 1 -} - -# Build summary from result JSON -$lines = @() -$lines += "Requested: $($result.Requested)" -$lines += "" -if ($result.UdcUpdated) { $lines += "UDC updated to $($result.Requested)" } else { $lines += "UDC: not updated (UDC may not be installed)" } -if ($result.EdncUpdated) { $lines += "eDNC updated to $($result.Requested)" } else { $lines += "eDNC: not updated" } -if ($result.UdcSettingsRestored) { $lines += "UDC settings restored from SFLD" } -if ($result.UdcRestored) { $lines += "UDC live data restored from SFLD" } -if ($result.MachineNumberTxtUpdated) { $lines += "machine-number.txt updated" } -if ($result.MTConnectUpdated -and $result.MTConnectUpdated.Count -gt 0) { - $lines += "" - $lines += "MTConnect Devices.xml updates:" - $result.MTConnectUpdated | ForEach-Object { $lines += " - $_" } -} -if ($result.Errors -and $result.Errors.Count -gt 0) { - $lines += "" - $lines += "FAILURES:" - $result.Errors | ForEach-Object { $lines += " - $_" } -} -$lines += "" -$lines += "Status: $($result.Status)" -$lines += "Logs: C:\Logs\SFLD\Apply-MachineNumber.log" -$lines += " C:\Logs\SFLD\Prompt-MachineNumber.log" -$lines += "" -$lines += "To apply eDNC changes, restart any running DncMain.exe." -$summary = $lines -join "`n" - -$icon = if ($result.Status -eq 'OK') { [System.Windows.Forms.MessageBoxIcon]::Information } else { [System.Windows.Forms.MessageBoxIcon]::Warning } -[System.Windows.Forms.MessageBox]::Show( - $tmpForm, - $summary, - "Machine Number Update Result", - [System.Windows.Forms.MessageBoxButtons]::OK, - $icon -) | Out-Null -$tmpForm.Close() - -# Clean up result file for the next round. -Remove-Item -LiteralPath $resultFile -Force -ErrorAction SilentlyContinue - -# Only unregister the Prompt task on full success (no errors AND eDNC -# updated to the requested value). If anything failed, leave it registered -# for next logon retry. -if ($result.Status -eq 'OK' -and $result.EdncUpdated) { - Write-Host "All updates succeeded. Unregistering Prompt task." - try { Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue } catch {} -} else { - Write-Host "Some updates failed or skipped. Prompt task stays registered for next logon retry." -} - -Write-Host "Prompt-MachineNumber.ps1 finished $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -try { Stop-Transcript | Out-Null } catch {} -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/Register-CheckMachineNumberTask.ps1 b/playbook/shopfloor-setup/Shopfloor/Register-CheckMachineNumberTask.ps1 deleted file mode 100644 index 2bb3069..0000000 --- a/playbook/shopfloor-setup/Shopfloor/Register-CheckMachineNumberTask.ps1 +++ /dev/null @@ -1,179 +0,0 @@ -# Register-CheckMachineNumberTask.ps1 - Register the two-task machine -# number flow at imaging time: -# -# 1. "Prompt Machine Number" - AtLogOn, BUILTIN\Users, Limited. -# Shows InputBox + writes new number to a request file, then triggers -# the SYSTEM task via schtasks /run. -# -# 2. "Apply Machine Number" - on-demand only (no trigger), SYSTEM, -# RunLevel Highest. Reads the request file, calls Update-MachineNumber -# with full HKLM + ProgramData access, writes a result JSON, removes -# the request file. No GUI - the Prompt task polls the result file -# and displays the dialog. -# -# Replaces the old single-task design that ran as the logged-in user with -# pre-granted BUILTIN\Users HKLM ACLs (02-MachineNumberACLs.ps1). That -# approach was fragile (timing race with eDNC install, silent ACL skip) -# and a security hole (any user could write to the machine-identity reg -# key). With SYSTEM doing the actual writes, no ACL grants needed. -# -# Idempotent: safe to re-run. Existing tasks are overwritten. -# -# File kept named Register-CheckMachineNumberTask.ps1 (rather than -# Register-MachineNumberTasks.ps1) so Run-ShopfloorSetup's existing -# discovery doesn't need editing. - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { New-Item -Path $logDir -ItemType Directory -Force | Out-Null } -$logFile = Join-Path $logDir 'register-checkmn.log' - -function Write-RegLog { - param([string]$Message) - $line = '[{0}] [INFO] {1}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Message - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Write-RegLog '=== Register-CheckMachineNumberTask start ===' - -$promptTaskName = 'Prompt Machine Number' -$applyTaskName = 'Apply Machine Number' -$oldTaskName = 'Check Machine Number' # legacy, removed below - -# Clean up the legacy single-task name from prior imaging cycles. -try { - if (Get-ScheduledTask -TaskName $oldTaskName -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName $oldTaskName -Confirm:$false -ErrorAction Stop - Write-RegLog "Unregistered legacy task '$oldTaskName'" - } -} catch { Write-RegLog "Could not unregister legacy '$oldTaskName': $_" } - -# PC types that have no machine number by design. Arming the prompt on these -# guarantees a dialog nobody can answer: startnet only collects a machine number -# for the machine-tool types, so everything else is left on the 9999 placeholder -# and the check below would otherwise fire on every one of them. -# -# Observed on 579C144 (a Display) 2026-08-06: PreInstall logged -# "Machine number: 9999 (default placeholder)" and the logon prompt armed itself -# on a kiosk with no keyboard. -$noMachineNumberTypes = @( - 'gea-shopfloor-display' -) -$pcTypeFile = 'C:\Enrollment\pc-type.txt' -$pcType = '' -if (Test-Path -LiteralPath $pcTypeFile) { - $pcType = (Get-Content -LiteralPath $pcTypeFile -First 1 -ErrorAction SilentlyContinue) - if ($pcType) { $pcType = $pcType.Trim() } -} -if ($pcType -and ($noMachineNumberTypes -contains $pcType)) { - Write-RegLog "PC type '$pcType' has no machine number by design. Not registering the prompt." - foreach ($t in @($promptTaskName, $applyTaskName)) { - try { - if (Get-ScheduledTask -TaskName $t -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName $t -Confirm:$false -ErrorAction Stop - Write-RegLog "Unregistered stale task '$t'" - } - } catch {} - } - return -} - -# Only arm the tasks if the bay was imaged with the 9999 placeholder. If -# the tech entered a real machine number during PXE imaging it's already -# in C:\Enrollment\machine-number.txt; no prompt needed on first logon. -$mnFile = 'C:\Enrollment\machine-number.txt' -$mnAtImaging = '9999' -if (Test-Path -LiteralPath $mnFile) { - $raw = (Get-Content -LiteralPath $mnFile -First 1 -ErrorAction SilentlyContinue) - if ($raw) { $mnAtImaging = $raw.Trim() } -} -Write-RegLog "Imaging-time machine-number.txt = '$mnAtImaging'" -if ($mnAtImaging -ne '9999') { - Write-RegLog "Machine number is real ('$mnAtImaging' != 9999). Not registering tasks." - foreach ($t in @($promptTaskName, $applyTaskName)) { - try { - if (Get-ScheduledTask -TaskName $t -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName $t -Confirm:$false -ErrorAction Stop - Write-RegLog "Unregistered stale task '$t'" - } - } catch {} - } - Write-RegLog '=== Register-CheckMachineNumberTask end (no-op) ===' - exit 0 -} - -# Resolve script paths. Prefer the staged shopfloor-setup tree on C: -# (where Run-ShopfloorSetup ran from); fall back to the same dir as this -# Register script if invoked standalone. -function Resolve-Script { - param([string]$LeafName) - $p = Join-Path $PSScriptRoot $LeafName - if (Test-Path -LiteralPath $p) { return $p } - $p = "C:\Enrollment\shopfloor-setup\Shopfloor\$LeafName" - if (Test-Path -LiteralPath $p) { return $p } - return $null -} - -$promptScript = Resolve-Script 'Prompt-MachineNumber.ps1' -$applyScript = Resolve-Script 'Apply-MachineNumber.ps1' -if (-not $promptScript) { Write-RegLog "Prompt-MachineNumber.ps1 not found - cannot register"; exit 1 } -if (-not $applyScript) { Write-RegLog "Apply-MachineNumber.ps1 not found - cannot register"; exit 1 } -Write-RegLog "Prompt script: $promptScript" -Write-RegLog "Apply script: $applyScript" - -# --- Prompt task (user-context, GUI) --- -try { - $action = New-ScheduledTaskAction ` - -Execute 'powershell.exe' ` - -Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Normal -File `"$promptScript`"" - $trigger = New-ScheduledTaskTrigger -AtLogOn - # Group SID S-1-5-32-545 = BUILTIN\Users (catches ShopFloor + support/admin - # users that log in interactively). RunLevel Limited - no elevation; the - # actual writes happen in the SYSTEM Apply task below. - $principal = New-ScheduledTaskPrincipal -GroupId 'S-1-5-32-545' -RunLevel Limited - $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Minutes 5) - Register-ScheduledTask -TaskName $promptTaskName -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Force -ErrorAction Stop | Out-Null - Write-RegLog "Registered scheduled task '$promptTaskName' (AtLogOn, BUILTIN\Users, Limited)" -} catch { - Write-RegLog "FAILED to register '$promptTaskName': $_" - exit 1 -} - -# --- Apply task (SYSTEM, on-demand) --- -try { - $action = New-ScheduledTaskAction ` - -Execute 'powershell.exe' ` - -Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$applyScript`"" - # No trigger - the Prompt task starts this via schtasks /run /tn. - $principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest - $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Minutes 10) - Register-ScheduledTask -TaskName $applyTaskName -Action $action -Principal $principal -Settings $settings -Force -ErrorAction Stop | Out-Null - Write-RegLog "Registered scheduled task '$applyTaskName' (on-demand, SYSTEM, Highest)" - - # Default SDDL on a SYSTEM-owned task only grants Admins + SYSTEM - # FullAccess - BUILTIN\Users can't see or run it via schtasks /run. - # Add an ACE granting BUILTIN\Users GenericRead + GenericExecute so the - # user-context Prompt task can trigger this Apply task on demand. They - # still can't modify/delete it - only read+execute. - try { - $svc = New-Object -ComObject Schedule.Service - $svc.Connect() - $taskObj = $svc.GetFolder('\').GetTask($applyTaskName) - # GenericRead = 0x80000000 (GR), GenericExecute = 0x20000000 (GX) - # BU = BUILTIN\Users - $newSd = 'O:BAG:BAD:(A;;FA;;;BA)(A;;FA;;;SY)(A;;GRGX;;;BU)' - # SetSecurityDescriptor flag 0 = default, persists DACL change. - $taskObj.SetSecurityDescriptor($newSd, 0) - Write-RegLog "Granted BUILTIN\Users GR+GX on '$applyTaskName' (so Limited users can schtasks /run)" - } catch { - Write-RegLog "FAILED to set task SDDL on '$applyTaskName': $_ (Limited users may not be able to trigger Apply)" - } -} catch { - Write-RegLog "FAILED to register '$applyTaskName': $_" - exit 1 -} - -Write-RegLog '=== Register-CheckMachineNumberTask end ===' -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/Register-MapSfldShare.ps1 b/playbook/shopfloor-setup/Shopfloor/Register-MapSfldShare.ps1 deleted file mode 100644 index 139fbb6..0000000 --- a/playbook/shopfloor-setup/Shopfloor/Register-MapSfldShare.ps1 +++ /dev/null @@ -1,115 +0,0 @@ -# Register-MapSfldShare.ps1 - Stage Map-SfldShare.ps1 + register an -# HKLM\Run entry that maps S: for any interactive user (SupportUser, -# ShopFloor, any future end-user accounts). -# -# Why HKLM\Run instead of a scheduled task: Run fires at Explorer -# startup in the logged-in user's interactive session with their full -# token + HKCU mounted. No principal/LogonType/group-SID plumbing, no -# "task fires in session 0 but drive not visible to Explorer" class of -# bugs. Works for every BUILTIN\Users member with no extra logic. -# -# Why not the vendor's ConsumeCredentials.ps1: it calls -# New-StoredCredential -Persist LocalMachine (needs admin) before net -# use. ShopFloor is non-admin, so the cred-store fails and net use has -# no auth. Our Map-SfldShare.ps1 reads HKLM creds directly and passes -# them inline to net use /user: -- no Credential Manager needed. - -$ErrorActionPreference = 'Continue' - -# PC types that are self-contained and must NOT map S:. A Display kiosk is -# Entra-joined with local accounts and no SFLD credentials, so the mapping can -# only ever fail - once per logon, forever. -# -# Run-ShopfloorSetup.ps1 already gates the CALL to this script on the same list, -# but on 579C144 (2026-08-06) the Run entry was registered on a Display anyway: -# -# [15:07:55] Set HKLM:\...\Run\GE Map SFLD Share = ...Map-SfldShare.ps1 -# -# with no "Skipping S: drive logon mapper" in the log, so something in the -# finalization phase reaches this script past the call-site gate. Gating here as -# well makes the outcome correct regardless of who invokes it. -$selfContainedTypes = @('Display', 'gea-shopfloor-display') -$pcTypeFile = 'C:\Enrollment\pc-type.txt' -$pcType = '' -if (Test-Path -LiteralPath $pcTypeFile) { - $pcType = (Get-Content -LiteralPath $pcTypeFile -First 1 -ErrorAction SilentlyContinue) - if ($pcType) { $pcType = $pcType.Trim() } -} -if ($pcType -and ($selfContainedTypes -contains $pcType)) { - $d = 'C:\Logs\SFLD' - if (-not (Test-Path $d)) { New-Item -ItemType Directory -Path $d -Force -EA SilentlyContinue | Out-Null } - Add-Content -Path (Join-Path $d 'register-mapshare.log') -EA SilentlyContinue ` - -Value ("[{0}] [INFO] PC type '{1}' is self-contained - not registering the S: mapper." -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $pcType) - Write-Host "PC type '$pcType' is self-contained - skipping S: drive mapper." - # Remove a stale entry from an earlier image or an earlier code path. - try { - $runKey = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' - if ((Get-ItemProperty -Path $runKey -Name 'GE Map SFLD Share' -EA SilentlyContinue)) { - Remove-ItemProperty -Path $runKey -Name 'GE Map SFLD Share' -Force -EA Stop - Write-Host " removed stale 'GE Map SFLD Share' Run entry." - } - } catch { } - return -} - -$installRoot = 'C:\Program Files\GE\SfldShare' -$mapScript = Join-Path $installRoot 'Map-SfldShare.ps1' -$logDir = 'C:\Logs\SFLD' -$logFile = Join-Path $logDir 'register-mapshare.log' -$runKey = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -$runValue = 'GE Map SFLD Share' -$legacyTask = 'GE Shopfloor Map S: Drive' - -if (-not (Test-Path $logDir)) { New-Item -Path $logDir -ItemType Directory -Force | Out-Null } - -function Write-RegLog { - param([string]$Message) - $line = '[{0}] [INFO] {1}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Message - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Write-RegLog '=== Register-MapSfldShare start ===' - -# Stage our Map-SfldShare.ps1 to a persistent location -if (-not (Test-Path $installRoot)) { - New-Item -Path $installRoot -ItemType Directory -Force | Out-Null -} -$src = Join-Path $PSScriptRoot 'lib\Map-SfldShare.ps1' -if (Test-Path $src) { - Copy-Item -Path $src -Destination $mapScript -Force - Write-RegLog "Staged $src -> $mapScript" -} else { - Write-RegLog "Map-SfldShare.ps1 not found at $src - cannot register" - exit 1 -} - -# Remove the legacy scheduled task if it exists (left behind by older -# imaging runs that used the scheduled-task approach). -if (Get-ScheduledTask -TaskName $legacyTask -ErrorAction SilentlyContinue) { - try { - Unregister-ScheduledTask -TaskName $legacyTask -Confirm:$false -ErrorAction Stop - Write-RegLog "Removed legacy scheduled task '$legacyTask'" - } catch { - Write-RegLog "Failed to remove legacy task '$legacyTask': $_" - } -} - -# Register HKLM\Run entry. Runs at Explorer startup for every -# interactive user in that user's session. -try { - $command = '"{0}" -NoProfile -ExecutionPolicy Bypass -File "{1}"' -f ` - "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe", $mapScript - - if (-not (Test-Path $runKey)) { - New-Item -Path $runKey -Force | Out-Null - } - New-ItemProperty -Path $runKey -Name $runValue -Value $command -PropertyType String -Force | Out-Null - Write-RegLog "Set $runKey\$runValue = $command" -} catch { - Write-RegLog "FAILED to register Run key: $_" - exit 1 -} - -Write-RegLog '=== Register-MapSfldShare end ===' -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/Register-PostPpkgTask.ps1 b/playbook/shopfloor-setup/Shopfloor/Register-PostPpkgTask.ps1 new file mode 100644 index 0000000..b8c58f8 --- /dev/null +++ b/playbook/shopfloor-setup/Shopfloor/Register-PostPpkgTask.ps1 @@ -0,0 +1,32 @@ +# Register-PostPpkgTask.ps1 - register the "GE Shopfloor Post-PPKG" task. +# +# Called by Run-ShopfloorSetup.ps1 BEFORE the PPKG step (the PPKG reboot can +# kill the caller). Copies the runner out of C:\Enrollment (the bulk-enroll +# cleanup may remove staging folders) to C:\Program Files\GE\Shopfloor and +# registers a SYSTEM task that runs Invoke-PostPpkg.ps1 at every startup and +# logon until it has nothing left to do; then it unregisters itself. +# +# Idempotent: re-registering replaces the task. + +$ErrorActionPreference = 'Stop' +$runtimeDir = 'C:\Program Files\GE\Shopfloor' +$taskName = 'GE Shopfloor Post-PPKG' + +New-Item -Path $runtimeDir -ItemType Directory -Force | Out-Null +foreach ($f in @('Install-AppList.ps1', 'Invoke-PostPpkg.ps1')) { + Copy-Item -LiteralPath (Join-Path $PSScriptRoot $f) -Destination (Join-Path $runtimeDir $f) -Force +} + +$action = New-ScheduledTaskAction -Execute 'powershell.exe' ` + -Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$runtimeDir\Invoke-PostPpkg.ps1`"" +$triggers = @( + (New-ScheduledTaskTrigger -AtStartup), + (New-ScheduledTaskTrigger -AtLogOn) +) +$principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest +$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries ` + -StartWhenAvailable -MultipleInstances IgnoreNew -ExecutionTimeLimit (New-TimeSpan -Hours 2) + +Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $triggers ` + -Principal $principal -Settings $settings -Force | Out-Null +Write-Host "Registered '$taskName' (SYSTEM, at startup and logon): $runtimeDir\Invoke-PostPpkg.ps1" diff --git a/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/Office.ebs b/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/Office.ebs deleted file mode 100755 index fc7a516..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/Office.ebs +++ /dev/null @@ -1,51 +0,0 @@ -'---------------------------------------------------------------------- -' This macro was created by the macro recorder. -' Macro File: Office.ebs -' Date: Wed May 18 09:55:44 2016 -' Recorded for profile: WJ_Office -'---------------------------------------------------------------------- - -Sub Main - Dim HostExplorer as Object - Dim MyHost as Object - Dim Rc as Integer - - Dim iPSUpdateTimeout - Dim iWaitForStringTimeout - - On Error goto GenericErrorHandler - - Set HostExplorer = CreateObject("HostExplorer") ' Initialize HostExplorer Object - Set MyHost = HostExplorer.HostFromProfile("WJ_Office") ' Set object for the desired session - If MyHost is Nothing Then Goto NoSession - - iPSUpdateTimeout = 60 ' WaitPSUpdated timeout set to 60 seconds - iWaitForStringTimeout = 60 ' WaitForString timeout set to 60 seconds - - Rc = MyHost.WaitForString( "Username:", -1, iWaitForStringTimeout, TRUE ) - If Rc = 0 Then Goto OnWaitForStringTimeout - Rc = MyHost.Keys("shop_pc^M") - Rc = MyHost.WaitPSUpdated( iPSUpdateTimeout, TRUE ) - If Rc <> 0 Then Goto OnWaitPSUpdatedTimeout - Rc = MyHost.WaitForString( "Do you have a barcode reader?", -1, iWaitForStringTimeout, TRUE ) - If Rc = 0 Then Goto OnWaitForStringTimeout - Exit Sub - -'-------------------- Runtime Error Handlers -------------------- -GenericErrorHandler: - Msgbox "Error " & Err & " : """ & Error(Err) & """ has occurred on line " & Erl-1 & "." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" - Exit Sub - -NoSession: - Msgbox "Profile ""WJ_Office"" is not running." & Chr(10) & "Unable to execute macro.", 16, "HostExplorer Macro Error" - Exit Sub - -OnWaitPSUpdatedTimeout: - Msgbox "Timeout occured waiting for host to update screen." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" - Exit Sub - -OnWaitForStringTimeout: - Msgbox "Timeout occured waiting for string on host screen." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" - Exit Sub - -End Sub diff --git a/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/mmcs.ebs b/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/mmcs.ebs deleted file mode 100755 index e6cb9a6..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/mmcs.ebs +++ /dev/null @@ -1,35 +0,0 @@ -'---------------------------------------------------------------------- -' This macro was created by the macro recorder. -' Macro File: mmcs.ebs -' Date: Tue Jun 04 08:56:51 2013 -' Recorded for profile: mmcs -'---------------------------------------------------------------------- - -Sub Main - Dim HostExplorer as Object - Dim MyHost as Object - Dim iIdleTime - - Dim iPSUpdateTime - - On Error goto ErrorCheck - - Set HostExplorer = CreateObject("HostExplorer") ' Initialize HostExplorer Object - Set MyHost = HostExplorer.HostFromProfile("mmcs") ' Set object for the desired session - - iPSUpdateTime = 60 ' PS Update wait time set to 60 seconds - iIdleTime = 2000 ' Idle time set to 2000 milliseconds - - MyHost.WaitPSUpdated(iPSUpdateTime) - Rc = MyHost.WaitForString("Username:", -1, 9999, TRUE) - MyHost.Keys("mmcswj^M") - MyHost.WaitPSUpdated(iPSUpdateTime) - Rc = MyHost.WaitForString("| Badge : |", -1, 9999, TRUE) - Exit Sub - -ErrorCheck: - if (Err = 440) Then - Msgbox "The specified session is not running.", 16, "Hummingbird Macro Error" - End If - Exit Sub -End Sub diff --git a/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/shopfloor.ebs b/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/shopfloor.ebs deleted file mode 100755 index 796b971..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/Accessories/EB/shopfloor.ebs +++ /dev/null @@ -1,56 +0,0 @@ -'---------------------------------------------------------------------- -' This macro was created by the macro recorder. -' Macro File: shopfloor.ebs -' Date: Wed May 18 09:57:00 2016 -' Recorded for profile: WJ Shopfloor -'---------------------------------------------------------------------- - -Sub Main - Dim HostExplorer as Object - Dim MyHost as Object - Dim Rc as Integer - - Dim iPSUpdateTimeout - Dim iWaitForStringTimeout - - On Error goto GenericErrorHandler - - Set HostExplorer = CreateObject("HostExplorer") ' Initialize HostExplorer Object - Set MyHost = HostExplorer.HostFromProfile("WJ Shopfloor") ' Set object for the desired session - If MyHost is Nothing Then Goto NoSession - - iPSUpdateTimeout = 60 ' WaitPSUpdated timeout set to 60 seconds - iWaitForStringTimeout = 60 ' WaitForString timeout set to 60 seconds - - Rc = MyHost.WaitForString( "Username:", -1, iWaitForStringTimeout, TRUE ) - If Rc = 0 Then Goto OnWaitForStringTimeout - Rc = MyHost.Keys("shop_xmi^M") - Rc = MyHost.WaitPSUpdated( iPSUpdateTimeout, TRUE ) - If Rc <> 0 Then Goto OnWaitPSUpdatedTimeout - Rc = MyHost.WaitForString( "Password:", -1, iWaitForStringTimeout, TRUE ) - If Rc = 0 Then Goto OnWaitForStringTimeout - Rc = MyHost.Keys("dnc123^M") - Rc = MyHost.WaitPSUpdated( iPSUpdateTimeout, TRUE ) - If Rc <> 0 Then Goto OnWaitPSUpdatedTimeout - Rc = MyHost.WaitForString( "| EXIT | |", -1, iWaitForStringTimeout, TRUE ) - If Rc = 0 Then Goto OnWaitForStringTimeout - Exit Sub - -'-------------------- Runtime Error Handlers -------------------- -GenericErrorHandler: - Msgbox "Error " & Err & " : """ & Error(Err) & """ has occurred on line " & Erl-1 & "." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" - Exit Sub - -NoSession: - Msgbox "Profile ""WJ Shopfloor"" is not running." & Chr(10) & "Unable to execute macro.", 16, "HostExplorer Macro Error" - Exit Sub - -OnWaitPSUpdatedTimeout: - Msgbox "Timeout occured waiting for host to update screen." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" - Exit Sub - -OnWaitForStringTimeout: - Msgbox "Timeout occured waiting for string on host screen." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" - Exit Sub - -End Sub diff --git a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Keymap/Default.kmv b/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Keymap/Default.kmv deleted file mode 100755 index 11b0978..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Keymap/Default.kmv +++ /dev/null @@ -1,9 +0,0 @@ -[KEYMAP] -Normal Entries=1 -Normal0=Backspace,Delete -Shift Entries=0 -Ctrl Entries=0 -ShiftCtrl Entries=0 -Alt Entries=0 -ShiftAlt Entries=0 -AltCtrl Entries=0 diff --git a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Keymap/Office.kmv b/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Keymap/Office.kmv deleted file mode 100755 index 3dbfc48..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Keymap/Office.kmv +++ /dev/null @@ -1,13 +0,0 @@ -[KEYMAP] -Normal Entries=5 -Normal0=F4,Pf4 -Normal1=Subtract,Num-Pad-Minus -Normal2=Multiply,Num-Pad-* -Normal3=Divide,Num-Pad-/ -Normal4=Backspace,Delete -Shift Entries=0 -Ctrl Entries=0 -ShiftCtrl Entries=0 -Alt Entries=0 -ShiftAlt Entries=0 -AltCtrl Entries=0 diff --git a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Menu/Default Shop.hmv b/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Menu/Default Shop.hmv deleted file mode 100755 index 9a5d572..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Menu/Default Shop.hmv +++ /dev/null @@ -1,23 +0,0 @@ -[Version] -AssemblyVersion=1 -[Console] -Title=HostExplorer Menu Editor -IconPath=HumCSSPlugins.HumCSSActiveTunnelsPlugin -IconID=IDI_CSS_CONSOLE -[Attributes] -SupportAssemblyEditing=1 -SupportSeparator=1 -ParentLevels=100 -[Parent Node] -name=Menu -[SubParent Node] -name=Submenu -[Child Node] -name=Menu Option -[Messages] -Create New Parent=Create New Menu -Create New SubParent=Create New Submenu -Insert New Parent=Insert New Menu -Insert New SubParent=Insert New Submenu -[Root Group] -Name=Menu diff --git a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Menu/Default VT.hmv b/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Menu/Default VT.hmv deleted file mode 100755 index 9c43eca..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/HostExplorer/Menu/Default VT.hmv +++ /dev/null @@ -1,474 +0,0 @@ -[version] -AssemblyVersion=1 - -[nls] -filename=menunls$LANGUAGE_EXTENSION$.hma - -[Console] -Title=HostExplorer Menu Editor -IconPath=HumCSSPlugins.HumCSSActiveTunnelsPlugin -IconID=IDI_CSS_CONSOLE - -[Attributes] -SupportAssemblyEditing=1 -SupportEnablingDisablingItems=0 -SupportSeparator=1 - -[Parent Node] -Nameid=Parent - -[SubParent Node] -Nameid=SubParent - -[Child Node] -Nameid=Child - -[Messages] -Nameid1=Create New Parent -Nameid2=Create New SubParent -Nameid3=Insert New Parent -Nameid4=Insert New SubParent - -[root group] -Name=Menu -item1=File -item2=Edit -item3=Transfer -item4=Fonts -item5=options -item6=tools -item7=view -item8=window -item9=help - -[Separator] -name= -id=0 - -[File] -Nameid=File -id=4071 -Parent=1 -item1=new session -item2=duplicate session -item3=open session -item4=open session in same window -item5=save session profile -item6=close session -item7=separator -item8=open layout -item9=save layout -item10=separator -item11=connect -item12=disconnect -item13=separator -item14=print screen -item15=print multiple screens -item16=save screen -item17=send screen -item18=separator -item19=screen capture -item20=separator -item21=Recent Sessions Submenu -item22=separator -item23=exit all - -[New Session] -nameid=New Session -id=Dlg-New-Session - -[Duplicate Session] -nameid=Duplicate Session -id=Duplicate-Session - -[Open Session] -nameid=Open Session -id=Dlg-Open-Session - -[Open Session In Same Window] -nameid=Open Session In Same Window -id=Dlg-Open-Session-In-Same-Window - -[Save Session Profile] -nameid=Save Session Profile -id=Dlg-Save-Profile - -[Close Session] -nameid=Close Session -id=Dlg-Close-Session - -[open layout] -nameid=Open Layout -id=Dlg-Open-Layout - -[save layout] -nameid=Save Layout -id=Dlg-Save-Layout - -[connect] -nameid=connect -id=Connect - -[disconnect] -nameid=disconnect -id=Disconnect - -[print screen] -nameid=print screen -id=Dlg-Print-Screen - -[print multiple screens] -nameid=print multiple screens -id=Dlg-Print-Multiple-Screens - - -[save screen] -nameid=Save Screen -id=Dlg-Save-Screen - -[send screen] -nameid=Send Screen -id=Send-Screen - -[screen capture] -nameid=Screen Capture -id=Toggle-Capture - -[Recent Sessions Submenu] -nameid=Recent Sessions -id=4187 -Parent=1 -item1=recent sessions - -[recent sessions] -nameid=Recent Sessions -id=Recent-Sessions - -[Exit all] -nameid=exit all -id=Dlg-Exit - - -[Edit] -Nameid=Edit -id=4072 -Parent=1 -item1=copy -item2=copy append -item3=paste -item4=separator -item5=select all -item6=separator -item7=edit find -item8=separator -item9=clear display -item10=clear all -item11=soft terminal reset - -[undo] -nameid=undo -id=Edit-Undo - -[redo] -nameid=redo -id=Edit-Redo - -[cut] -nameid=cut -id=Edit-Cut - -[Copy] -nameid=copy -id=Edit-Copy - -[Copy append] -nameid=Copy Append -id=Edit-Copy-Append - -[Paste] -nameid=Paste -id=Edit-Paste - -[Paste continue] -nameid=Paste Continue -id=Edit-Paste-Continue - -[Select All] -nameid=Select All -id=Edit-SelectAll - -[Edit Options] -nameid=Options -id=Dlg-Options - -[edit find] -nameid=Find -id=Dlg-Find - -[clear display] -nameid=Clear Display -id=Clear-Display - -[clear all] -nameid=Clear All -id=Clear-Buffer - -[soft terminal reset] -nameid=Soft Terminal Reset -id=Power-On-Reset - - -[Transfer] -Nameid=Transfer -id=4073 -Parent=1 -item1=send -item2=receive - -[send] -nameid=Send File to Host -id=Dlg-Upload - -[receive] -nameid=Receive File from Host -id=Dlg-Download - - -[Fonts] -Nameid=Fonts -id=4074 -Parent=1 -item1=next larger -item2=next smaller -item3=choose font -item4=maximize font - -[next larger] -nameid=next larger font -id=Font-Larger - -[next smaller] -nameid=Next smaller font -id=Font-Smaller - -[choose font] -nameid=font -id=Dlg-Font-Select - -[maximize font] -nameid=Maximize font -id=Maximize-Font - - -[options] -nameid=Options -id=4075 -Parent=1 -item1=global options -item2=api settings -item3=separator -item4=keyboard mapping -item5=quick keys -item6=separator -item7=session properties - -[global options] -nameid=Global Options -id=Dlg-Global - -[api settings] -nameid=API Settings -id=Dlg-API-Settings - -[keyboard mapping] -nameid=Keyboard Mapping -id=Dlg-Keyboard-Mapper - -[quick keys] -nameid=Quick Keys -id=Dlg-Quick-Key-Editor - -[session properties] -nameid=session Properties -id=Dlg-Edit-Session-Profile - - -[tools] -nameid=Tools -id=4076 -Parent=1 -item1=Macro Submenu -item2=Quick Script Submenu -item3=separator -item4=Customizetoolbar -item5=Customizemenu -item6=Customizesessionproperties - -[Macro Submenu] -nameid=Macro -id=4177 -Parent=1 -item1=edit macro -item2=run macro -item3=separator -item4=start recording -item5=pause recording -item6=resume recording -item7=stop recording -item8=cancel recording - -[Edit macro] -nameid=Macro Edit -id=Dlg-Edit-Macro - -[run macro] -nameid=run -id=Dlg-Run-Macro - -[start recording] -nameid=Start Recording -id=Record-Macro - -[pause recording] -nameid=Pause Recording -id=Toggle-Recording-Pause - -[resume recording] -nameid=Resume Recording -id=Resume-Recording-Macro - -[stop recording] -nameid=Stop Recording -id=End-Recording - -[cancel recording] -nameid=Cancel Recording -id=Cancel-Macro-Recording - -[Quick Script Submenu] -nameid=Quick Script -id=4091 -Parent=1 -item1=edit qs -item2=run qs -item3=stop qs -item4=separator -item5=start recording qs -item6=pause recording qs -item7=resume recording qs -item8=stop recording qs -item9=cancel recording qs - -[Customizetoolbar] -nameid=Customize Toolbar -id=Dlg-Toolbars - -[Customizemenu] -nameid=Customize Menu -id=Dlg-Customize-Menus - -[CustomizeSessionProperties] -nameid=Customize Session Properties -id=Dlg-Customize-Session-Properties - -[Edit qs] -nameid=Edit -id=Dlg-QuickScript-Editor - -[run qs] -nameid=Run -id=Dlg-Run-QuickScript - -[stop qs] -nameid=Stop -id=Stop-QuickScript - -[start recording qs] -nameid=Start Recording -id=Record-QuickScript - -[pause recording qs] -nameid=Pause Recording -id=Pause-Recording-QuickScript - -[resume recording qs] -nameid=Resume Recording -id=Resume-Recording-QuickScript - -[stop recording qs] -nameid=Stop Recording -id=Stop-Recording-QuickScript - -[cancel recording qs] -nameid=Cancel Recording -id=Cancel-Recording-QuickScript - - -[view] -nameid=view -id=4178 -Parent=1 -item1=hotspots -item2=row and column indicator -item3=cross hair cursor -item4=full screen - -[hotspots] -nameid=Hotspots -id=Toggle-View-Hotspots - -[Row and Column Indicator] -nameid=Row and Column Indicator -id=Toggle-Row-And-Column-Indicator - -[cross hair cursor] -nameid=Cross-Hair Cursor -id=Toggle-CrossHair-Cursor - -[full screen] -nameid=Full Screen -id=Toggle-Full-Screen - - -[window] -nameid=Window -id=4179 -Parent=1 -item1=cascade -item2=next session -item3=previous session -item4=separator -item5=session window list - -[cascade] -nameid=Cascade -id=Cascade-Session-Windows - -[next session] -nameid=next session -id=Next-Session - -[previous session] -nameid=previous session -id=Prev-Session - -[session window list] -name= -id=4142 - - -[help] -nameid=Help -id=4180 -Parent=1 -item1=contents -item2=separator -item3=about - -[contents] -nameid=Contents -id=Help-Index - -[about] -nameid=about -id=Help-About diff --git a/playbook/shopfloor-setup/Shopfloor/csf/IBM_qks.lnk b/playbook/shopfloor-setup/Shopfloor/csf/IBM_qks.lnk deleted file mode 100755 index 973732c..0000000 Binary files a/playbook/shopfloor-setup/Shopfloor/csf/IBM_qks.lnk and /dev/null differ diff --git a/playbook/shopfloor-setup/Shopfloor/csf/Profile/IBM_qks.hep b/playbook/shopfloor-setup/Shopfloor/csf/Profile/IBM_qks.hep deleted file mode 100755 index 68fc23a..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/Profile/IBM_qks.hep +++ /dev/null @@ -1,106 +0,0 @@ -[PROFILE] -Session Properties=Default 3270 -Menu=Default 3270 -Auto Run Macro Delay Time=1 -Gateway Name=ibmqks.ae.ge.com -Session Keep Alive Interval=600 -PC Keyboard Type=5 -IND$FILE Parms=0,0,1,1,0,0,0,257,253,2048,200,430,430,0,1252,"IND$FILE","","","",0 -SSL/TLS Current User Certificate=1 -Window Title=%s - %p (%h) -WinInfo Default Restored=0 0 0 0 70 405 822 595 0 0 0=20 10 0 0 400 0 0 0 0 3 2 2 0 HE_Bitmap| 0 0 -WinInfo Default Maximized=0 0 0 0 -8 -8 1936 1048 0 0 0=26 12 0 0 400 0 0 0 0 3 2 2 0 HE_Bitmap| 0 0 -Print Header2=Page: %# Document Name: %F -QuickKey=Default -Never Run Profile=Off -Profile File Version=200 -Space Allocation Parms=0,0,0,0 -Kerberos Use Hummingbird Kerberos=On -Cryptographic Mode=1 -IP Port=992 -Security Option=2 -SSL/TLS User Cipher Suites=DEFAULT -[HEBar-59440] -sizeFloatCX=505 -sizeFloatCY=28 -[Toolbars Layout-Summary] -Bars=3 -ScreenCX=1920 -ScreenCY=1080 -[Session Options] -Last Selected Page=139 -[Toolbars] -ToolBarVersion=6 -bar0=Default 3270 ToolBar.tb3 -[Toolbars Layout-Bar0] -BarID=59393 -[Toolbars Layout-Bar1] -BarID=59419 -Bars=3 -Bar#0=0 -Bar#1=59440 -Bar#2=0 -[Toolbars Layout-Bar2] -BarID=59440 -XPos=-2 -YPos=-2 -Docking=1 -MRUDockID=59419 -MRUDockLeftPos=-2 -MRUDockTopPos=-2 -MRUDockRightPos=512 -MRUDockBottomPos=26 -MRUFloatStyle=8196 -MRUFloatXPos=-1 -MRUFloatYPos=1025 -[Hotspots] -ShowTips=1 -[ShortcutReplacers] -Size=0 -[Site Info] -EnableCache=Yes -RefreshCacheOnConnect=0 -AlwaysUploadUsing=0 -AlwaysDownloadUsing=0 -ProfileVersion=5 -SecurityType=0 -Port=21 -SSL Implicit Port=990 -Directory2=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -SFTPProxyAddress=localhost -SFTPProxyPort=0 -SFTPWriteSize=256 -GssApiServiceName=host -GssApiProtLevel=P -GssApiIssueCCC=No -GssApiPBSZ=16000 -GssApiKerbClient=0 -GssApiUseHMS2MIT=No -PassiveMode=2 -AllowServer2ServerTransfer=0 -KeepAlive=No -AutoDetectServerType=Yes -KeepAliveTime=0 -FirewallPort=21 -FirewallType=0 -NetworkTimeout=120 -ConvertGMTTime=0 -ResolveLinks=1 -RootToInitialDir=0 -ChangeDirChangesRoot=0 -DropVmsVersion=0 -LocalHourOffset=0 -LocalMinuteOffset=0 -TemporaryProfile=0 -SSLVersion=3 -SSLReuse=0 -SSLUserCertificateMode=0 -SSLCloseOnNegotiateionFail=0 -SSLAcceptServerSelfSignedCertificates=Yes -SSLAcceptServerUnverifiedCertificates=Yes -SSLDataChannelProtected=Yes -SSLCryptographicMode=1 -AllowResume=No -EPSV4=0 -[Stats] -NumVisits=0 diff --git a/playbook/shopfloor-setup/Shopfloor/csf/Profile/WJ Shopfloor.hep b/playbook/shopfloor-setup/Shopfloor/csf/Profile/WJ Shopfloor.hep deleted file mode 100755 index d380778..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/Profile/WJ Shopfloor.hep +++ /dev/null @@ -1,122 +0,0 @@ -[PROFILE] -Session Terminal Type=2 -Session Properties=Default VT -Menu=Default VT -Auto Run Macro Delay Time=1 -Gateway Name=wjfms3.apps.wlm.geaerospace.net -Session Keep Alive Interval=600 -PC Keyboard Type=5 -Tabstops='8 16 24 32 40 48 56 64 72 ' -VT BG Colors='1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 8 7 7 9 15 14 10 2 10 ' -Default VT Recv Path=$MYDOCUMENTS$\ -SSL/TLS Version=3 -SSL/TLS Current User Certificate=1 -Window Title=%s - %p (%h) -WinInfo Default Restored=0 0 0 0 176 21 892 619 0 0 0=-17 0 0 0 400 0 0 0 0 3 2 2 0 Courier New| 0 0 -WinInfo Default Maximized=0 0 0 0 -8 -8 1634 1066 0 0 0=30 15 0 0 700 0 0 0 1 3 2 2 0 HE_Bitmap| 0 0 -Print Header2=Page: %# Document Name: %F -QuickKey=Super Key F6 -Never Run Profile=Off -dwVTFlags1=29369344 -VT FG Colors='7 7 9 15 14 10 2 10 0 1 2 3 4 5 15 7 8 9 10 11 12 13 14 15 15 0 0 1 0 0 0 0 0 0 0 ' -Connect Timeout=60 -Disable Secure Connection Warning=Yes -Profile File Version=200 -Cryptographic Mode=1 -Display RowCol Indicator=Off -VT Scrollback Save Attribs=Off -VT True Display Mode=1 -Status Line=1 -Kerberos Use Hummingbird Kerberos=On -Keyboard=Office -Auto Start Quick-Key=shopfloor.ebs -On Disconnect=0 -Allow sleep while connected=0 -Toolbar Scheme Name=Default VT -Save Profile on Window Close=Off -Toolbar Scheme Modified=Default VT:30026745--1815298816 -Save Toolbar Info on Exit=Off -Save Mode=0 -[Session Options] -Last Selected Page=4000 -[HEBar-59440] -[Toolbars Layout-Summary] -Bars=3 -ScreenCX=1600 -ScreenCY=1200 -[Toolbars] -ToolBarVersion=5 -bar0=Default VT ToolBar.tbv -[Toolbars Layout-Bar0] -BarID=59393 -Visible=0 -[Toolbars Layout-Bar1] -BarID=59419 -Bars=3 -Bar#0=0 -Bar#1=59440 -Bar#2=0 -[Toolbars Layout-Bar2] -BarID=59440 -XPos=-2 -YPos=-2 -Docking=1 -MRUDockID=59419 -MRUDockLeftPos=-2 -MRUDockTopPos=-2 -MRUDockRightPos=541 -MRUDockBottomPos=26 -MRUFloatStyle=8196 -MRUFloatXPos=-2147483648 -MRUFloatYPos=0 -[Hotspots] -ShowTips=1 -[ShortcutReplacers] -Size=0 -[Site Info] -EnableCache=Yes -RefreshCacheOnConnect=0 -AlwaysUploadUsing=0 -AlwaysDownloadUsing=0 -ProfileVersion=5 -SecurityType=0 -Port=21 -SSL Implicit Port=990 -Directory2=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -SFTPProxyAddress=localhost -SFTPProxyPort=0 -SFTPWriteSize=256 -GssApiServiceName=host -GssApiProtLevel=P -GssApiIssueCCC=No -GssApiPBSZ=16000 -GssApiKerbClient=0 -GssApiUseHMS2MIT=No -PassiveMode=2 -AllowServer2ServerTransfer=0 -KeepAlive=No -AutoDetectServerType=Yes -KeepAliveTime=0 -FirewallPort=21 -FirewallType=0 -NetworkTimeout=120 -ConvertGMTTime=0 -ResolveLinks=1 -RootToInitialDir=0 -ChangeDirChangesRoot=0 -DropVmsVersion=0 -LocalHourOffset=0 -LocalMinuteOffset=0 -TemporaryProfile=0 -SSLVersion=3 -SSLReuse=0 -SSLUserCertificateMode=0 -SSLCloseOnNegotiateionFail=0 -SSLAcceptServerSelfSignedCertificates=Yes -SSLAcceptServerUnverifiedCertificates=Yes -SSLDataChannelProtected=Yes -SSLCryptographicMode=1 -AllowResume=No -EPSV4=0 -[Stats] -NumVisits=0 diff --git a/playbook/shopfloor-setup/Shopfloor/csf/Profile/WJ_Office.hep b/playbook/shopfloor-setup/Shopfloor/csf/Profile/WJ_Office.hep deleted file mode 100755 index 79f4546..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/Profile/WJ_Office.hep +++ /dev/null @@ -1,122 +0,0 @@ -[PROFILE] -Session Terminal Type=2 -Session Properties=Default VT -Menu=Default VT -Auto Run Macro Delay Time=1 -Gateway Name=wjfms3.apps.wlm.geaerospace.net -Session Keep Alive Interval=600 -PC Keyboard Type=5 -Tabstops='8 16 24 32 40 48 56 64 72 ' -VT BG Colors='1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 8 7 7 9 15 14 10 2 10 ' -Default VT Recv Path=$MYDOCUMENTS$\ -SSL/TLS Version=3 -SSL/TLS Current User Certificate=1 -Window Title=%s - %p (%h) -WinInfo Default Restored=0 0 0 0 22 22 892 619 0 0 0=20 10 0 0 400 0 0 0 0 3 2 2 0 HE_Bitmap| 0 0 -WinInfo Default Maximized=0 0 0 0 -8 -8 1634 1066 0 0 0=30 15 0 0 700 0 0 0 1 3 2 2 0 HE_Bitmap| 0 0 -Print Header2=Page: %# Document Name: %F -QuickKey=Super Key F6 -Never Run Profile=Off -dwVTFlags1=29369344 -VT FG Colors='7 7 9 15 14 10 2 10 0 1 2 3 4 5 15 7 8 9 10 11 12 13 14 15 15 0 0 1 0 0 0 0 0 0 0 ' -Connect Timeout=60 -Disable Secure Connection Warning=Yes -Profile File Version=200 -Cryptographic Mode=1 -Display RowCol Indicator=Off -VT Scrollback Save Attribs=Off -VT True Display Mode=1 -Status Line=1 -Kerberos Use Hummingbird Kerberos=On -Keyboard=Office -Auto Start Quick-Key=Office.ebs -On Disconnect=0 -Allow sleep while connected=0 -Toolbar Scheme Name=Default VT -Save Profile on Window Close=Off -Toolbar Scheme Modified=Default VT:30026745--1815298816 -Save Toolbar Info on Exit=Off -Save Mode=0 -[Session Options] -Last Selected Page=4000 -[HEBar-59440] -[Toolbars Layout-Summary] -Bars=3 -ScreenCX=1600 -ScreenCY=1200 -[Toolbars] -ToolBarVersion=5 -bar0=Default VT ToolBar.tbv -[Toolbars Layout-Bar0] -BarID=59393 -Visible=0 -[Toolbars Layout-Bar1] -BarID=59419 -Bars=3 -Bar#0=0 -Bar#1=59440 -Bar#2=0 -[Toolbars Layout-Bar2] -BarID=59440 -XPos=-2 -YPos=-2 -Docking=1 -MRUDockID=59419 -MRUDockLeftPos=-2 -MRUDockTopPos=-2 -MRUDockRightPos=541 -MRUDockBottomPos=26 -MRUFloatStyle=8196 -MRUFloatXPos=-2147483648 -MRUFloatYPos=0 -[Hotspots] -ShowTips=1 -[ShortcutReplacers] -Size=0 -[Site Info] -EnableCache=Yes -RefreshCacheOnConnect=0 -AlwaysUploadUsing=0 -AlwaysDownloadUsing=0 -ProfileVersion=5 -SecurityType=0 -Port=21 -SSL Implicit Port=990 -Directory2=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -SFTPProxyAddress=localhost -SFTPProxyPort=0 -SFTPWriteSize=256 -GssApiServiceName=host -GssApiProtLevel=P -GssApiIssueCCC=No -GssApiPBSZ=16000 -GssApiKerbClient=0 -GssApiUseHMS2MIT=No -PassiveMode=2 -AllowServer2ServerTransfer=0 -KeepAlive=No -AutoDetectServerType=Yes -KeepAliveTime=0 -FirewallPort=21 -FirewallType=0 -NetworkTimeout=120 -ConvertGMTTime=0 -ResolveLinks=1 -RootToInitialDir=0 -ChangeDirChangesRoot=0 -DropVmsVersion=0 -LocalHourOffset=0 -LocalMinuteOffset=0 -TemporaryProfile=0 -SSLVersion=3 -SSLReuse=0 -SSLUserCertificateMode=0 -SSLCloseOnNegotiateionFail=0 -SSLAcceptServerSelfSignedCertificates=Yes -SSLAcceptServerUnverifiedCertificates=Yes -SSLDataChannelProtected=Yes -SSLCryptographicMode=1 -AllowResume=No -EPSV4=0 -[Stats] -NumVisits=0 diff --git a/playbook/shopfloor-setup/Shopfloor/csf/Profile/mmcs.hep b/playbook/shopfloor-setup/Shopfloor/csf/Profile/mmcs.hep deleted file mode 100755 index d569cb6..0000000 --- a/playbook/shopfloor-setup/Shopfloor/csf/Profile/mmcs.hep +++ /dev/null @@ -1,128 +0,0 @@ -[PROFILE] -Session Terminal Type=2 -Never Run Profile=Off -Session Properties=Default VT -Menu=Default VT -Auto Run Macro Delay Time=1 -Gateway Name=wjfms3.apps.wlm.geaerospace.net -Session Keep Alive Interval=600 -dwVTFlags1=29369344 -PC Keyboard Type=5 -Keyboard=ATM-VT420 -Tabstops='8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 128 136 144 152 160 168 176 184 192 200 208 216 224 232 240 248 256 264 272 280 288 296 ' -Default VT Recv Path=$MYDOCUMENTS$\ -SSL/TLS Version=3 -SSL/TLS Current User Certificate=1 -Window Title=%s - %p (%h) -WinInfo Default Restored=0 0 0 0 10 10 757 491 0 0 0=16 9 0 0 400 0 0 0 0 3 2 2 0 HE_Bitmap| 0 0 -WinInfo Default Maximized=0 0 0 0 -8 -8 1382 744 0 0 0=26 13 0 0 400 0 0 0 0 3 2 2 0 HE_Bitmap| 0 0 -Window State=2 -Use Specific PRTSCR Printer=On -PrtScr DevMode=1025,1024,156,1497,33565,1,256,2794,1240,0,1,4,300,1,1,300,1,0,0,1,0,0,0,0,ZDesigner TLP 3842,User defined -PrtScr Driver=winspool -PrtScr Device=ZDesigner TLP 3842 -PrtScr Output=LPT1: -Print Header2=Page: %# Document Name: %F -Use Specific VT Printer=On -VT DevMode=1025,1024,156,1497,323347,1,256,190,914,0,1,4,300,1,1,300,1,0,0,1,0,0,0,0,ZDesigner TLP 3842,User defined -VT Driver=winspool -VT Device=ZDesigner TLP 3842 -VT Output=USB001 -Printer Target=1 -VT Printer Bypass Windows Print Driver=Off -VT Printer Use Default Font=On -VT Printer Margins Left=320 -VT Printer Margins Right=0 -VT Printer Margins Bottom=0 -VT Printer Margins Top=0 -QuickKey=ID -Auto Start Quick-Key=mmcs.ebs -VT Auto Wrap=On -Profile File Version=200 -Kerberos Use Hummingbird Kerberos=On -Cryptographic Mode=1 -Save Mode=0 -[HEBar-59440] -sizeFloatCX=534 -sizeFloatCY=28 -[Toolbars Layout-Summary] -Bars=3 -ScreenCX=1366 -ScreenCY=768 -[Session Options] -Last Selected Page=4000 -[Toolbars] -ToolBarVersion=5 -bar0=Default VT ToolBar.tbv -[Toolbars Layout-Bar0] -BarID=59393 -[Toolbars Layout-Bar1] -BarID=59419 -Bars=3 -Bar#0=0 -Bar#1=59440 -Bar#2=0 -[Toolbars Layout-Bar2] -BarID=59440 -XPos=-2 -YPos=-2 -Docking=1 -MRUDockID=59419 -MRUDockLeftPos=-2 -MRUDockTopPos=-2 -MRUDockRightPos=541 -MRUDockBottomPos=26 -MRUFloatStyle=8196 -MRUFloatXPos=-1 -MRUFloatYPos=0 -[Hotspots] -ShowTips=1 -[ShortcutReplacers] -Size=0 -[Site Info] -EnableCache=Yes -RefreshCacheOnConnect=0 -AlwaysUploadUsing=0 -AlwaysDownloadUsing=0 -ProfileVersion=5 -SecurityType=0 -Port=21 -SSL Implicit Port=990 -Directory2=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -SFTPProxyAddress=localhost -SFTPProxyPort=0 -SFTPWriteSize=256 -GssApiServiceName=host -GssApiProtLevel=P -GssApiIssueCCC=No -GssApiPBSZ=16000 -GssApiKerbClient=0 -GssApiUseHMS2MIT=No -PassiveMode=2 -AllowServer2ServerTransfer=0 -KeepAlive=No -AutoDetectServerType=Yes -KeepAliveTime=0 -FirewallPort=21 -FirewallType=0 -NetworkTimeout=120 -ConvertGMTTime=0 -ResolveLinks=1 -RootToInitialDir=0 -ChangeDirChangesRoot=0 -DropVmsVersion=0 -LocalHourOffset=0 -LocalMinuteOffset=0 -TemporaryProfile=0 -SSLVersion=1 -SSLReuse=0 -SSLUserCertificateMode=0 -SSLCloseOnNegotiateionFail=0 -SSLAcceptServerSelfSignedCertificates=Yes -SSLAcceptServerUnverifiedCertificates=Yes -SSLDataChannelProtected=Yes -SSLCryptographicMode=1 -AllowResume=No -EPSV4=0 -[Stats] -NumVisits=0 diff --git a/playbook/shopfloor-setup/Shopfloor/csf/WJ Shopfloor.lnk b/playbook/shopfloor-setup/Shopfloor/csf/WJ Shopfloor.lnk deleted file mode 100755 index 1469565..0000000 Binary files a/playbook/shopfloor-setup/Shopfloor/csf/WJ Shopfloor.lnk and /dev/null differ diff --git a/playbook/shopfloor-setup/Shopfloor/csf/WJ_Office.lnk b/playbook/shopfloor-setup/Shopfloor/csf/WJ_Office.lnk deleted file mode 100755 index c5103ea..0000000 Binary files a/playbook/shopfloor-setup/Shopfloor/csf/WJ_Office.lnk and /dev/null differ diff --git a/playbook/shopfloor-setup/Shopfloor/csf/mmcs.lnk b/playbook/shopfloor-setup/Shopfloor/csf/mmcs.lnk deleted file mode 100755 index 02046e8..0000000 Binary files a/playbook/shopfloor-setup/Shopfloor/csf/mmcs.lnk and /dev/null differ diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Get-PCProfile.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Get-PCProfile.ps1 deleted file mode 100644 index db2c38b..0000000 --- a/playbook/shopfloor-setup/Shopfloor/lib/Get-PCProfile.ps1 +++ /dev/null @@ -1,144 +0,0 @@ -# Get-PCProfile.ps1 - Shared helper for resolving the active PC profile -# from site-config.json. Dot-source this from any script that needs -# profile-aware configuration: -# -# . "$PSScriptRoot\lib\Get-PCProfile.ps1" (from Shopfloor\ scripts) -# . "$PSScriptRoot\Get-PCProfile.ps1" (from lib\ scripts) -# -# After dot-sourcing, these variables are available: -# $siteConfig - full parsed site-config.json (or $null) -# $pcType - from pc-type.txt (e.g. "Standard", "CMM", "Display") -# $pcSubtype - from pc-subtype.txt (e.g. "Timeclock", "Machine", "Lobby") -# $profileKey - lookup key (e.g. "Standard-Machine", "CMM", "Display-Lobby") -# $pcProfile - the matched profile object from pcProfiles, or $null -# -# Resolution order for any config key (e.g. startupItems): -# 1. $pcProfile.startupItems (profile-specific override) -# 2. $siteConfig.startupItems (site-wide default) -# 3. (hardcoded fallback in the calling script) -# -# Usage pattern in consuming scripts: -# $items = Get-ProfileValue 'startupItems' -# if ($null -ne $items) { ... } else { } -# -# Get-ProfileValue distinguishes "not set" ($null) from "explicitly empty" -# (@()) so a profile can opt out of a site-wide default by setting the -# key to []. Do NOT use truthiness checks like `if ($pcProfile.startupItems)` -# because an empty array is falsy and would fall through to site defaults. - -function Get-ProfileValue { - param([Parameter(Mandatory)][string]$Key) - if ($pcProfile -and ($pcProfile.PSObject.Properties.Name -contains $Key)) { - return ,@($pcProfile.$Key) - } - if ($siteConfig -and ($siteConfig.PSObject.Properties.Name -contains $Key)) { - return ,@($siteConfig.$Key) - } - return $null -} - -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path -LiteralPath $configPath)) { - Write-Host "site-config.json not found - using defaults" -ForegroundColor DarkGray - return $null - } - try { - return (Get-Content -LiteralPath $configPath -Raw -ErrorAction Stop | ConvertFrom-Json) - } catch { - Write-Warning "Failed to parse site-config.json: $_" - return $null - } -} - -$siteConfig = Get-SiteConfig - -# Read PC type + sub-type from the files startnet.cmd wrote during imaging -$pcType = '' -$pcSubtype = '' -$typeFile = 'C:\Enrollment\pc-type.txt' -$subtypeFile = 'C:\Enrollment\pc-subtype.txt' - -if (Test-Path -LiteralPath $typeFile) { - $pcType = (Get-Content -LiteralPath $typeFile -First 1 -ErrorAction SilentlyContinue).Trim() -} -if (Test-Path -LiteralPath $subtypeFile) { - $pcSubtype = (Get-Content -LiteralPath $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() -} - -# Display sub-type fallback: if pc-subtype.txt is absent (post-rename-reorg -# default) but display-type.txt exists, use it as the subtype. Lets the -# Display-Lobby / Display-Dashboard / gea-shopfloor-display-{lobby,dashboard} -# profile keys resolve correctly for Display PCs. -$displayTypeFile = 'C:\Enrollment\display-type.txt' -if (-not $pcSubtype -and ($pcType -ieq 'gea-shopfloor-display' -or $pcType -ieq 'Display') -and (Test-Path -LiteralPath $displayTypeFile)) { - $pcSubtype = (Get-Content -LiteralPath $displayTypeFile -First 1 -ErrorAction SilentlyContinue).Trim() -} - -# Build the profile key: "Standard-Machine", "CMM", "Display-Lobby", etc. -$profileKey = if ($pcSubtype) { "$pcType-$pcSubtype" } else { $pcType } - -# 2026-05-03 rename: when the legacy key (e.g. "Standard-Machine") is not -# present in pcProfiles, fall through to the new gea-shopfloor-* equivalent -# (e.g. "gea-shopfloor-collections"). Vice versa: a fleet PC that already -# writes "gea-shopfloor-collections" finds its profile under either key. -$pcProfileAliasGroups = @( - @('Standard-Machine', 'gea-shopfloor-collections', 'gea-shopfloor-nocollections'), - @('Standard-Timeclock', 'gea-shopfloor-common'), - @('Lab', 'gea-shopfloor-common'), - @('CMM', 'gea-shopfloor-cmm'), - @('Keyence', 'gea-shopfloor-keyence'), - @('WaxAndTrace', 'gea-shopfloor-waxtrace'), - @('Genspect', 'gea-shopfloor-genspect'), - @('Display', 'gea-shopfloor-display'), - @('Display-Lobby', 'gea-shopfloor-display-Lobby', 'gea-shopfloor-display-lobby'), - @('Display-Dashboard', 'gea-shopfloor-display-Dashboard', 'gea-shopfloor-display-dashboard'), - @('Heattreat', 'gea-shopfloor-heattreat') -) - -# Look up the profile in pcProfiles. Fall back to $null (callers use -# site-wide defaults or hardcoded values). -$pcProfile = $null -if ($siteConfig -and $siteConfig.pcProfiles -and $profileKey) { - $pcProfile = $siteConfig.pcProfiles.$profileKey - if (-not $pcProfile) { - foreach ($g in $pcProfileAliasGroups) { - if ($g -icontains $profileKey) { - foreach ($alias in $g) { - if ($alias -ieq $profileKey) { continue } - $candidate = $siteConfig.pcProfiles.$alias - if ($candidate) { $pcProfile = $candidate; break } - } - break - } - } - } - # Subtype-strip fallback: a compound key like "gea-shopfloor-cmm-doda" (DODA - # CMM bays set pc-subtype.txt=doda) has no profile of its own. Fall back to - # the BARE pc-type ("gea-shopfloor-cmm" -> "CMM"). Without this the profile - # resolves to $null and callers silently use hardcoded defaults (wrong - # desktop icons + unwanted startup items). - if (-not $pcProfile -and $pcSubtype) { - $bare = $pcType - $pcProfile = $siteConfig.pcProfiles.$bare - if (-not $pcProfile) { - foreach ($g in $pcProfileAliasGroups) { - if ($g -icontains $bare) { - foreach ($alias in $g) { - if ($alias -ieq $bare) { continue } - $candidate = $siteConfig.pcProfiles.$alias - if ($candidate) { $pcProfile = $candidate; break } - } - break - } - } - } - if ($pcProfile) { $profileKey = $bare } - } -} - -if ($pcProfile) { - Write-Host "PC profile: $profileKey" -ForegroundColor Cyan -} elseif ($profileKey) { - Write-Host "PC profile '$profileKey' not found in site-config.json - using site defaults" -ForegroundColor DarkGray -} diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Invoke-FilteredReportIP.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Invoke-FilteredReportIP.ps1 deleted file mode 100644 index f1b2b3c..0000000 --- a/playbook/shopfloor-setup/Shopfloor/lib/Invoke-FilteredReportIP.ps1 +++ /dev/null @@ -1,100 +0,0 @@ -# Invoke-FilteredReportIP.ps1 -# Reports this bay's GE corp IP to the GE Tines webhook with a tight -# subnet filter so PXE LAN (10.9.100.x) or any other 10.x stray address -# never leaks. Mirrors the payload shape of GE's Intune-deployed -# ReportIPAddresses_v2.ps1 so the receiving Tines workflow accepts it. -# -# WHY: -# GE's signed Report IP script filters Get-NetIPAddress with -# $_.StartsWith("10.") - too broad for WJ where PXE LAN is also 10.x. -# Calling our own POST with a narrow filter guarantees the webhook -# only ever sees the bay's AESFMA corp 10.x address. -# -# ALLOWED RANGES (WJ-specific - update if site moves to a new VLAN): -# 10.134.48.0/23 (10.134.48.0 - 10.134.49.255) -# 10.48.249.0/26 (10.48.249.0 - 10.48.249.63) - -param( - [switch]$Force, - [int]$MaxAttempts = 6, - [int]$RetrySeconds = 10 -) - -$ErrorActionPreference = 'Continue' -$logFile = 'C:\Logs\FilteredReportIP.log' -New-Item -ItemType Directory -Path 'C:\Logs' -Force -ErrorAction SilentlyContinue | Out-Null - -function Log([string]$msg) { - $ts = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' - "$ts $msg" | Tee-Object -FilePath $logFile -Append -} - -# Allowed ranges (CIDR -> first IP int + prefix bits) -$allowedRanges = @( - @{ Network = '10.134.48.0'; PrefixLen = 23 }, - @{ Network = '10.48.249.0'; PrefixLen = 26 } -) - -function ConvertTo-Uint32($ip) { - $bytes = ([System.Net.IPAddress]::Parse($ip)).GetAddressBytes() - [Array]::Reverse($bytes) - return [BitConverter]::ToUInt32($bytes, 0) -} - -function Test-InAllowedRange([string]$ip) { - try { - $ipInt = ConvertTo-Uint32 $ip - foreach ($r in $allowedRanges) { - $netInt = ConvertTo-Uint32 $r.Network - $mask = [uint32]([math]::Pow(2, 32) - [math]::Pow(2, 32 - $r.PrefixLen)) - if (($ipInt -band $mask) -eq ($netInt -band $mask)) { return $true } - } - } catch {} - return $false -} - -Log "=== Filtered Report IP fire ===" -$allIPs = Get-NetIPAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | - Where-Object { $_.IPAddress -notmatch '^169\.254' -and $_.IPAddress -ne '127.0.0.1' } | - Select-Object -ExpandProperty IPAddress -Log "All IPv4 addresses on this bay: $($allIPs -join ', ')" - -$match = @($allIPs | Where-Object { Test-InAllowedRange $_ }) -if ($match.Count -eq 0) { - Log "No IP in allowed ranges (10.134.48.0/23 or 10.48.249.0/26). Not POSTing." - exit 2 -} -$reportIP = $match[0] -Log "Reporting IP: $reportIP" - -$statusFile = "$env:ProgramData\GEA\FilteredReportIP\last-ip.txt" -$lastIP = '' -if (Test-Path $statusFile) { $lastIP = (Get-Content $statusFile -ErrorAction SilentlyContinue) -join '' } -if (-not $Force -and $lastIP -eq $reportIP) { - Log "IP unchanged from last POST ($lastIP). Skipping." - exit 0 -} - -$webhookUrl = 'https://tines.apps.geaerospace.com/webhook/aa891efac08bab3d077d9956ab6614d0/c687048cb0ee35c33760ad14cb9257eb' -$body = @{ - host = $env:COMPUTERNAME - fqdn = "$env:COMPUTERNAME.device.geaerospace.net" - IP = $reportIP - force_update = if ($Force) { 'True' } else { 'False' } -} - -for ($i = 1; $i -le $MaxAttempts; $i++) { - try { - Log "POST attempt $i/$MaxAttempts ..." - $resp = Invoke-WebRequest -Uri $webhookUrl -Method POST -Body $body -TimeoutSec 60 -UseBasicParsing -ErrorAction Stop - Log "POST succeeded. StatusCode=$($resp.StatusCode) Content=$($resp.Content)" - New-Item -ItemType Directory -Path (Split-Path $statusFile) -Force -ErrorAction SilentlyContinue | Out-Null - Set-Content -Path $statusFile -Value $reportIP -Force - exit 0 - } catch { - Log "POST attempt $i failed: $_" - if ($i -lt $MaxAttempts) { Start-Sleep -Seconds $RetrySeconds } - } -} -Log "All $MaxAttempts attempts failed - giving up." -exit 1 diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Map-SfldShare.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Map-SfldShare.ps1 deleted file mode 100644 index 087d186..0000000 --- a/playbook/shopfloor-setup/Shopfloor/lib/Map-SfldShare.ps1 +++ /dev/null @@ -1,68 +0,0 @@ -# Map-SfldShare.ps1 - Map S: drive on user logon using SFLD creds from HKLM. -# -# Runs as the interactive user (BUILTIN\Users, Limited) so the drive -# mapping lands in the logged-in user's session. Reads username/password -# directly from HKLM:\SOFTWARE\GE\SFLD\Credentials\* and passes them -# inline to net use -- no Windows Credential Manager involvement. -# -# Why not the vendor's ConsumeCredentials.ps1: it calls -# New-StoredCredential -Persist LocalMachine which requires admin. -# ShopFloor is a non-admin user, so the cred-store step fails silently -# and the subsequent net use (which relies on those stored creds) has -# no authentication. Direct net use /user: bypasses the issue entirely. - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { - try { New-Item -Path $logDir -ItemType Directory -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$logFile = Join-Path $logDir 'map-share.log' - -function Write-MapLog { - param([string]$Message) - $line = '[{0}] [{1}] {2}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $env:USERNAME, $Message - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue -} - -Write-MapLog '=== Map-SfldShare start ===' - -$credsBase = 'HKLM:\SOFTWARE\GE\SFLD\Credentials' -if (-not (Test-Path $credsBase)) { - Write-MapLog 'No HKLM SFLD credentials yet - exiting' - exit 0 -} - -foreach ($entry in (Get-ChildItem -Path $credsBase -ErrorAction SilentlyContinue)) { - $p = Get-ItemProperty -Path $entry.PSPath -ErrorAction SilentlyContinue - if (-not $p -or -not $p.TargetHost -or -not $p.Username -or -not $p.Password) { continue } - - $drive = $null - $share = $null - try { $drive = $p.DriveLetter } catch {} - try { $share = $p.ShareName } catch {} - - if ([string]::IsNullOrWhiteSpace($drive) -or [string]::IsNullOrWhiteSpace($share)) { continue } - - $drive = $drive.TrimEnd(':') + ':' - $share = $share.TrimStart('\') - $uncPath = "\\$($p.TargetHost)\$share" - - # Skip if already mapped to the right target - $existing = & net use $drive 2>&1 - if ($LASTEXITCODE -eq 0 -and ($existing -join "`n") -match [regex]::Escape($uncPath)) { - Write-MapLog "$drive already mapped to $uncPath - skipping" - continue - } - - & net use $drive /delete /y 2>$null | Out-Null - $out = & net use $drive $uncPath /user:$($p.Username) $($p.Password) /persistent:yes 2>&1 - if ($LASTEXITCODE -eq 0) { - Write-MapLog "Mapped $drive -> $uncPath" - } else { - Write-MapLog "FAILED $drive -> $uncPath (exit $LASTEXITCODE): $out" - } -} - -Write-MapLog '=== Map-SfldShare end ===' -exit 0 diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Monitor-IntuneProgress.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Monitor-IntuneProgress.ps1 index 3bdb869..08b262c 100644 --- a/playbook/shopfloor-setup/Shopfloor/lib/Monitor-IntuneProgress.ps1 +++ b/playbook/shopfloor-setup/Shopfloor/lib/Monitor-IntuneProgress.ps1 @@ -251,14 +251,14 @@ function Get-Phase1 { # dashboard card flips to 100% green. # Lockdown handover also ends the imaging autologon budget. - # Run-ShopfloorSetup and Stage-Dispatcher top AutoLogonCount up to 10 for - # SupportUser, and the Sysinternals Autologon run that switches the bay to - # ShopFloor leaves it in place. ShopFloor then inherited the remainder and - # Windows turned autologon off when it reached 0 - the bay parked at a - # ShopFloor password prompt a few reboots after imaging. Delete it as soon - # as Winlogon shows ShopFloor. Proven in the win11 VM 2026-10-02. GE-Enforce - # common carries the same cleanup (Remove-AutoLogonCount.ps1) for bays - # imaged before this. + # Run-ShopfloorSetup tops AutoLogonCount up to 10 for SupportUser, and the + # Sysinternals Autologon run that switches the bay to ShopFloor leaves it + # in place. ShopFloor then inherited the remainder and Windows turned + # autologon off when it reached 0 - the bay parked at a ShopFloor password + # prompt a few reboots after imaging. Delete it as soon as Winlogon shows + # ShopFloor. This task runs as Users (Limited) and the HKLM write can be + # denied; the SYSTEM "GE Shopfloor Post-PPKG" task (Invoke-PostPpkg.ps1) + # does the same cleanup at every startup until it has succeeded. try { $wlKey = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' $wlNow = Get-ItemProperty $wlKey -ErrorAction Stop @@ -947,12 +947,9 @@ function Format-Snapshot { @{ Ok = $Snap.Phase3.InstallComplete; Failed = $false } ) # Phase 4 (per-script Application Install) was retired 2026-04-28: - # apps now deploy via the GE-Enforce manifest engine off - # \\tsgwp00525\...\machineapps\, gated on AESFMA WiFi + S: mount - # which both happen post-reboot. The monitor's responsibility ends - # at "DSC bootstrap + creds + lockdown landed, time to reboot." - # The manifest engine takes over from there on the next ShopFloor - # logon. + # site apps install from the post-PPKG list after the reboot + # (Invoke-PostPpkg.ps1). The monitor's responsibility ends at + # "DSC bootstrap + creds + lockdown landed, time to reboot." $p4Done = ($Snap.Phase5.ConsumeCredsTask -and $Snap.Phase5.CredsPopulated) $p4Status = Get-PhaseStatus @( @@ -1250,7 +1247,7 @@ if ($AsTask -and (Test-Path -LiteralPath $syncCompleteMarker)) { # For these types, enrollment is "done" once Phase 1 (Identity) completes # and policies start arriving - there is no Phase 2-5 to wait for. $pcTypeFile = 'C:\Enrollment\pc-type.txt' -$noDscTypes = @('Display', 'gea-shopfloor-display') +$noDscTypes = @() $skipDsc = $false if (Test-Path $pcTypeFile) { $pcType = (Get-Content $pcTypeFile -First 1).Trim() @@ -1308,29 +1305,14 @@ try { $qrRefreshed = [bool]($qrText -notmatch 'not yet Azure AD joined') } - # Filtered Report IP shim - POSTs this bay's GE corp IP to the - # Tines webhook directly with a tight subnet filter. Fires each - # tick until it succeeds once (script's own status-file dedup - # prevents duplicate POSTs). Bypasses the timing window where - # GE's Intune-deployed Report IP misses (it may run before the - # SCEP cert + AESFMA join land). - if (-not $filteredReportIpSucceeded) { - $filteredScript = Join-Path $PSScriptRoot 'Invoke-FilteredReportIP.ps1' - if (Test-Path $filteredScript) { - $rc = & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $filteredScript 2>&1 | Out-Null - if ($LASTEXITCODE -eq 0) { $filteredReportIpSucceeded = $true } - } - } - Clear-Host Format-Snapshot -Snap $snap -LastSync $lastSync -NextRetrigger $nextRetrigger Write-Host "" Write-Host $qrText # Final state: every phase landed. Apps are no longer in the gate - - # they deploy via the GE-Enforce manifest engine post-reboot, gated - # on AESFMA WiFi + S: drive mount which only happen after we hand - # off to the ShopFloor autologon session. So this gate is now: + # the site's post-PPKG list installs them after the reboot. So this + # gate is now: # - CredsPopulated: SFLD share creds in HKLM (Machine-Enforce, # Acrobat-Enforce, CMM-Enforce, manifest # engine all need these) diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Restore-EDncReg.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Restore-EDncReg.ps1 deleted file mode 100644 index 636b227..0000000 --- a/playbook/shopfloor-setup/Shopfloor/lib/Restore-EDncReg.ps1 +++ /dev/null @@ -1,88 +0,0 @@ -# Restore-EDncReg.ps1 - Import a per-machine eDNC .reg backup from a folder. -# -# Two callers: -# 1. Standard/03-RestoreEDncConfig.ps1 (imaging-time, source = local PXE copy) -# 2. Shopfloor/lib/Update-MachineNumber.ps1 (post-image 9999 -> real, source -# = tsgwp00525 SFLD share mounted via existing SFLD credential pattern) -# -# The .reg files live as -.reg or .reg. Returns the path -# that was imported, or $null if nothing was found/imported. Errors are -# caught and logged via Write-Host (no throwing); callers continue. -# -# Dot-source with: -# . "$PSScriptRoot\lib\Restore-EDncReg.ps1" (from Shopfloor\) -# . "$PSScriptRoot\..\Shopfloor\lib\Restore-EDncReg.ps1" (from Standard\) - -function Mount-SFLDShare { - <# - .SYNOPSIS - Mounts a \\server\share path using SFLD creds from - HKLM:\SOFTWARE\GE\SFLD\Credentials\*. Returns $true on success, - $false if creds are missing or mount fails. - #> - param( - [Parameter(Mandatory)][string]$SharePath, - [string]$DriveLetter = 'V:' - ) - - $server = ($SharePath -replace '^\\\\', '') -split '\\' | Select-Object -First 1 - $basePath = 'HKLM:\SOFTWARE\GE\SFLD\Credentials' - if (-not (Test-Path $basePath)) { return $false } - - $cred = $null - foreach ($entry in Get-ChildItem -Path $basePath -ErrorAction SilentlyContinue) { - $props = Get-ItemProperty -Path $entry.PSPath -ErrorAction SilentlyContinue - if (-not $props -or -not $props.TargetHost) { continue } - if ($props.TargetHost -eq $server -or - $props.TargetHost -like "$server.*" -or - $server -like "$($props.TargetHost).*") { - $cred = $props; break - } - } - if (-not $cred -or -not $cred.Username -or -not $cred.Password) { return $false } - - & net use $DriveLetter /delete /y 2>$null | Out-Null - $null = & net use $DriveLetter $SharePath /user:$($cred.Username) $($cred.Password) /persistent:no 2>&1 - return ($LASTEXITCODE -eq 0) -} - -function Import-EDncRegBackup { - <# - .SYNOPSIS - Looks for -*.reg or .reg in SourceRoot - and runs `reg import` on it. Caller is responsible for mounting any - network share first; this function works on whatever local or drive- - letter path is handed in. - .PARAMETER SourceRoot - Directory containing the .reg backups. - .PARAMETER MachineNumber - The target machine number (digits). Used as a filename prefix. - .OUTPUTS - Path of the imported file, or $null if none found / import failed. - #> - param( - [Parameter(Mandatory)][string]$SourceRoot, - [Parameter(Mandatory)][string]$MachineNumber - ) - - if (-not (Test-Path -LiteralPath $SourceRoot)) { - Write-Host " Restore-EDncReg: source root not found: $SourceRoot" - return $null - } - - $candidate = Get-ChildItem -Path $SourceRoot -Filter "$MachineNumber.reg" -File -ErrorAction SilentlyContinue | - Select-Object -First 1 - if (-not $candidate) { - Write-Host " Restore-EDncReg: no backup for machine $MachineNumber in $SourceRoot" - return $null - } - - Write-Host " Restore-EDncReg: importing $($candidate.FullName)" - $out = & reg.exe import "$($candidate.FullName)" 2>&1 - if ($LASTEXITCODE -ne 0) { - Write-Host " Restore-EDncReg: reg import failed (exit $LASTEXITCODE): $out" - return $null - } - Write-Host " Restore-EDncReg: imported OK" - return $candidate.FullName -} diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Set-OpenTextAutoStart.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Set-OpenTextAutoStart.ps1 deleted file mode 100644 index 27c16df..0000000 --- a/playbook/shopfloor-setup/Shopfloor/lib/Set-OpenTextAutoStart.ps1 +++ /dev/null @@ -1,44 +0,0 @@ -# Set-OpenTextAutoStart.ps1 - place WJ Shopfloor.lnk in the All Users -# Startup folder so HostExplorer's "WJ Shopfloor" session launches at -# every login. Idempotent: re-running is a no-op when the .lnk already -# exists at the same path. -# -# Used by per-pc-type 09-Setup scripts for shopfloor types whose only -# business app is OpenText (common, waxtrace, genspect, heattreat). -# collections + nocollections do NOT auto-start OpenText - their techs -# pick which apps via Configure-PC.ps1. -# -# Source .lnk is created by the OpenText preinstall (Setup-OpenText.ps1) -# on the public desktop. If the .lnk is missing, log a warning and exit -# 0 - imaging chain still continues; auto-start can be re-attempted on a -# subsequent login by re-running this script. - -$ErrorActionPreference = 'Continue' - -$startupDir = 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp' -$publicDesktop = 'C:\Users\Public\Desktop' - -$candidates = @( - Join-Path $publicDesktop 'WJ Shopfloor.lnk' - Join-Path (Join-Path $publicDesktop 'Shopfloor Tools') 'WJ Shopfloor.lnk' -) -$src = $candidates | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 - -if (-not $src) { - Write-Warning "WJ Shopfloor.lnk not found on public desktop - OpenText auto-start NOT configured." - Write-Warning " Searched: $($candidates -join ' ; ')" - Write-Warning " Setup-OpenText.ps1 should create it during preinstall - check OpenText install state." - return -} - -if (-not (Test-Path -LiteralPath $startupDir)) { - New-Item -Path $startupDir -ItemType Directory -Force | Out-Null -} - -$dst = Join-Path $startupDir 'WJ Shopfloor.lnk' -try { - Copy-Item -LiteralPath $src -Destination $dst -Force - Write-Host "OpenText auto-start enabled: $dst (source: $src)" -} catch { - Write-Warning "Failed to copy WJ Shopfloor.lnk to startup: $_" -} diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Show-IntuneDeviceQR.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Show-IntuneDeviceQR.ps1 index 8a5fd01..09b774a 100644 --- a/playbook/shopfloor-setup/Shopfloor/lib/Show-IntuneDeviceQR.ps1 +++ b/playbook/shopfloor-setup/Shopfloor/lib/Show-IntuneDeviceQR.ps1 @@ -31,7 +31,7 @@ $ErrorActionPreference = 'Continue' # 1. -QRCoderDllPath if explicitly passed # 2. Next to this script ($PSScriptRoot\QRCoder.dll) # 3. Current working directory -# 4. WJ canonical staging path (kept for cross-site portability) +# 4. The standard staging path (C:\Enrollment\shopfloor-setup\Shopfloor) # ---------------------------------------------------------------------------- function Resolve-QRCoderDll { param([string]$Override) diff --git a/playbook/shopfloor-setup/Shopfloor/lib/Update-MachineNumber.ps1 b/playbook/shopfloor-setup/Shopfloor/lib/Update-MachineNumber.ps1 deleted file mode 100644 index c679848..0000000 --- a/playbook/shopfloor-setup/Shopfloor/lib/Update-MachineNumber.ps1 +++ /dev/null @@ -1,531 +0,0 @@ -# Update-MachineNumber.ps1 - Shared helper for reading and updating the -# machine number in UDC and eDNC. Dot-source from any script that needs -# machine-number operations: -# -# . "$PSScriptRoot\lib\Update-MachineNumber.ps1" (from Shopfloor\ scripts) -# . "$PSScriptRoot\..\Shopfloor\lib\Update-MachineNumber.ps1" (from Standard\ scripts) -# . "$PSScriptRoot\Update-MachineNumber.ps1" (from lib\ scripts) -# -# Exported functions: -# Get-CurrentMachineNumber - returns @{ Udc = $string_or_null; Ednc = $string_or_null } -# Update-MachineNumber - updates both, returns @{ UdcUpdated = $bool; EdncUpdated = $bool; Errors = @() } -# -# Both handle missing files/keys gracefully (app not installed = skip, not error). - -$script:UdcSettingsPath = 'C:\ProgramData\UDC\udc_settings.json' -$script:UdcExePath = 'C:\Program Files\UDC\UDC.exe' -$script:EdncRegPath = 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General' - -function Get-CurrentMachineNumber { - <# - .SYNOPSIS - Reads the current machine number from UDC settings JSON and eDNC registry. - .OUTPUTS - Hashtable with keys Udc ($string or $null) and Ednc ($string or $null). - #> - $result = @{ Udc = $null; Ednc = $null } - - if (Test-Path $script:UdcSettingsPath) { - try { - $json = Get-Content $script:UdcSettingsPath -Raw | ConvertFrom-Json - $result.Udc = $json.GeneralSettings.MachineNumber - } catch {} - } - - if (Test-Path $script:EdncRegPath) { - try { - $result.Ednc = (Get-ItemProperty -Path $script:EdncRegPath -Name MachineNo -ErrorAction Stop).MachineNo - } catch {} - } - - return $result -} - -function Update-MTConnectVariantName { - <# - .SYNOPSIS - Renames an MTConnect device across every file of a variant that carries it. - - .DESCRIPTION - Makino and Fanuc do not fit the one-file-one-service shape the other - variants do. - Per the vendor's "Installation Configuration and Trouble Shooting" guide, - the device name lives in several files that must be identical or the agent - may not start, and the Adapter Manager service rewrites the COMPLETE - configuration when it stops - so an edit made while it runs is thrown away. - - Makino, from a real bay capture: - Agent\Devices.xml - Agent\Devices.EDM.xml - Data\AdapterDataFile.xml MAKINO-1 - Agent\Agent.cfg Adapters { MAKINO-1 { Host=localhost ... } } - - Fanuc, likewise: - Agent\devices.xml - Adapter\devices.xml the adapter's own generated copy - Adapter\adapter.xml //3101 - - Editing only the agent's copy leaves the adapter streaming under the old - identity. Seven of thirty-four captured Fanuc bays are in that state - - agent on the right machine number, adapter still on the bay it was - imaged from (4007 on a 7801 Toshulin, 3031 on a 7804). - - The vendor's own path is ConfigurationManager.exe, a GUI tool, which a - remote renumber cannot drive. This does what it does, in the required - order: stop the manager and the agent, rewrite, start again. - - Anything that cannot be renamed is reported rather than half-applied - - a bay whose files disagree is worse than one still on its old name. - #> - [CmdletBinding()] - param( - [Parameter(Mandatory)][string]$NewNumber, - [Parameter(Mandatory)][hashtable[]]$Targets, - # Overridable so the rename can be exercised against a captured bay. - [Parameter(Mandatory)][string]$Root, - # Whatever owns the files goes down first - for Makino the Adapter - # Manager rewrites its configuration from memory as it stops, and for - # Fanuc the adapter holds its own copy. Overridable only so a test can - # drive the stop/start ordering with real services. - [string[]]$Services = @() - ) - - $out = @{ Updated = @(); Errors = @() } - - $present = @($Targets | - ForEach-Object { @{ Path = (Join-Path $Root $_.Path); Kind = $_.Kind } } | - Where-Object { Test-Path -LiteralPath $_.Path }) - if (-not $present) { return $out } - - # Collect EVERY name in play, not just one. A bay half-renamed by the old - # code carries two at once - Devices.xml already on the machine number while - # the adapter files still say MAKINO-n - and replacing only the name we - # happened to discover leaves the other behind, which is the very state this - # is meant to end. Gather them all, then converge every file on the target. - $names = New-Object System.Collections.Generic.HashSet[string] - foreach ($t in $present) { - $raw = Get-Content -LiteralPath $t.Path -Raw -ErrorAction SilentlyContinue - if (-not $raw) { continue } - switch ($t.Kind) { - 'attr' { if ($raw -match ']+name="([^"]+)"') { [void]$names.Add($matches[1]) } } - 'name' { if ($raw -match '\s*([^<]+?)\s*') { [void]$names.Add($matches[1]) } } - 'cfg' { - # The adapter block's key is the bare line inside Adapters { }. - if ($raw -match '(?ms)Adapters\s*\{\s*\r?\n\s*([^\s{]+)') { [void]$names.Add($matches[1]) } - } - } - } - [void]$names.Remove($NewNumber) - if ($names.Count -eq 0) { return $out } # every file already on the target - - # Agent is stopped too, so it re-reads Agent.cfg on the way back up. - $stopped = @() - foreach ($name in $Services) { - $svc = Get-Service -Name $name -ErrorAction SilentlyContinue - if (-not $svc) { continue } - if ($svc.Status -ne 'Stopped') { - try { - Stop-Service -Name $name -Force -ErrorAction Stop - $stopped += $name - } catch { - $out.Errors += "MTConnect: could not stop '$name' ($_); nothing was changed" - foreach ($back in $stopped) { - try { Start-Service -Name $back -ErrorAction Stop } catch {} - } - return $out - } - } - } - - foreach ($t in $present) { - try { - $content = Get-Content -LiteralPath $t.Path -Raw -ErrorAction Stop - $updated = $content - $from = @() - foreach ($old in $names) { - $escaped = [regex]::Escape($old) - switch ($t.Kind) { - 'attr' { $next = $updated -replace ('"' + $escaped + '"'), ('"' + $NewNumber + '"') } - 'name' { $next = $updated -replace ('\s*' + $escaped + '\s*'), ("$NewNumber") } - # The adapter block is keyed by a bare name on its own line. - 'cfg' { $next = $updated -replace ('(?m)^(\s*)' + $escaped + '(\s*)$'), ("`${1}$NewNumber`${2}") } - # // in the Fanuc adapter config - 'elem' { $next = $updated -replace ('()\s*' + $escaped + '\s*()'), ("`${1}$NewNumber`${2}") } - } - if ($next -ne $updated) { $from += $old; $updated = $next } - } - if ($updated -eq $content) { continue } # this file was already done - Set-Content -LiteralPath $t.Path -Value $updated -NoNewline -ErrorAction Stop - $out.Updated += "$($t.Path) ($($from -join ', ') -> $NewNumber)" - } catch { - $out.Errors += "MTConnect: rewrite failed for $($t.Path): $_" - } - } - - foreach ($name in $stopped) { - try { Start-Service -Name $name -ErrorAction Stop } - catch { $out.Errors += "MTConnect: restart of '$name' failed: $_" } - } - - return $out -} - -function Update-MachineNumber { - <# - .SYNOPSIS - Updates UDC + eDNC machine number in one step. Stops UDC before writing, - relaunches after. - .PARAMETER NewNumber - The new machine number (digits only - caller validates). - .PARAMETER Site - Site name passed to UDC.exe -site argument. Defaults to 'West Jefferson'. - .OUTPUTS - Hashtable: @{ UdcUpdated = $bool; EdncUpdated = $bool; Errors = @() } - #> - param( - [Parameter(Mandatory)] - [string]$NewNumber, - - [string]$Site = 'West Jefferson' - ) - - $out = @{ UdcUpdated = $false; EdncUpdated = $false; Errors = @(); RegImported = $null; OldUdc = $null; OldEdnc = $null } - - # If the machine number is changing (placeholder->real OR real->real - # reassignment after a duplicate-image), pull per-machine state for the - # new number from the SFLD share: NTLARS .reg, UDC settings, UDC live - # data. The live-data restore is idempotent via one-shot migrated/ - # consumption, so it stays safe on reassign too. - $current = Get-CurrentMachineNumber - $out.OldUdc = $current.Udc - $out.OldEdnc = $current.Ednc - $isChanging = ($current.Udc -ne $NewNumber) -or ($current.Ednc -ne $NewNumber) - - if ($isChanging -and $NewNumber -ne '9999') { - $sharePath = $null - $siteCfgPath = 'C:\Enrollment\site-config.json' - if (Test-Path $siteCfgPath) { - try { - $cfg = Get-Content $siteCfgPath -Raw | ConvertFrom-Json - # Alias-aware lookup: prefer new key, fall back to legacy. - # PowerShell 5.1 has no null-coalesce operator. - $sharePath = $cfg.pcProfiles.'gea-shopfloor-collections'.ntlarsBackupSharePath - if (-not $sharePath) { $sharePath = $cfg.pcProfiles.'Standard-Machine'.ntlarsBackupSharePath } - } catch {} - } - - if ($sharePath) { - try { - . (Join-Path $PSScriptRoot 'Restore-EDncReg.ps1') - $mounted = Mount-SFLDShare -SharePath $sharePath -DriveLetter 'V:' - if ($mounted) { - try { - $out.RegImported = Import-EDncRegBackup -SourceRoot 'V:\' -MachineNumber $NewNumber - } finally { - & net use V: /delete /y 2>$null | Out-Null - } - } else { - Write-Host " Update-MachineNumber: SFLD share unreachable - skipping restore." - } - } catch { - $out.Errors += "ntlars restore failed: $_" - } - } - - # --- UDC settings JSON restore: pull udc_settings_.json - # from the SFLD UDC settings_backups share. At imaging time - # 00-PreInstall-MachineApps.ps1 pulls this from the local - # C:\Enrollment mirror, but a 9999-placeholder PC has no real - # pre-stage. Once the tech sets the real number we have SFLD - # creds, so go direct to the canonical share. --- - $udcSettingsSharePath = $null - if ($cfg) { - try { - $udcSettingsSharePath = $cfg.pcProfiles.'gea-shopfloor-collections'.udcSettingsSharePath - if (-not $udcSettingsSharePath) { $udcSettingsSharePath = $cfg.pcProfiles.'Standard-Machine'.udcSettingsSharePath } - } catch {} - } - if ($udcSettingsSharePath) { - try { - $mountedUdcSet = Mount-SFLDShare -SharePath $udcSettingsSharePath -DriveLetter 'X:' - if ($mountedUdcSet) { - try { - $srcSettings = Join-Path 'X:\' "udc_settings_$NewNumber.json" - if (Test-Path -LiteralPath $srcSettings) { - Get-Process UDC -ErrorAction SilentlyContinue | ForEach-Object { - try { $_.Kill(); $_.WaitForExit(5000) | Out-Null } catch {} - } - Start-Sleep -Milliseconds 500 - $localUdcDir = 'C:\ProgramData\UDC' - if (-not (Test-Path $localUdcDir)) { New-Item -ItemType Directory -Path $localUdcDir -Force | Out-Null } - Copy-Item -LiteralPath $srcSettings -Destination $script:UdcSettingsPath -Force -ErrorAction Stop - $out.UdcSettingsRestored = $true - Write-Host " Update-MachineNumber: UDC settings restored from $srcSettings" - } else { - Write-Host " Update-MachineNumber: no udc_settings_$NewNumber.json on settings_backups share" - } - } finally { - & net use X: /delete /y 2>$null | Out-Null - } - } else { - Write-Host " Update-MachineNumber: UDC settings_backups share unreachable - skipping settings restore." - } - } catch { - $out.Errors += "UDC settings restore failed: $_" - } - } - - # --- UDC data restore: pull CurrentData.json + ArchivedData/ from - # the per-bay backup at \\. - # One-shot: after successful restore, the live backup at the root - # is moved into \migrated\\ so it can't be - # replayed on subsequent reboots or reused for a future PC at the - # same bay. The 'isPlaceholder' guard above ensures this whole - # block only ever fires once per PC's lifetime (placeholder->real - # transition). --- - $udcSharePath = $null - if ($cfg) { - try { - $udcSharePath = $cfg.pcProfiles.'gea-shopfloor-collections'.udcBackupSharePath - if (-not $udcSharePath) { $udcSharePath = $cfg.pcProfiles.'Standard-Machine'.udcBackupSharePath } - } catch {} - } - if ($udcSharePath) { - try { - # N:, never W:. GE-Enforce owns W: for its whole cycle, and this - # runs as SYSTEM in the same drive namespace - taking W: here kills - # the share out from under an in-flight enforce cycle. - $mountedUdc = Mount-SFLDShare -SharePath $udcSharePath -DriveLetter 'N:' - if ($mountedUdc) { - try { - $bayDir = Join-Path 'N:\' $NewNumber - $srcCur = Join-Path $bayDir 'CurrentData.json' - $srcArc = Join-Path $bayDir 'ArchivedData' - if (Test-Path -LiteralPath $srcCur) { - Write-Host " Update-MachineNumber: UDC backup found at $bayDir - restoring." - - # Stop UDC pre-emptively so CurrentData.json isn't locked - Get-Process UDC -ErrorAction SilentlyContinue | ForEach-Object { - try { $_.Kill(); $_.WaitForExit(5000) | Out-Null } catch {} - } - Start-Sleep -Milliseconds 500 - - $localUdcDir = 'C:\ProgramData\UDC' - if (-not (Test-Path $localUdcDir)) { New-Item -ItemType Directory -Path $localUdcDir -Force | Out-Null } - - $localArc = Join-Path $localUdcDir 'ArchivedData' - - # Copy - Copy-Item -LiteralPath $srcCur -Destination (Join-Path $localUdcDir 'CurrentData.json') -Force -ErrorAction Stop - if (Test-Path -LiteralPath $srcArc) { - if (Test-Path -LiteralPath $localArc) { Remove-Item -LiteralPath $localArc -Recurse -Force -ErrorAction SilentlyContinue } - Copy-Item -LiteralPath $srcArc -Destination $localArc -Recurse -Force -ErrorAction Stop - } - - # Move live backup -> migrated// (one-shot consumption) - $stamp = (Get-Date -Format 'yyyy-MM-ddTHH-mm-ssZ') - $migDir = Join-Path $bayDir 'migrated' - $migStamp = Join-Path $migDir $stamp - if (-not (Test-Path -LiteralPath $migDir)) { New-Item -ItemType Directory -Path $migDir -Force | Out-Null } - if (-not (Test-Path -LiteralPath $migStamp)) { New-Item -ItemType Directory -Path $migStamp -Force | Out-Null } - - Move-Item -LiteralPath $srcCur -Destination (Join-Path $migStamp 'CurrentData.json') -Force -ErrorAction Stop - if (Test-Path -LiteralPath $srcArc) { - Move-Item -LiteralPath $srcArc -Destination (Join-Path $migStamp 'ArchivedData') -Force -ErrorAction Stop - } - $bakManifest = Join-Path $bayDir 'backup.manifest.json' - if (Test-Path -LiteralPath $bakManifest) { - Move-Item -LiteralPath $bakManifest -Destination (Join-Path $migStamp 'backup.manifest.json') -Force -ErrorAction SilentlyContinue - } - - # Audit manifest in migrated// - $localArcInfo = if (Test-Path $localArc) { Get-ChildItem $localArc -Recurse -File -ErrorAction SilentlyContinue } else { @() } - $restoreManifest = [ordered]@{ - RestoredAt = (Get-Date -Format 'o') - DestinationHostname = $env:COMPUTERNAME - DestinationUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name - MachineNumber = $NewNumber - CurrentDataBytes = (Get-Item (Join-Path $localUdcDir 'CurrentData.json')).Length - ArchivedDataFiles = $localArcInfo.Count - ArchivedDataBytes = ($localArcInfo | Measure-Object Length -Sum).Sum - RestoredVia = 'Update-MachineNumber.ps1' - } - $restoreManifest | ConvertTo-Json | Set-Content -Path (Join-Path $migStamp 'restore.manifest.json') -Encoding UTF8 - - $out.UdcRestored = $true - Write-Host " Update-MachineNumber: UDC restore OK (consumed -> migrated\$stamp\)" - } else { - Write-Host " Update-MachineNumber: no UDC backup at $bayDir (fresh PC, no prior data)" - } - } finally { - & net use N: /delete /y 2>$null | Out-Null - } - } else { - Write-Host " Update-MachineNumber: UDC backup share unreachable - skipping UDC restore." - } - } catch { - $out.Errors += "UDC restore failed: $_" - } - } - } - - # --- Stop UDC before editing its JSON (avoid stale shutdown write) --- - Get-Process UDC -ErrorAction SilentlyContinue | ForEach-Object { - try { $_.Kill(); $_.WaitForExit(5000) | Out-Null } catch {} - } - Start-Sleep -Seconds 1 - - # --- Update UDC settings JSON --- - # -ErrorAction Stop on the WRITE so PermissionDenied / IO errors become - # terminating and actually hit the catch block. Without this, the cmdlet - # writes a non-terminating error (visible in transcript) but flow - # continues + $out.UdcUpdated is set to $true, leading the dialog to - # report "UDC updated" when the file write actually failed. - if (Test-Path $script:UdcSettingsPath) { - try { - $json = Get-Content $script:UdcSettingsPath -Raw -ErrorAction Stop | ConvertFrom-Json - $json.GeneralSettings.MachineNumber = $NewNumber - $json | ConvertTo-Json -Depth 99 | Set-Content -Path $script:UdcSettingsPath -Encoding UTF8 -ErrorAction Stop - $out.UdcUpdated = $true - } catch { - $out.Errors += "UDC update failed: $_" - } - } - - # --- Update eDNC registry --- - # Same -ErrorAction Stop reasoning as above. Set-ItemProperty's - # PermissionDenied is non-terminating by default; without -ErrorAction - # Stop, the catch block never fires and $out.EdncUpdated=$true gets set - # despite the write failing. This is the bug that made the 13:35:39 - # tech run on FGY07FZ3 report "eDNC updated to 3005 / All updates - # succeeded" while the actual reg value stayed at 9999. - if (Test-Path $script:EdncRegPath) { - try { - Set-ItemProperty -Path $script:EdncRegPath -Name MachineNo -Value $NewNumber -Type String -Force -ErrorAction Stop - $out.EdncUpdated = $true - } catch { - $out.Errors += "eDNC update failed: $_" - } - } - - # --- Relaunch UDC with new args --- - if ((Test-Path $script:UdcExePath) -and $out.UdcUpdated) { - try { - # UDC.exe arg signature: quoted site name (with space), then - # dash-prefixed machine number. Example: UDC.exe "West Jefferson" -7605 - Start-Process -FilePath $script:UdcExePath -ArgumentList @("`"$Site`"", "-$NewNumber") - } catch { - $out.Errors += "UDC relaunch failed: $_" - } - } - - # --- Update MTConnect Devices.xml (per-variant) + restart agent services --- - # MTConnect deploys via the GE-Enforce manifest engine + the - # Install_MTConnect_ExisDir_BatConvert.ps1 wrapper. Devices.xml on disk - # has the machine number embedded in the attrs. - # When the tech changes 9999 -> real number, those attrs need to follow, - # OR MTConnect data will keep reporting under the old/wrong identity. - # - # We do an inline substitution rather than re-running the full wrapper - # because the tech may not have credential delegation to the SFLD share - # from their interactive session. - $out.MTConnectUpdated = @() - # Drive this off "is the service installed?" rather than file existence: - # Fanuc and Okuma both deploy to C:\MTConnect\Agent\, distinguishable only - # by the registered service name (NTFS is case-insensitive so the two - # devices.xml / Devices.xml entries collapse to the same file). Without - # this filter, the Okuma branch on an Okuma PC sees the file already - # rewritten by the (no-op) Fanuc branch and skips the service restart. - # Okuma and eDNC keep the name in one file only - verified across 7 Okuma - # and 15 eDNC bay captures - so the simple edit is right for them. Fanuc and - # Makino are handled below instead. - $mtcVariants = @( - @{ Service='MTConnect Agent Okuma'; Path='C:\MTConnect\Agent\Devices.xml' }, - @{ Service='MTConnect eDNC Agent'; Path='C:\MTConnect_eDNC\Agent\Devices.xml' } - ) - foreach ($v in $mtcVariants) { - $svc = Get-Service -Name $v.Service -ErrorAction SilentlyContinue - if (-not $svc) { continue } - if (-not (Test-Path -LiteralPath $v.Path)) { continue } - try { - $content = Get-Content -LiteralPath $v.Path -Raw -ErrorAction Stop - # Find the Device root's name= attr to discover the OLD identifier - if ($content -notmatch ']+name="([^"]+)"') { continue } - $oldName = $matches[1] - # Most variants encode machine number as the trailing digit run: - # Fanuc/Makino: name="9999" -> trailing 9999 - # OKUMA: name="loc9999" -> trailing 9999, prefix 'loc' - # eDNC: name="eDNC_OKUMA9999" -> trailing 9999, prefix 'eDNC_OKUMA' - if ($oldName -notmatch '^(.*?)(\d+)$') { continue } - $prefix = $matches[1] - $oldDigits = $matches[2] - if ($oldDigits -eq $NewNumber) { continue } # already correct - $oldFull = "$prefix$oldDigits" - $newFull = "$prefix$NewNumber" - $oldEsc = [regex]::Escape($oldFull) - # Quoted attr value: name="X" / uuid="X" / id="X" - $content = $content -replace ('"' + $oldEsc + '"'), ('"' + $newFull + '"') - # OKUMA-style with serial after dot: uuid="locX." - $content = $content -replace ('"' + $oldEsc + '\.'), ('"' + $newFull + '.') - Set-Content -LiteralPath $v.Path -Value $content -NoNewline -ErrorAction Stop - $out.MTConnectUpdated += "$($v.Path) ($oldFull -> $newFull)" - try { Restart-Service -Name $v.Service -Force -ErrorAction Stop } - catch { $out.Errors += "Restart $($v.Service) failed: $_" } - } catch { - $out.Errors += "MTConnect Devices.xml update failed for $($v.Path): $_" - } - } - - # --- Multi-file variants: rename every copy, services stopped first --- - # Fanuc and Makino each keep the device name in more than one file, and the - # agent's copy alone is not enough - the adapter goes on streaming under the - # old identity, which is how seven captured Fanuc bays ended up with the - # agent on the right machine number and the adapter on the bay it was - # imaged from. - $multiFileVariants = @( - @{ - Probe = 'MTConnect Agent Fanuc' - Root = 'C:\MTConnect' - Services = @('MTConnect Adapter Fanuc', 'MTConnect Agent Fanuc') - Targets = @( - @{ Path = 'Agent\devices.xml'; Kind = 'attr' }, - @{ Path = 'Adapter\devices.xml'; Kind = 'attr' }, - @{ Path = 'Adapter\adapter.xml'; Kind = 'elem' } - ) - }, - @{ - Probe = 'Makino MTConnect Agent' - Root = 'C:\Makino-MTConnect' - Services = @('Makino Adapter Manager', 'Makino MTConnect Agent') - Targets = @( - @{ Path = 'Agent\Devices.xml'; Kind = 'attr' }, - @{ Path = 'Agent\Devices.EDM.xml'; Kind = 'attr' }, - @{ Path = 'Data\AdapterDataFile.xml'; Kind = 'name' }, - @{ Path = 'Agent\Agent.cfg'; Kind = 'cfg' } - ) - } - ) - foreach ($variant in $multiFileVariants) { - if (-not (Get-Service -Name $variant.Probe -ErrorAction SilentlyContinue)) { continue } - $renamed = Update-MTConnectVariantName -NewNumber $NewNumber ` - -Root $variant.Root -Targets $variant.Targets -Services $variant.Services - $out.MTConnectUpdated += $renamed.Updated - $out.Errors += $renamed.Errors - } - - # Keep C:\Enrollment\machine-number.txt in sync. Post-imaging GE-Enforce - # prefers eDNC reg, but imaging-time scripts (Install-FromManifest - # TargetMachineNumbers filter, 01-eDNC.ps1, 03-RestoreEDncConfig.ps1) - # still read this file. Avoid drift on reassign. - try { - $mnFile = 'C:\Enrollment\machine-number.txt' - $mnDir = Split-Path -Parent $mnFile - if (-not (Test-Path $mnDir)) { New-Item -ItemType Directory -Path $mnDir -Force | Out-Null } - Set-Content -Path $mnFile -Value $NewNumber -Encoding UTF8 -NoNewline - $out.MachineNumberTxtUpdated = $true - } catch { - $out.Errors += "machine-number.txt update failed: $_" - } - - return $out -} diff --git a/playbook/shopfloor-setup/Stage-Dispatcher.ps1 b/playbook/shopfloor-setup/Stage-Dispatcher.ps1 deleted file mode 100644 index 15878d6..0000000 --- a/playbook/shopfloor-setup/Stage-Dispatcher.ps1 +++ /dev/null @@ -1,213 +0,0 @@ -# Stage-Dispatcher.ps1 - Chain controller for the shopfloor imaging pipeline. -# -# Reads C:\Enrollment\setup-stage.txt to know which step of the imaging -# process we're in, launches the right script, advances the stage, and -# re-registers itself via RunOnce so the next logon picks up the next step. -# -# STAGE CHAIN: -# "shopfloor-setup" -> Run-ShopfloorSetup.ps1 (installs apps, deferred org) -# Run-ShopfloorSetup reboots via shutdown /r /t 10; -# dispatcher has ~10 seconds to write the next stage -# and re-register RunOnce before the machine goes down. -# -# "sync-intune" -> Monitor-IntuneProgress.ps1 -Unattended -# Monitor exits 2 = pre-reboot Y pressed (no reboot yet) -# -> dispatcher re-registers RunOnce, initiates reboot -# Monitor exits 0 = post-reboot install complete -# -> dispatcher advances to configure-pc -# -# "configure-pc" -> Configure-PC.ps1 (startup items, machine number) -# -> dispatcher deletes stage file. Chain complete. -# -# (file missing) -> exit 0. Setup is done, nothing to do. -# -# ENTRY POINT: -# Registered as a RunOnce value by run-enrollment.ps1 after PPKG install. -# Each stage re-registers RunOnce for the next boot. RunOnce entries are -# consumed by Windows after execution, so no cleanup needed. -# -# LOGGING: -# Appends to C:\Logs\SFLD\stage-dispatcher.log via Start-Transcript. - -$ErrorActionPreference = 'Continue' - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { - try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$transcriptPath = Join-Path $logDir 'stage-dispatcher.log' -try { Start-Transcript -Path $transcriptPath -Append -Force | Out-Null } catch {} - -Write-Host "" -Write-Host "================================================================" -Write-Host "=== Stage-Dispatcher.ps1 $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ===" -Write-Host "================================================================" -Write-Host "Running as: $([Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -# --- Paths --- -$stageFile = 'C:\Enrollment\setup-stage.txt' -$dispatcherPath = $MyInvocation.MyCommand.Path -$enrollDir = 'C:\Enrollment' -$shopfloorDir = Join-Path $enrollDir 'shopfloor-setup\Shopfloor' -$runOnceKey = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce' - -# --- Stage file --- -if (-not (Test-Path -LiteralPath $stageFile)) { - Write-Host "No stage file found at $stageFile - setup complete, nothing to do." - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -$stage = (Get-Content -LiteralPath $stageFile -First 1).Trim() -Write-Host "Current stage: $stage" - -# --- Helper: re-register this dispatcher to run at next logon --- -function Register-NextRun { - try { - Set-ItemProperty -Path $runOnceKey -Name 'ShopfloorSetup' ` - -Value "powershell.exe -NoProfile -ExecutionPolicy Bypass -File `"$dispatcherPath`"" ` - -Type String -Force -ErrorAction Stop - Write-Host "RunOnce registered for next logon." - } catch { - Write-Warning "Failed to register RunOnce: $_" - } -} - -# --- Stage dispatch --- -switch ($stage) { - - 'shopfloor-setup' { - Write-Host "" - Write-Host "--- Stage: shopfloor-setup ---" - $script = Join-Path $enrollDir 'Run-ShopfloorSetup.ps1' - if (-not (Test-Path -LiteralPath $script)) { - Write-Warning "Run-ShopfloorSetup.ps1 not found at $script" - break - } - - # Defensive: top up AutoLogonCount so SupportUser keeps auto-logging - # in across any vendor-installer-forced reboots during this stage. - # The unattend XML sets LogonCount=7 at install; typical imaging burns - # through several reboots (Office, Oracle, FormTracePak forced reboot, - # Run-ShopfloorSetup explicit reboot, stage advances) and the unplanned - # FormTracePak reboot can push the counter past 0 - clearing - # AutoAdminLogon and leaving the bay parked at the login screen with - # the dispatcher unable to fire. Set the counter to 10 every time this - # stage runs so the budget is restored. When sync-intune finishes the - # whole pipeline, AutoAdminLogon is left to decrement to 0 naturally; - # by then lockdown's own Autologon.exe has taken over for ShopFloor. - try { - Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' ` - -Name 'AutoLogonCount' -Value 10 -Type DWord -ErrorAction Stop - Write-Host "Topped up AutoLogonCount to 10 for SupportUser autologon resilience." - } catch { - Write-Warning "Failed to top up AutoLogonCount: $_" - } - - # Defensive: re-register RunOnce BEFORE calling Run-ShopfloorSetup. - # Setup chains we don't control (FormTracePak Setup.exe, eDNC MSI, - # any vendor installer that forces an immediate reboot) can cut - # the script off mid-flight. Without this, the dispatcher never - # returns from & $script and the post-call Register-NextRun never - # fires, leaving the next boot with no RunOnce + a stalled image. - # With this defensive register the next boot re-fires the same - # dispatcher, which re-reads the still-'shopfloor-setup' stage - # file, re-runs Run-ShopfloorSetup (every step is idempotent + - # detects already-installed state), and converges. Once - # Run-ShopfloorSetup returns normally we re-register again below - # before advancing to the next stage - cheap, idempotent. - Register-NextRun - - # -FromDispatcher bypasses the stage-file gate at the top of - # Run-ShopfloorSetup (which would otherwise see the stage file - # and exit immediately thinking it should defer to us). - & $script -FromDispatcher - - # Cancel whatever reboot Run-ShopfloorSetup scheduled (shutdown /r - # /t 10) so we can advance the stage and re-register RunOnce WITHOUT - # racing a 10-second fuse. Then reboot on our own terms. - Write-Host "Run-ShopfloorSetup.ps1 finished. Canceling its reboot so we can advance safely." - cmd /c "shutdown /a 2>nul" *>$null - Set-Content -LiteralPath $stageFile -Value 'sync-intune' -Force - Register-NextRun - Write-Host "Stage advanced to sync-intune. Rebooting." - shutdown /r /t 5 - } - - 'sync-intune' { - Write-Host "" - Write-Host "--- Stage: sync-intune ---" - $monitor = Join-Path $shopfloorDir 'lib\Monitor-IntuneProgress.ps1' - if (-not (Test-Path -LiteralPath $monitor)) { - Write-Warning "Monitor-IntuneProgress.ps1 not found at $monitor" - break - } - - # Launch the monitor in THIS console window (interactive - tech sees - # QR code + status table). -Unattended makes it exit with a status - # code instead of prompting/rebooting, so we keep control here. - Write-Host "Launching Intune sync monitor (unattended mode)..." - & $monitor -Unattended - $monitorExit = $LASTEXITCODE - Write-Host "Monitor exited with code: $monitorExit" - - switch ($monitorExit) { - 0 { - # Post-reboot install complete. All milestones reached. - # Chain directly to Configure-PC (same session, no reboot). - Write-Host "Post-reboot install complete. Launching Configure-PC..." - Set-Content -LiteralPath $stageFile -Value 'configure-pc' -Force - - $configScript = Join-Path $shopfloorDir 'Configure-PC.ps1' - if (Test-Path -LiteralPath $configScript) { - & $configScript - } else { - Write-Warning "Configure-PC.ps1 not found at $configScript" - } - - # Chain complete. - Write-Host "Imaging chain complete. Removing stage file." - Remove-Item -LiteralPath $stageFile -Force -ErrorAction SilentlyContinue - } - 2 { - # Pre-reboot deployment done. User confirmed reboot. - # Re-register RunOnce so we come back after the reboot to - # monitor the post-reboot install phase. - Write-Host "Pre-reboot phase complete. Rebooting..." - Register-NextRun - # Stage stays at 'sync-intune' - on next boot the monitor - # will detect post-reboot state and monitor until done. - shutdown /r /t 5 - } - default { - Write-Warning "Unexpected monitor exit code: $monitorExit" - Write-Host "Re-registering for retry on next logon." - Register-NextRun - } - } - } - - 'configure-pc' { - Write-Host "" - Write-Host "--- Stage: configure-pc ---" - $configScript = Join-Path $shopfloorDir 'Configure-PC.ps1' - if (Test-Path -LiteralPath $configScript) { - & $configScript - } else { - Write-Warning "Configure-PC.ps1 not found at $configScript" - } - - Write-Host "Imaging chain complete. Removing stage file." - Remove-Item -LiteralPath $stageFile -Force -ErrorAction SilentlyContinue - } - - default { - Write-Warning "Unknown stage: '$stage'. Removing stage file." - Remove-Item -LiteralPath $stageFile -Force -ErrorAction SilentlyContinue - } -} - -Write-Host "" -Write-Host "=== Stage-Dispatcher.ps1 finished $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ===" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/Verify-And-Heal-Staging.ps1 b/playbook/shopfloor-setup/Verify-And-Heal-Staging.ps1 index 50589dd..de3545e 100644 --- a/playbook/shopfloor-setup/Verify-And-Heal-Staging.ps1 +++ b/playbook/shopfloor-setup/Verify-And-Heal-Staging.ps1 @@ -6,18 +6,13 @@ shopfloor PC actually arrived - and re-pull (heal) anything missing from the enrollment share. Runs in full Windows (reliable network), so it is immune to the WinPE samba-idle-drop that loses copies during the WIM apply. -Covers the generic Fetch payload (shopfloor-setup tree + preinstall bundle) AND -the heavy per-type payloads that Fetch-StagingPayload does NOT pull today: - - CMM C:\CMM-Install (+ selected bay's backup C:\CMM-Install\backups\) - - Keyence C:\KeyenceInstall\ (MSI + Data*.cab) - - WaxTrace C:\WaxTrace-Install (bundle + bay-matched FormTracePak ISO) -These are the ones that silently go missing when WinPE staging runs out of time -(idle-dead Y: mount) before reboot. +Covers the Fetch payload: Run-ShopfloorSetup.ps1, the shopfloor-setup\Shopfloor +tree, and the pre-install bundle (preinstall.json, postppkg.json, installers). Designed to be: - run manually on a problem PC (Verify-And-Heal-Staging.bat), or - - called from the pre-install phase before 00-PreInstall-MachineApps so a bay is - never left under-provisioned. + - run as its own unattend step after Fetch-StagingPayload, so a bay is never + left under-provisioned. Idempotent. Uses robocopy per item, which compares size + timestamp on every file, so it re-pulls anything MISSING or PARTIAL (e.g. a truncated MSI that @@ -60,10 +55,9 @@ if (-not $SharePass) { $SharePass=$defPass } # --- identity --- function ReadTxt($p){ if (Test-Path -LiteralPath $p) { (Get-Content -LiteralPath $p -First 1 -EA 0).Trim() } else { '' } } $pcType = ReadTxt 'C:\Enrollment\pc-type.txt' -$cmmid = ReadTxt 'C:\Enrollment\cmm\cmmid.txt' Log "=== Verify-And-Heal-Staging ===" -Log "share=$ShareUnc user=$ShareUser pcType=$(if($pcType){$pcType}else{'(none)'}) cmmid=$(if($cmmid){$cmmid}else{'(none)'}) verifyOnly=$VerifyOnly" +Log "share=$ShareUnc user=$ShareUser pcType=$(if($pcType){$pcType}else{'(none)'}) verifyOnly=$VerifyOnly" # --- expected payload manifest ------------------------------------------------- # Each: Label, Src (under share), Dst, Mode (File|Dir), Verify (path that must @@ -76,46 +70,8 @@ function Add-Item($Label,$Src,$Dst,$Mode,$Verify,$Files=$null,$Optional=$false,$ $ENR='C:\Enrollment'; $SFD='C:\Enrollment\shopfloor-setup'; $PIN='C:\PreInstall' Add-Item 'Run-ShopfloorSetup.ps1' 'shopfloor-setup' $ENR 'File' (Join-Path $ENR 'Run-ShopfloorSetup.ps1') @('Run-ShopfloorSetup.ps1') Add-Item 'Shopfloor baseline' 'shopfloor-setup\Shopfloor' (Join-Path $SFD 'Shopfloor') 'Dir' (Join-Path $SFD 'Shopfloor') -Add-Item 'common' 'shopfloor-setup\common' (Join-Path $SFD 'common') 'Dir' (Join-Path $SFD 'common') -Add-Item '_ntlars-backups' 'shopfloor-setup\_ntlars-backups' (Join-Path $SFD '_ntlars-backups') 'Dir' (Join-Path $SFD '_ntlars-backups') $null $true -if ($pcType) { - Add-Item "type:$pcType" "shopfloor-setup\$pcType" (Join-Path $SFD $pcType) 'Dir' (Join-Path $SFD $pcType) -} -Add-Item 'preinstall.json' 'pre-install' $PIN 'File' (Join-Path $PIN 'preinstall.json') @('preinstall.json') +Add-Item 'app lists' 'pre-install' $PIN 'File' (Join-Path $PIN 'preinstall.json') @('preinstall.json', 'postppkg.json') Add-Item 'preinstall installers' 'pre-install\installers' (Join-Path $PIN 'installers') 'Dir' (Join-Path $PIN 'installers') -Add-Item 'udc-backups' 'pre-install\udc-backups' (Join-Path $PIN 'udc-backups') 'Dir' (Join-Path $PIN 'udc-backups') $null $true -# --- heavy CMM payload (the gap) --- -if ($pcType -eq 'gea-shopfloor-cmm') { - Add-Item 'CMM bundle' 'installers-post\cmm' 'C:\CMM-Install' 'Dir' 'C:\CMM-Install\cmm-manifest.json' $null $false 'backups' - if ($cmmid) { - Add-Item "CMM backup ($cmmid)" "installers-post\cmm\backups\$cmmid" "C:\CMM-Install\backups\$cmmid" 'Dir' "C:\CMM-Install\backups\$cmmid" $null $true - } -} -# --- heavy Keyence payload (same gap as CMM: WinPE-only staged, never re-pulled -# by Fetch-StagingPayload). Only the selected model bundle lands under -# C:\KeyenceInstall\. Verify on the model manifest so a missing/partial -# Data1.cab (the 700 MB - 2 GB payload msiexec SECREPAIR-hashes) gets re-pulled. --- -if ($pcType -eq 'gea-shopfloor-keyence') { - $kmodel = ReadTxt 'C:\Enrollment\keyence-model.txt' - if (-not $kmodel) { $kmodel = 'vr6000' } - Add-Item "Keyence bundle ($kmodel)" "installers-post\keyence\$kmodel" "C:\KeyenceInstall\$kmodel" 'Dir' "C:\KeyenceInstall\$kmodel\manifest.json" -} -# --- heavy WaxTrace payload (same gap as CMM/Keyence). Two parts, mirroring the -# three-step WinPE stage: (1) the bundle minus the formtracepak\ ISO dir, and -# (2) ONLY the bay's matched FORMTRACEPAK-V.iso, keyed on the version -# resolve-bay-config wrote to C:\Enrollment\waxtrace\version.txt during WinPE. -# If version.txt is missing (mount died before the resolver ran) the ISO cannot -# be re-pulled here - the bundle+resolver still heal, and resolve-bay-config can -# be re-run manually to regenerate version.txt then re-run this heal. --- -if ($pcType -eq 'gea-shopfloor-waxtrace') { - Add-Item 'WaxTrace bundle' 'installers-post\waxtrace' 'C:\WaxTrace-Install' 'Dir' 'C:\WaxTrace-Install\waxtrace-manifest.json' $null $false 'formtracepak' - $wtver = ReadTxt 'C:\Enrollment\waxtrace\version.txt' - if ($wtver) { - Add-Item "WaxTrace FTPak V$wtver" 'installers-post\waxtrace\formtracepak' 'C:\WaxTrace-Install\formtracepak' 'File' "C:\WaxTrace-Install\formtracepak\FORMTRACEPAK-V$wtver.iso" @("FORMTRACEPAK-V$wtver.iso") - } else { - Log 'WaxTrace: version.txt absent - cannot heal the bay-specific FormTracePak ISO (re-run resolve-bay-config then re-run heal)' 'WARN' - } -} # --- robocopy-based verify/heal ----------------------------------------------- # Presence alone is NOT trusted: a partially transferred file (e.g. a truncated diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/0000.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/0000.reg deleted file mode 100644 index 4d281c2..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/0000.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGT8K673ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="SERIAL" -"MachineNo"="0000" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="2Line" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="YES" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/0600.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/0600.reg deleted file mode 100644 index 4afc241..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/0600.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G3ZH3SZ2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="169.254.0.1" -"SocketNo"="8192" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="MARKER" -"NcIF"="SERIAL" -"MachineNo"="0600" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC420" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM2" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/0614.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/0614.reg deleted file mode 100644 index cdc2c7c..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/0614.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBCTZRZ2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="169.254.0.1" -"SocketNo"="8192" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="MARKER" -"NcIF"="SERIAL" -"MachineNo"="0614" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="NO" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC420" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2001.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2001.reg deleted file mode 100644 index 5e8736b..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2001.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GB07T5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="Left" -"Path2Name"="Right" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2001" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM2" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2003.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2003.reg deleted file mode 100644 index 3cc3251..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2003.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G25TJRT3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2003" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2005.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2005.reg deleted file mode 100644 index 026b327..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2005.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFGMFDW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2005" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="dword:00000000" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2007.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2007.reg deleted file mode 100644 index e0456a9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2007.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBK76CW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2007" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2008.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2008.reg deleted file mode 100644 index 1ae36f2..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2008.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBK76CW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2008" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2009.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2009.reg deleted file mode 100644 index 5961296..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2009.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G8PSW0R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2009" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2010.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2010.reg deleted file mode 100644 index 65abaf4..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2010.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G8PSW0R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2010" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2011.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2011.reg deleted file mode 100644 index 4d06263..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2011.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GF7ZN7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2011" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2012.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2012.reg deleted file mode 100644 index c816538..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2012.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GF7ZN7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2012" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2013.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2013.reg deleted file mode 100644 index c577edd..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2013.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJBJC724ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2013" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.wjs.geaerospace.net" -"FtpHostSecondary"="tsgwp00525.wjs.geaerospace.net" -"FtpAccount"="aeroad\\sv0001369" -"FtpPasswd"="QT9gqxx67w19oGoJ" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2014.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2014.reg deleted file mode 100644 index 6657749..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2014.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJBJC724ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2014" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.wjs.geaerospace.net" -"FtpHostSecondary"="tsgwp00525.wjs.geaerospace.net" -"FtpAccount"="aeroad\\sv0001369" -"FtpPasswd"="QT9gqxx67w19oGoJ" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2016.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2016.reg deleted file mode 100644 index b527129..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2016.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G6ZQFPR3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2016" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM2" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2017.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2017.reg deleted file mode 100644 index 782a22c..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2017.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G32DD5K3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2017" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2018.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2018.reg deleted file mode 100644 index cd9f542..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2018.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G32DD5K3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2018" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2019.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2019.reg deleted file mode 100644 index 0d015a3..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2019.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJN9PWM3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2019" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2020.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2020.reg deleted file mode 100644 index 0a59d68..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2020.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJN9PWM3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2020" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2021.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2021.reg deleted file mode 100644 index 0cc5eec..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2021.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1XN78Y3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2021" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2024.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2024.reg deleted file mode 100644 index ddf65a9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2024.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G907T5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2024" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2025.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2025.reg deleted file mode 100644 index d3efc9d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2025.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBB8Q2W2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2025" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2026.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2026.reg deleted file mode 100644 index f2bdc23..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2026.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBB8Q2W2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2026" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2027.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2027.reg deleted file mode 100644 index 4590518..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2027.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G9WMFDW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2027" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2029.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2029.reg deleted file mode 100644 index 49861c3..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2029.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G9WQDDW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2029" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2031.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2031.reg deleted file mode 100644 index a5ed19e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2031.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDR978B3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2031" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/2032.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/2032.reg deleted file mode 100644 index 879fb5a..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/2032.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDR978B3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="2032" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3002.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3002.reg deleted file mode 100644 index f5394d6..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3002.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBYSH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="3002" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3003.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3003.reg deleted file mode 100644 index 064e186..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3003.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G5N9PWM3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT Spindle" -"Path2Name"="RIGHT Spindle" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="3003" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.wjs.geaerospace.net" -"FtpHostSecondary"="tsgwp00525.wjs.geaerospace.net" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3006.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3006.reg deleted file mode 100644 index f8a1642..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3006.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7NMG3D4ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="3006" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3007.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3007.reg deleted file mode 100644 index 0bcde97..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3007.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGBWYMH3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3007" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.WJS.GEAEROSPACE.NET" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3008.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3008.reg deleted file mode 100644 index 82bac3c..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3008.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGBWYMH3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3008" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.WJS.GEAEROSPACE.NET" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3009.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3009.reg deleted file mode 100644 index 9340602..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3009.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GD0N20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3009" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3010.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3010.reg deleted file mode 100644 index 24844c7..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3010.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GD0N20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3010" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3011.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3011.reg deleted file mode 100644 index 9b0a811..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3011.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G41733Z3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3011" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3012.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3012.reg deleted file mode 100644 index d05eb29..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3012.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G41733Z3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3012" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3013.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3013.reg deleted file mode 100644 index 2c0b94a..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3013.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDNYTBM2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3013" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3014.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3014.reg deleted file mode 100644 index ac4f209..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3014.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDNYTBM2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3014" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3015.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3015.reg deleted file mode 100644 index 8851861..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3015.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJ1DD5K3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3015" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3016.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3016.reg deleted file mode 100644 index 79f7ff9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3016.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJ1DD5K3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3016" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3017.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3017.reg deleted file mode 100644 index 5097469..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3017.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBYNH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3017" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3018.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3018.reg deleted file mode 100644 index a16023d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3018.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBYNH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3018" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3019.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3019.reg deleted file mode 100644 index f479f6d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3019.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GHV5V7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3019" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3020.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3020.reg deleted file mode 100644 index 011a505..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3020.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GHV5V7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3020" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3021.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3021.reg deleted file mode 100644 index a4a7595..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3021.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4H9KF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3021" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.rd.ds.ge.com" -"FtpHostSecondary"="tsgwp00525.rd.ds.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3022.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3022.reg deleted file mode 100644 index c3f6882..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3022.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4H9KF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3022" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.rd.ds.ge.com" -"FtpHostSecondary"="tsgwp00525.rd.ds.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3023.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3023.reg deleted file mode 100644 index cfc0a36..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3023.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDR658B3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3023" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3024.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3024.reg deleted file mode 100644 index 0183efc..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3024.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDR658B3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3024" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3025.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3025.reg deleted file mode 100644 index 7c9183b..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3025.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4CJC724ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3025" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3027.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3027.reg deleted file mode 100644 index 2f7073a..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3027.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G8PMG3D4ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT Spindle" -"Path2Name"="RIGHT Spindle" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3027" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3029.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3029.reg deleted file mode 100644 index e955d7c..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3029.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBWTH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3029" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3030.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3030.reg deleted file mode 100644 index 01125c8..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3030.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBWTH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3030" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3031.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3031.reg deleted file mode 100644 index 3d87d03..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3031.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFN9PWM3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3031" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3033.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3033.reg deleted file mode 100644 index c4faafa..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3033.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBZMH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3033" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3034.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3034.reg deleted file mode 100644 index 325a51a..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3034.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBZMH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3034" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3035.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3035.reg deleted file mode 100644 index 5e39101..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3035.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDJGFRP2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3035" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM5" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="MarkZebra" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="YES" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3036.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3036.reg deleted file mode 100644 index 95d9244..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3036.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDJGFRP2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3036" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM5" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="MarkZebra" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="YES" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3037.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3037.reg deleted file mode 100644 index 5bbc34f..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3037.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJJ76CW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3037" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3038.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3038.reg deleted file mode 100644 index 805a8a8..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3038.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJJ76CW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3038" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3039.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3039.reg deleted file mode 100644 index fd13133..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3039.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G9WRDDW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3039" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3041.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3041.reg deleted file mode 100644 index 019079e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3041.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFG8FDW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3041" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3042.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3042.reg deleted file mode 100644 index 4638d5b..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3042.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFG8FDW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3042" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3043.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3043.reg deleted file mode 100644 index c0f61a9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3043.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4HCHF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3043" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3044.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3044.reg deleted file mode 100644 index c3b25aa..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3044.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4HCHF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="YES" -"Path1Name"="LEFT" -"Path2Name"="RIGHT" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3044" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000010 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3101.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3101.reg deleted file mode 100644 index 9aa4247..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3101.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDNWYRT3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3101" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3102.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3102.reg deleted file mode 100644 index 4ea3f3d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3102.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1K76CW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3102" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3103.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3103.reg deleted file mode 100644 index 9d1fd38..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3103.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1JMWH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3103" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3104.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3104.reg deleted file mode 100644 index 4640e55..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3104.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GCTJ20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3104" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3105.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3105.reg deleted file mode 100644 index c2fb9fd..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3105.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G8RJ20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3105" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM2" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3106.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3106.reg deleted file mode 100644 index 445cc93..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3106.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4HCDF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3106" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM5" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3107.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3107.reg deleted file mode 100644 index cc8c581..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3107.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4HBLF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3107" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM2" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3108.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3108.reg deleted file mode 100644 index c625208..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3108.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJWDB673ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3108" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3109.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3109.reg deleted file mode 100644 index 24a2ac9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3109.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G82D3853ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3109" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="2Line" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="YES" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.rd.ds.ge.com" -"FtpHostSecondary"="tsgwp00525.rd.ds.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3110.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3110.reg deleted file mode 100644 index c89d5e8..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3110.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G9TJ20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3110" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3111.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3111.reg deleted file mode 100644 index 38b9e17..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3111.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G73N20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3111" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMA-P218428" -"ShrFolder"="MD1\\PROGRAMS" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3112.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3112.reg deleted file mode 100644 index 4b97ab3..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3112.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJ5KW0R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3112" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3113.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3113.reg deleted file mode 100644 index fbed1bc..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3113.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G83N20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3113" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3114.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3114.reg deleted file mode 100644 index 3ea6146..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3114.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GD6KW0R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3114" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="NO" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.wjs.geaerospace.net" -"FtpHostSecondary"="tsgwp00525.wjs.geaerospace.net" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3115.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3115.reg deleted file mode 100644 index dff404d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3115.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGT7H673ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3115" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="2Line" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="YES" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3116.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3116.reg deleted file mode 100644 index b6797a9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3116.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GF3N20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3116" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3117.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3117.reg deleted file mode 100644 index 2d4e8ec..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3117.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GH2N20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3117" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3118.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3118.reg deleted file mode 100644 index dec19dd..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3118.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFZQFPR3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3118" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3119.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3119.reg deleted file mode 100644 index 7830f4e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3119.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1JJXH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3119" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM2" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3120.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3120.reg deleted file mode 100644 index 840a15e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3120.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GC5R20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3120" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3122.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3122.reg deleted file mode 100644 index 29f6a01..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3122.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G31N20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3122" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3123.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3123.reg deleted file mode 100644 index 8e1a434..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3123.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G62DD5K3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3123" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3124.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3124.reg deleted file mode 100644 index 4882f89..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3124.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1JKYH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3124" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3125.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3125.reg deleted file mode 100644 index 4b8e460..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3125.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GC07T5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3125" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.rd.ds.ge.com" -"FtpHostSecondary"="tsgwp00525.rd.ds.ge.com" -"FtpAccount"="logon\\lg672650sd" -"FtpPasswd"="DO78|1QnRnG6t" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3126.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3126.reg deleted file mode 100644 index e06b372..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3126.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GB1GTRT3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3126" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3127.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3127.reg deleted file mode 100644 index b279ff8..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3127.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G5393DX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3127" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3128.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3128.reg deleted file mode 100644 index ad8402d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3128.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBKN7PZ3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3128" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="YES" -"CWRegPath"="C:\\Program Files (x86)\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wifms3.ae.ge.com" -"Secondary"="wifms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3129.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3129.reg deleted file mode 100644 index 6847521..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3129.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G2FYR7Y3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="NO" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="3129" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Okuma" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files (x86)\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="8000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="Mark2D" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525" -"FtpHostSecondary"="tsgwp00525" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM6" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3201.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3201.reg deleted file mode 100644 index dfb0a5e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3201.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7YPWH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3201" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-D6GFL5T" -"ShrFolder"="MD1\\Programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3202.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3202.reg deleted file mode 100644 index ecc9fe1..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3202.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G49GMPR3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3202" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-IBV4GP6" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM5" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3203.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3203.reg deleted file mode 100644 index f5c038a..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3203.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7N9PWM3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3203" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-110BA9H" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3204.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3204.reg deleted file mode 100644 index aa443f6..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3204.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGBX0NH3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3204" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-7MHP0IO" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3205.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3205.reg deleted file mode 100644 index c35f675..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3205.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7YQ9673ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3205" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-8U0750U" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3206.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3206.reg deleted file mode 100644 index 4c2028a..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3206.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4HCBF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3206" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-JJD7BDQ" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3207.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3207.reg deleted file mode 100644 index 72ab1e0..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3207.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GH9ZN7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3207" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-ldgn29e" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3208.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3208.reg deleted file mode 100644 index d3d739a..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3208.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7YQVH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3208" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-H67PTQ6" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3209.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3209.reg deleted file mode 100644 index 6061a25..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3209.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G89TP7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3209" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-SB48JU0" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3210.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3210.reg deleted file mode 100644 index e6a08f0..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3210.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7YQWH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3210" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMAOK-PC9MJGG" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3212.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3212.reg deleted file mode 100644 index 51637f7..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3212.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G8CPG0M3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3212" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="okuma-p218427" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/3213.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/3213.reg deleted file mode 100644 index 8e823c9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/3213.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBF8WRZ2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="OKUMA" -"NcIF"="NTSHR" -"MachineNo"="3213" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Hwacheon" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="OKUMA-P218428" -"ShrFolder"="md1\\programs" -"ShrExt"="min" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4002.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4002.reg deleted file mode 100644 index fb5f0b5..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4002.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G6JLMSZ2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4002" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="Mark2D" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4003.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4003.reg deleted file mode 100644 index 7ec92e1..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4003.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GH20Y2W2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4003" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="Mark2D" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4004.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4004.reg deleted file mode 100644 index 71a4932..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4004.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1JLXH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4004" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="Mark2D" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4005.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4005.reg deleted file mode 100644 index a1a3092..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4005.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GHYTNCX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4005" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files (x86)\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000b -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="STfcmSnhRC" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="hDUnc7" -"Port Id"="COM3" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4007.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4007.reg deleted file mode 100644 index 928634c..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4007.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDGSGH04ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4007" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="Mark2D" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM5" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4008.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4008.reg deleted file mode 100644 index fd1ce21..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4008.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGBX2NH3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4008" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000b - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="Mark2D" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4101.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4101.reg deleted file mode 100644 index a01da8d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4101.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1KMP7X2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.11" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="192.168.1.3" -"Username"="FANUC" -"Password"="YzBib" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4101" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="WJFMS3.ae.ge.com" -"Secondary"="WJFMS3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM5" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4102.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4102.reg deleted file mode 100644 index 5de3aed..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4102.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBWSH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.11" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="192.168.1.3" -"Username"="FANUC" -"Password"="YzBib" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4102" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="WJFMS3.ae.ge.com" -"Secondary"="WJFMS3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4103.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4103.reg deleted file mode 100644 index e612751..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4103.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1P9PWM3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.11" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="192.168.1.11" -"Username"="FANUC" -"Password"="YzBib" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="4103" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="WJFMS3.ae.ge.com" -"Secondary"="WJFMS3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4701.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4701.reg deleted file mode 100644 index cb615c1..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4701.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4HBHF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="" -"SocketNo"="" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fidia" -"NcIF"="NTSHR" -"MachineNo"="4701" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="C:\\Dnc_Files" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"Message Type"="1" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="" -"FtpHostSecondary"="" -"FtpAccount"="" -"FtpPasswd"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="win-2vqamf63g1h" -"ShrFolder"="FidiaDGE\\PROCEDURES" -"ShrExt"="" -"ShrFolder2"="FidiaDGE\\TOOL PATH" -"ShrFolder3"="FidiaDGE\\PROBING" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="VMC" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4702.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4702.reg deleted file mode 100644 index 827c42e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4702.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G99TP7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="" -"SocketNo"="" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fidia" -"NcIF"="NTSHR" -"MachineNo"="4702" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="C:\\Dnc_Files" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="" -"FtpHostSecondary"="" -"FtpAccount"="" -"FtpPasswd"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="PCD2171" -"ShrFolder"="FIDIADGE\\PROCEDURES" -"ShrExt"="" -"ShrFolder2"="FIDIADGE\\TOOL PATH" -"ShrFolder3"="FIDIADGE\\PROBING" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="" -"MachineType"="" -"HostType"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4703.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4703.reg deleted file mode 100644 index e7b2f85..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4703.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFSJ20R3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="" -"SocketNo"="" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fidia" -"NcIF"="NTSHR" -"MachineNo"="4703" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="C:\\Dnc_Files" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"Message Type"="" -"Debug"="" -"MarkerType"="" -"DncPatterns"="" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="" -"FtpHostSecondary"="" -"FtpAccount"="" -"FtpPasswd"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="EKI3" -"ShrFolder"="FidiaDGE\\PROCEDURES" -"ShrExt"="" -"ShrFolder2"="FidiaDGE\\Tool path" -"ShrFolder3"="FidiaDGE\\Probing" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="" -"MachineType"="" -"HostType"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/4704.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/4704.reg deleted file mode 100644 index 01fd5b7..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/4704.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GB9TP7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="" -"SocketNo"="" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fidia" -"NcIF"="NTSHR" -"MachineNo"="4704" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="C:\\Dnc_Files" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"Message Type"="" -"Debug"="" -"MarkerType"="" -"DncPatterns"="" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="" -"FtpHostSecondary"="" -"FtpAccount"="" -"FtpPasswd"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="1601-07" -"ShrFolder"="FidiaDGE\\PROCEDURES" -"ShrExt"="" -"ShrFolder2"="FidiaDGE\\TOOL PATH" -"ShrFolder3"="FidiaDGE\\PROBING" -"ProgIdLimit"="" -"Deletes"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="" -"MachineType"="" -"HostType"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="" -"Secondary"="" -"UserName"="" -"Password"="" -"Port Id"="COM1" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="1000" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/5002.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/5002.reg deleted file mode 100644 index 794c74c..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/5002.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFGF8DW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="HSSB" -"MachineNo"="5002" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Toshiba" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="WJFMS3.ae.ge.com" -"Secondary"="WJFMS3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/5004.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/5004.reg deleted file mode 100644 index 9959816..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/5004.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFGLFDW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="5004" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Toshiba" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="WJFMS3.ae.ge.com" -"Secondary"="WJFMS3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM3" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/5006.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/5006.reg deleted file mode 100644 index 5b76c62..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/5006.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGBWRMH3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="5006" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA\\Toshiba" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="" -"DisableBarcode"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="WJFMS3.ae.ge.com" -"Secondary"="WJFMS3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="101" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/5302.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/5302.reg deleted file mode 100644 index 66501fe..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/5302.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFGD7DW2ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 16" -"NcIF"="EFOCAS" -"MachineNo"="5302" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="..\\shared\\NC-DATA" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="TMC400" -"DncPatterns"="YES" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="Windows" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="WJFMS3.ae.ge.com" -"Secondary"="WJFMS3.ae.ge.com" -"UserName"="dcp_shopwj" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM1" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7401.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7401.reg deleted file mode 100644 index 8461b6d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7401.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GBDC6WX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.0.114" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7401" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7402.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7402.reg deleted file mode 100644 index 61735bb..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7402.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4S96WX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.0.114" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7402" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM2" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7403.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7403.reg deleted file mode 100644 index 5cf6ff3..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7403.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G317T5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.0.114" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7403" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7404.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7404.reg deleted file mode 100644 index 71e660b..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7404.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7S96WX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.0.114" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7404" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7405.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7405.reg deleted file mode 100644 index b1f9cb9..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7405.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G6S96WX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.0.114" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7405" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000010 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7501.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7501.reg deleted file mode 100644 index 2f0b092..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7501.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDK76CW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7501" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000015 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7502.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7502.reg deleted file mode 100644 index 08b2e89..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7502.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G5W5V7V3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7502" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000015 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7503.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7503.reg deleted file mode 100644 index 2a15b3d..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7503.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G6PLY5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7503" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000015 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7504.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7504.reg deleted file mode 100644 index fc12da8..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7504.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GCQLY5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7504" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000015 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7505.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7505.reg deleted file mode 100644 index b896679..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7505.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G8QLY5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7505" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:00000015 -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7506.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7506.reg deleted file mode 100644 index 0bffec4..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7506.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G4H8KF33ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7506" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000015 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7507.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7507.reg deleted file mode 100644 index d90b6b1..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7507.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G82CZ753ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7507" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:00000015 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7601.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7601.reg deleted file mode 100644 index 20f3905..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7601.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDNLY5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7601" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7602.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7602.reg deleted file mode 100644 index f6ae5f4..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7602.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G2G9S624ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7602" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7603.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7603.reg deleted file mode 100644 index 2ceaa45..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7603.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GDQLY5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7603" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7604.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7604.reg deleted file mode 100644 index fc2840e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7604.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GHBRHCW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7604" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7605.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7605.reg deleted file mode 100644 index 6505df4..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7605.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GB0VNCX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7605" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7606.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7606.reg deleted file mode 100644 index fde1ce0..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7606.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G7QLY5X3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7606" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM5" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7607.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7607.reg deleted file mode 100644 index 1ad5bf3..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7607.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GJYTNCX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7607" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7608.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7608.reg deleted file mode 100644 index 65ef8cc..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7608.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGYTNCX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="Lathe" -"Path2Name"="Mill" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7608" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM3" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7801.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7801.reg deleted file mode 100644 index 28c600e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7801.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G9N2JNZ3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7801" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="7" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7802.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7802.reg deleted file mode 100644 index c052ff5..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7802.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GGNWYRT3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7802" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="YES" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"=dword:0000000a -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM4" -"Baud"="9600" -"Data Bits"="7" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM1" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7803.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7803.reg deleted file mode 100644 index 35f19f2..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7803.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G6K76CW3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7803" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files (x86)\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="STGcmSnhRC" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="hDUnc7" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/7804.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/7804.reg deleted file mode 100644 index 5bfba9e..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/7804.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GG1J98Y3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8192" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="7804" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM2" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="COM4" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/8001.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/8001.reg deleted file mode 100644 index 2b2df85..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/8001.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GH1DD5K3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="8001" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups-manual/8002.reg b/playbook/shopfloor-setup/_ntlars-backups-manual/8002.reg deleted file mode 100644 index eebb048..0000000 --- a/playbook/shopfloor-setup/_ntlars-backups-manual/8002.reg +++ /dev/null @@ -1,241 +0,0 @@ -REGEDIT4 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="GFBXPH63ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="" -"Seq Search"="" -"Auto Rewind"="" -"BCC"="" -"CMNT"="" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="192.168.1.1" -"SocketNo"="8193" -"DualPath"="NO" -"Path1Name"="" -"Path2Name"="" -"Danobat"="NO" -"DataServer"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3.AE.GE.COM" -"FMSHostSecondary"="10.233.112.158" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="Fanuc 30" -"NcIF"="EFOCAS" -"MachineNo"="8002" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="YES" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="YES" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="PC" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"ProgIdLimit"="7000" -"KeyCheck"="YES" -"DelHighIds"="NO" -"StdPmcG"="YES" -"KRelay1"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM3" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="OFF" -"MarkerType"="" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="NO" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpHostType"="VMS" -"FtpHostPrimary"="tsgwp00525.us.ae.ge.com" -"FtpHostSecondary"="tsgwp00525.us.ae.ge.com" -"FtpAccount"="geaeevendale\\sfwj0ashp" -"FtpPasswd"="qxOG8q1QnR" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="" -"Path"="" -"Account"="" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Primary"="wjfms3.ae.ge.com" -"Secondary"="wjfms3.ae.ge.com" -"UserName"="DCP_SHOPWJ" -"Password"="QSy1Go" -"Port Id"="COM1" -"Baud"="9600" -"Data Bits"="8" -"Parity"="None" -"Stop Bits"="1" -"Start Char"="DC2" -"Wait Time"="250" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="PPMON" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="YES" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="YES" -"EnableSharePoll"="NO" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - diff --git a/playbook/shopfloor-setup/_ntlars-backups/0000.reg b/playbook/shopfloor-setup/_ntlars-backups/0000.reg deleted file mode 100755 index 570b0f9..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/0000.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/0600.reg b/playbook/shopfloor-setup/_ntlars-backups/0600.reg deleted file mode 100755 index cf29936..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/0600.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/0614.reg b/playbook/shopfloor-setup/_ntlars-backups/0614.reg deleted file mode 100755 index a11660b..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/0614.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2001.reg b/playbook/shopfloor-setup/_ntlars-backups/2001.reg deleted file mode 100755 index 3430566..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2001.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2003.reg b/playbook/shopfloor-setup/_ntlars-backups/2003.reg deleted file mode 100755 index 33e7241..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2003.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2005.reg b/playbook/shopfloor-setup/_ntlars-backups/2005.reg deleted file mode 100755 index a4d907f..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2005.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2007.reg b/playbook/shopfloor-setup/_ntlars-backups/2007.reg deleted file mode 100644 index 93661ec..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2007.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2008.reg b/playbook/shopfloor-setup/_ntlars-backups/2008.reg deleted file mode 100755 index b6e6bcb..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2008.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2009.reg b/playbook/shopfloor-setup/_ntlars-backups/2009.reg deleted file mode 100644 index 6276f3c..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2009.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2010.reg b/playbook/shopfloor-setup/_ntlars-backups/2010.reg deleted file mode 100755 index 850054d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2010.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2011.reg b/playbook/shopfloor-setup/_ntlars-backups/2011.reg deleted file mode 100755 index efb321f..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2011.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2012.reg b/playbook/shopfloor-setup/_ntlars-backups/2012.reg deleted file mode 100644 index 7a0fa30..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2012.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2013.reg b/playbook/shopfloor-setup/_ntlars-backups/2013.reg deleted file mode 100755 index 03e2f2d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2013.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2014.reg b/playbook/shopfloor-setup/_ntlars-backups/2014.reg deleted file mode 100644 index fa801a8..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2014.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2016.reg b/playbook/shopfloor-setup/_ntlars-backups/2016.reg deleted file mode 100755 index 2a30775..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2016.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2017.reg b/playbook/shopfloor-setup/_ntlars-backups/2017.reg deleted file mode 100644 index 3913fc2..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2017.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2018.reg b/playbook/shopfloor-setup/_ntlars-backups/2018.reg deleted file mode 100755 index c4acf20..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2018.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2019.reg b/playbook/shopfloor-setup/_ntlars-backups/2019.reg deleted file mode 100755 index be465eb..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2019.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2020.reg b/playbook/shopfloor-setup/_ntlars-backups/2020.reg deleted file mode 100644 index c38d434..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2020.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2021.reg b/playbook/shopfloor-setup/_ntlars-backups/2021.reg deleted file mode 100755 index 51daf00..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2021.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2024.reg b/playbook/shopfloor-setup/_ntlars-backups/2024.reg deleted file mode 100755 index d4ac69e..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2024.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2025.reg b/playbook/shopfloor-setup/_ntlars-backups/2025.reg deleted file mode 100644 index 9c855fc..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2025.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2026.reg b/playbook/shopfloor-setup/_ntlars-backups/2026.reg deleted file mode 100755 index 6be0956..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2026.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2027.reg b/playbook/shopfloor-setup/_ntlars-backups/2027.reg deleted file mode 100755 index 6d193e1..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2027.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2029.reg b/playbook/shopfloor-setup/_ntlars-backups/2029.reg deleted file mode 100755 index 322b4de..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2029.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2031.reg b/playbook/shopfloor-setup/_ntlars-backups/2031.reg deleted file mode 100644 index d447ad1..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2031.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/2032.reg b/playbook/shopfloor-setup/_ntlars-backups/2032.reg deleted file mode 100755 index a65a46d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/2032.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3002.reg b/playbook/shopfloor-setup/_ntlars-backups/3002.reg deleted file mode 100755 index 086999a..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3002.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3003.reg b/playbook/shopfloor-setup/_ntlars-backups/3003.reg deleted file mode 100755 index 20e6bee..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3003.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3006.reg b/playbook/shopfloor-setup/_ntlars-backups/3006.reg deleted file mode 100755 index 19666b9..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3006.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3007.reg b/playbook/shopfloor-setup/_ntlars-backups/3007.reg deleted file mode 100755 index b40d171..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3007.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3008.reg b/playbook/shopfloor-setup/_ntlars-backups/3008.reg deleted file mode 100644 index 8e6d77a..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3008.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3009.reg b/playbook/shopfloor-setup/_ntlars-backups/3009.reg deleted file mode 100644 index 14061a2..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3009.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3010.reg b/playbook/shopfloor-setup/_ntlars-backups/3010.reg deleted file mode 100755 index 9772948..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3010.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3011.reg b/playbook/shopfloor-setup/_ntlars-backups/3011.reg deleted file mode 100755 index 650abc9..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3011.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3012.reg b/playbook/shopfloor-setup/_ntlars-backups/3012.reg deleted file mode 100644 index 42c4371..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3012.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3013.reg b/playbook/shopfloor-setup/_ntlars-backups/3013.reg deleted file mode 100755 index 4e3f058..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3013.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3014.reg b/playbook/shopfloor-setup/_ntlars-backups/3014.reg deleted file mode 100644 index dd01f67..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3014.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3015.reg b/playbook/shopfloor-setup/_ntlars-backups/3015.reg deleted file mode 100755 index 6dc1ce3..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3015.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3016.reg b/playbook/shopfloor-setup/_ntlars-backups/3016.reg deleted file mode 100644 index f16a15f..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3016.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3017.reg b/playbook/shopfloor-setup/_ntlars-backups/3017.reg deleted file mode 100755 index 8e3fdec..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3017.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3018.reg b/playbook/shopfloor-setup/_ntlars-backups/3018.reg deleted file mode 100644 index 84d886e..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3018.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3019.reg b/playbook/shopfloor-setup/_ntlars-backups/3019.reg deleted file mode 100755 index 09a3583..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3019.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3020.reg b/playbook/shopfloor-setup/_ntlars-backups/3020.reg deleted file mode 100644 index ecb590d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3020.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3021.reg b/playbook/shopfloor-setup/_ntlars-backups/3021.reg deleted file mode 100755 index 77c1574..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3021.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3022.reg b/playbook/shopfloor-setup/_ntlars-backups/3022.reg deleted file mode 100644 index 80eccb7..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3022.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3023.reg b/playbook/shopfloor-setup/_ntlars-backups/3023.reg deleted file mode 100755 index a08a18c..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3023.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3024.reg b/playbook/shopfloor-setup/_ntlars-backups/3024.reg deleted file mode 100644 index e2b9eb7..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3024.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3025.reg b/playbook/shopfloor-setup/_ntlars-backups/3025.reg deleted file mode 100755 index 14e6a64..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3025.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3027.reg b/playbook/shopfloor-setup/_ntlars-backups/3027.reg deleted file mode 100755 index cea73ee..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3027.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3029.reg b/playbook/shopfloor-setup/_ntlars-backups/3029.reg deleted file mode 100644 index 4489253..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3029.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3030.reg b/playbook/shopfloor-setup/_ntlars-backups/3030.reg deleted file mode 100644 index 2f8b148..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3030.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3031.reg b/playbook/shopfloor-setup/_ntlars-backups/3031.reg deleted file mode 100755 index cb38eec..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3031.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3033.reg b/playbook/shopfloor-setup/_ntlars-backups/3033.reg deleted file mode 100755 index 58eee20..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3033.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3034.reg b/playbook/shopfloor-setup/_ntlars-backups/3034.reg deleted file mode 100644 index fc8dbfa..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3034.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3035.reg b/playbook/shopfloor-setup/_ntlars-backups/3035.reg deleted file mode 100755 index dedeea4..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3035.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3036.reg b/playbook/shopfloor-setup/_ntlars-backups/3036.reg deleted file mode 100644 index bc40768..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3036.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3037.reg b/playbook/shopfloor-setup/_ntlars-backups/3037.reg deleted file mode 100755 index 017d120..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3037.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3038.reg b/playbook/shopfloor-setup/_ntlars-backups/3038.reg deleted file mode 100644 index 3de276b..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3038.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3039.reg b/playbook/shopfloor-setup/_ntlars-backups/3039.reg deleted file mode 100755 index da21a12..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3039.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3041.reg b/playbook/shopfloor-setup/_ntlars-backups/3041.reg deleted file mode 100755 index 8d1d74e..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3041.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3042.reg b/playbook/shopfloor-setup/_ntlars-backups/3042.reg deleted file mode 100644 index f22a3c3..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3042.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3043.reg b/playbook/shopfloor-setup/_ntlars-backups/3043.reg deleted file mode 100755 index 85bfb2a..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3043.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3044.reg b/playbook/shopfloor-setup/_ntlars-backups/3044.reg deleted file mode 100644 index c21824a..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3044.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3101.reg b/playbook/shopfloor-setup/_ntlars-backups/3101.reg deleted file mode 100755 index fb7b819..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3101.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3102.reg b/playbook/shopfloor-setup/_ntlars-backups/3102.reg deleted file mode 100755 index c1b0d2b..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3102.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3103.reg b/playbook/shopfloor-setup/_ntlars-backups/3103.reg deleted file mode 100755 index 6c8c697..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3103.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3104.reg b/playbook/shopfloor-setup/_ntlars-backups/3104.reg deleted file mode 100755 index e01424c..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3104.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3105.reg b/playbook/shopfloor-setup/_ntlars-backups/3105.reg deleted file mode 100755 index 1c8d3a8..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3105.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3106.reg b/playbook/shopfloor-setup/_ntlars-backups/3106.reg deleted file mode 100755 index 2461622..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3106.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3107.reg b/playbook/shopfloor-setup/_ntlars-backups/3107.reg deleted file mode 100755 index 2c33ff9..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3107.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3108.reg b/playbook/shopfloor-setup/_ntlars-backups/3108.reg deleted file mode 100755 index 40c0ee4..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3108.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3109.reg b/playbook/shopfloor-setup/_ntlars-backups/3109.reg deleted file mode 100755 index 7f8ce81..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3109.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3110.reg b/playbook/shopfloor-setup/_ntlars-backups/3110.reg deleted file mode 100755 index 45a89b4..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3110.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3111.reg b/playbook/shopfloor-setup/_ntlars-backups/3111.reg deleted file mode 100755 index 5046438..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3111.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3112.reg b/playbook/shopfloor-setup/_ntlars-backups/3112.reg deleted file mode 100755 index b41058b..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3112.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3113.reg b/playbook/shopfloor-setup/_ntlars-backups/3113.reg deleted file mode 100755 index 2745e75..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3113.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3114.reg b/playbook/shopfloor-setup/_ntlars-backups/3114.reg deleted file mode 100755 index 0144353..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3114.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3115.reg b/playbook/shopfloor-setup/_ntlars-backups/3115.reg deleted file mode 100755 index aa7718b..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3115.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3116.reg b/playbook/shopfloor-setup/_ntlars-backups/3116.reg deleted file mode 100755 index 23df4f6..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3116.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3117.reg b/playbook/shopfloor-setup/_ntlars-backups/3117.reg deleted file mode 100755 index ef5704e..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3117.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3118.reg b/playbook/shopfloor-setup/_ntlars-backups/3118.reg deleted file mode 100755 index 88c4ecc..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3118.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3119.reg b/playbook/shopfloor-setup/_ntlars-backups/3119.reg deleted file mode 100755 index de84866..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3119.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3120.reg b/playbook/shopfloor-setup/_ntlars-backups/3120.reg deleted file mode 100755 index 6f81073..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3120.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3122.reg b/playbook/shopfloor-setup/_ntlars-backups/3122.reg deleted file mode 100755 index 4f49377..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3122.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3123.reg b/playbook/shopfloor-setup/_ntlars-backups/3123.reg deleted file mode 100755 index 80e2ff1..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3123.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3124.reg b/playbook/shopfloor-setup/_ntlars-backups/3124.reg deleted file mode 100755 index 45d2c0b..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3124.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3125.reg b/playbook/shopfloor-setup/_ntlars-backups/3125.reg deleted file mode 100755 index 84a3714..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3125.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3126.reg b/playbook/shopfloor-setup/_ntlars-backups/3126.reg deleted file mode 100755 index 38169bd..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3126.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3127.reg b/playbook/shopfloor-setup/_ntlars-backups/3127.reg deleted file mode 100755 index f025b6e..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3127.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3128.reg b/playbook/shopfloor-setup/_ntlars-backups/3128.reg deleted file mode 100755 index d9a9d26..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3128.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3129.reg b/playbook/shopfloor-setup/_ntlars-backups/3129.reg deleted file mode 100755 index 08b8f84..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3129.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3201.reg b/playbook/shopfloor-setup/_ntlars-backups/3201.reg deleted file mode 100755 index 567c15f..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3201.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3202.reg b/playbook/shopfloor-setup/_ntlars-backups/3202.reg deleted file mode 100755 index 4ae786d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3202.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3203.reg b/playbook/shopfloor-setup/_ntlars-backups/3203.reg deleted file mode 100755 index 7b95fd6..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3203.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3204.reg b/playbook/shopfloor-setup/_ntlars-backups/3204.reg deleted file mode 100755 index 271a848..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3204.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3205.reg b/playbook/shopfloor-setup/_ntlars-backups/3205.reg deleted file mode 100755 index 84faa83..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3205.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3206.reg b/playbook/shopfloor-setup/_ntlars-backups/3206.reg deleted file mode 100755 index a553e93..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3206.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3207.reg b/playbook/shopfloor-setup/_ntlars-backups/3207.reg deleted file mode 100755 index 51e3ddf..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3207.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3208.reg b/playbook/shopfloor-setup/_ntlars-backups/3208.reg deleted file mode 100755 index dfb0631..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3208.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3209.reg b/playbook/shopfloor-setup/_ntlars-backups/3209.reg deleted file mode 100755 index d9b1a89..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3209.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3210.reg b/playbook/shopfloor-setup/_ntlars-backups/3210.reg deleted file mode 100755 index 02a7e35..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3210.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3212.reg b/playbook/shopfloor-setup/_ntlars-backups/3212.reg deleted file mode 100755 index 22b6c4d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3212.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/3213.reg b/playbook/shopfloor-setup/_ntlars-backups/3213.reg deleted file mode 100755 index d98cdb6..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/3213.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4002.reg b/playbook/shopfloor-setup/_ntlars-backups/4002.reg deleted file mode 100755 index 927698d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4002.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4003.reg b/playbook/shopfloor-setup/_ntlars-backups/4003.reg deleted file mode 100755 index 5fd67f6..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4003.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4004.reg b/playbook/shopfloor-setup/_ntlars-backups/4004.reg deleted file mode 100755 index 5908029..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4004.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4005.reg b/playbook/shopfloor-setup/_ntlars-backups/4005.reg deleted file mode 100755 index 857d2e4..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4005.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4007.reg b/playbook/shopfloor-setup/_ntlars-backups/4007.reg deleted file mode 100755 index 557fe7d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4007.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4008.reg b/playbook/shopfloor-setup/_ntlars-backups/4008.reg deleted file mode 100755 index 0d124ed..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4008.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4101.reg b/playbook/shopfloor-setup/_ntlars-backups/4101.reg deleted file mode 100755 index 184b2cc..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4101.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4102.reg b/playbook/shopfloor-setup/_ntlars-backups/4102.reg deleted file mode 100755 index 099b98d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4102.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4103.reg b/playbook/shopfloor-setup/_ntlars-backups/4103.reg deleted file mode 100755 index d916f7c..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4103.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4701.reg b/playbook/shopfloor-setup/_ntlars-backups/4701.reg deleted file mode 100755 index b4b10bc..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4701.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4702.reg b/playbook/shopfloor-setup/_ntlars-backups/4702.reg deleted file mode 100755 index b526d11..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4702.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4703.reg b/playbook/shopfloor-setup/_ntlars-backups/4703.reg deleted file mode 100755 index 62bd9ba..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4703.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/4704.reg b/playbook/shopfloor-setup/_ntlars-backups/4704.reg deleted file mode 100755 index 4c6c4e6..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/4704.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/5002.reg b/playbook/shopfloor-setup/_ntlars-backups/5002.reg deleted file mode 100755 index 8a54d49..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/5002.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/5004.reg b/playbook/shopfloor-setup/_ntlars-backups/5004.reg deleted file mode 100755 index a4da3fe..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/5004.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/5006.reg b/playbook/shopfloor-setup/_ntlars-backups/5006.reg deleted file mode 100755 index 74bbc64..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/5006.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/5302.reg b/playbook/shopfloor-setup/_ntlars-backups/5302.reg deleted file mode 100755 index 6edd57a..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/5302.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7401.reg b/playbook/shopfloor-setup/_ntlars-backups/7401.reg deleted file mode 100755 index a0c56e3..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7401.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7402.reg b/playbook/shopfloor-setup/_ntlars-backups/7402.reg deleted file mode 100755 index 7961b0d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7402.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7403.reg b/playbook/shopfloor-setup/_ntlars-backups/7403.reg deleted file mode 100755 index 5f9d3fa..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7403.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7404.reg b/playbook/shopfloor-setup/_ntlars-backups/7404.reg deleted file mode 100755 index f7aa677..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7404.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7405.reg b/playbook/shopfloor-setup/_ntlars-backups/7405.reg deleted file mode 100755 index be0a679..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7405.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7501.reg b/playbook/shopfloor-setup/_ntlars-backups/7501.reg deleted file mode 100755 index 3bf453d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7501.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7502.reg b/playbook/shopfloor-setup/_ntlars-backups/7502.reg deleted file mode 100755 index 8d397a2..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7502.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7503.reg b/playbook/shopfloor-setup/_ntlars-backups/7503.reg deleted file mode 100755 index 43127ff..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7503.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7504.reg b/playbook/shopfloor-setup/_ntlars-backups/7504.reg deleted file mode 100755 index 8b6b142..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7504.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7505.reg b/playbook/shopfloor-setup/_ntlars-backups/7505.reg deleted file mode 100755 index e46ed98..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7505.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7506.reg b/playbook/shopfloor-setup/_ntlars-backups/7506.reg deleted file mode 100755 index 459ee6b..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7506.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7507.reg b/playbook/shopfloor-setup/_ntlars-backups/7507.reg deleted file mode 100755 index ffd205f..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7507.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7601.reg b/playbook/shopfloor-setup/_ntlars-backups/7601.reg deleted file mode 100755 index 45e0eaa..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7601.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7602.reg b/playbook/shopfloor-setup/_ntlars-backups/7602.reg deleted file mode 100755 index 5526776..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7602.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7603.reg b/playbook/shopfloor-setup/_ntlars-backups/7603.reg deleted file mode 100755 index 7073e98..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7603.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7604.reg b/playbook/shopfloor-setup/_ntlars-backups/7604.reg deleted file mode 100755 index a371f5d..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7604.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7605.reg b/playbook/shopfloor-setup/_ntlars-backups/7605.reg deleted file mode 100755 index 51d6d95..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7605.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7606.reg b/playbook/shopfloor-setup/_ntlars-backups/7606.reg deleted file mode 100755 index 85e5c7c..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7606.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7607.reg b/playbook/shopfloor-setup/_ntlars-backups/7607.reg deleted file mode 100755 index 6cea0d0..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7607.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7608.reg b/playbook/shopfloor-setup/_ntlars-backups/7608.reg deleted file mode 100755 index afd5d34..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7608.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7801.reg b/playbook/shopfloor-setup/_ntlars-backups/7801.reg deleted file mode 100755 index 87f2776..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7801.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7802.reg b/playbook/shopfloor-setup/_ntlars-backups/7802.reg deleted file mode 100755 index ecaba08..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7802.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7803.reg b/playbook/shopfloor-setup/_ntlars-backups/7803.reg deleted file mode 100755 index 46c53d8..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7803.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/7804.reg b/playbook/shopfloor-setup/_ntlars-backups/7804.reg deleted file mode 100755 index e61559c..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/7804.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/8001.reg b/playbook/shopfloor-setup/_ntlars-backups/8001.reg deleted file mode 100755 index 9a16d15..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/8001.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/_ntlars-backups/8002.reg b/playbook/shopfloor-setup/_ntlars-backups/8002.reg deleted file mode 100644 index 6c953b6..0000000 Binary files a/playbook/shopfloor-setup/_ntlars-backups/8002.reg and /dev/null differ diff --git a/playbook/shopfloor-setup/common/Deploy-GEEnforce.ps1 b/playbook/shopfloor-setup/common/Deploy-GEEnforce.ps1 deleted file mode 100644 index 8fae1fc..0000000 --- a/playbook/shopfloor-setup/common/Deploy-GEEnforce.ps1 +++ /dev/null @@ -1,97 +0,0 @@ -# Deploy-GEEnforce.ps1 -# -# One-shot deploy of the GE-Enforce runtime + scheduled task to an already- -# imaged shopfloor PC. Use this to promote a PC from legacy per-type -# enforcers (CMM-Enforce, Keyence-Enforce, Machine-Enforce, etc.) to the -# unified GE-Enforce, without re-imaging. -# -# Usage (on target PC, as admin): -# powershell -ExecutionPolicy Bypass -File .\Deploy-GEEnforce.ps1 ` -# -SourceRoot '\\\\enforcer-stage' -# -# The SourceRoot must contain: -# GE-Enforce.ps1 -# lib\Install-FromManifest.ps1 -# -# For imaging-time deployment, Run-ShopfloorSetup.ps1 invokes -# Register-GEEnforce.ps1 directly. This script is specifically for -# retrofitting live PCs. - -param( - [Parameter(Mandatory=$true)] - [string]$SourceRoot, - - [string]$InstallRoot = 'C:\Program Files\GE\Shopfloor', - - [switch]$TriggerImmediate -) - -$ErrorActionPreference = 'Stop' - -function Write-DeployLog { param([string]$m) Write-Host "[Deploy-GEEnforce] $m" } - -if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole('Administrators')) { - throw 'Must run as Administrator.' -} - -Write-DeployLog "SourceRoot: $SourceRoot" -Write-DeployLog "InstallRoot: $InstallRoot" - -# ---- 1. Validate source ---- -$srcEnforcer = Join-Path $SourceRoot 'GE-Enforce.ps1' -$srcLib = Join-Path $SourceRoot 'lib\Install-FromManifest.ps1' -foreach ($p in @($srcEnforcer, $srcLib)) { - if (-not (Test-Path -LiteralPath $p)) { - throw "Missing source file: $p" - } -} - -# ---- 2. Stage runtime ---- -Write-DeployLog "Staging runtime to $InstallRoot" -$libDst = Join-Path $InstallRoot 'lib' -foreach ($d in @($InstallRoot, $libDst)) { - if (-not (Test-Path $d)) { New-Item -Path $d -ItemType Directory -Force | Out-Null } -} -Copy-Item -LiteralPath $srcEnforcer -Destination (Join-Path $InstallRoot 'GE-Enforce.ps1') -Force -Copy-Item -LiteralPath $srcLib -Destination (Join-Path $libDst 'Install-FromManifest.ps1') -Force -Write-DeployLog ' Runtime files copied' - -# ---- 3. Register scheduled task + unregister legacy ---- -$registerScript = Join-Path $SourceRoot 'Register-GEEnforce.ps1' -if (-not (Test-Path -LiteralPath $registerScript)) { - # Fall back to the copy that should sit next to this deploy script in the - # repo. In the common rollout, Register-GEEnforce.ps1 lives beside - # GE-Enforce.ps1 in $SourceRoot. - $registerScript = Join-Path (Split-Path -Parent $PSCommandPath) 'Register-GEEnforce.ps1' -} -if (-not (Test-Path -LiteralPath $registerScript)) { - throw "Cannot find Register-GEEnforce.ps1 in $SourceRoot or alongside this script." -} - -Write-DeployLog "Invoking $registerScript" -& $registerScript -EnforcerPath (Join-Path $InstallRoot 'GE-Enforce.ps1') - -# ---- 4. Optional: trigger one enforce cycle immediately ---- -if ($TriggerImmediate) { - Write-DeployLog 'Triggering GE Shopfloor Enforce now via schtasks /run' - & schtasks /run /tn 'GE Shopfloor Enforce' | Out-Null - Start-Sleep -Seconds 3 - $log = Get-ChildItem -Path 'C:\Logs\Shopfloor' -Filter 'enforce-*.log' -ErrorAction SilentlyContinue | - Sort-Object LastWriteTime -Descending | Select-Object -First 1 - if ($log) { - Write-DeployLog "Latest log: $($log.FullName) (watching for 30s)" - $end = (Get-Date).AddSeconds(30) - $lastSize = 0 - while ((Get-Date) -lt $end) { - $size = (Get-Item $log.FullName).Length - if ($size -gt $lastSize) { - Get-Content -Path $log.FullName -Tail 20 -ErrorAction SilentlyContinue | ForEach-Object { Write-Host " $_" } - Write-Host ' ---' - $lastSize = $size - } - Start-Sleep -Seconds 2 - } - } -} - -Write-DeployLog 'DONE. Verify with: schtasks /query /tn "GE Shopfloor Enforce" /v /fo list' diff --git a/playbook/shopfloor-setup/common/GE-Enforce.ps1 b/playbook/shopfloor-setup/common/GE-Enforce.ps1 deleted file mode 100644 index dba42f8..0000000 --- a/playbook/shopfloor-setup/common/GE-Enforce.ps1 +++ /dev/null @@ -1,435 +0,0 @@ -# GE-Enforce.ps1 - Unified shopfloor enforcer. -# -# Replaces the per-type enforcers (CMM-Enforce, Keyence-Enforce, -# Machine-Enforce, Common-Enforce, Acrobat-Enforce). Runs as a single SYSTEM -# scheduled task with multiple triggers (at-logon, periodic 5-min, and the -# three shift-change windows). -# -# On each invocation: -# 1. Reads C:\Enrollment\pc-type.txt and pc-subtype.txt. -# 2. Mounts the tsgwp00525 SFLD share using creds from HKLM. -# 3. Processes common\manifest.json (always, with per-entry PCTypes filter). -# 4. Processes \manifest.json if it exists (enforces type-specific -# apps like CMM, Keyence, Display, Keyence, etc.). -# 5. Processes -\manifest.json if it exists -# (the "standard-machine" case). -# -# Graceful degradation: -# - pc-type.txt missing -> log + exit 0 (PC is pre-imaging) -# - SFLD creds missing -> log + exit 0 (Azure DSC hasn't provisioned yet) -# - Share unreachable -> log + exit 0 (off-network, retry next cycle) -# - Per-entry install failure -> log + continue to next entry -# -# Always exits 0 so the scheduled task "last run result" stays clean. Truth -# is in the log: C:\Logs\Shopfloor\enforce-YYYYMMDD.log. - -$ErrorActionPreference = 'Continue' - -$installRoot = 'C:\Program Files\GE\Shopfloor' -$libPath = Join-Path $installRoot 'lib\Install-FromManifest.ps1' -$logDir = 'C:\Logs\Shopfloor' -$logFile = Join-Path $logDir ('enforce-{0}.log' -f (Get-Date -Format 'yyyyMMdd')) -$driveLetter = 'W:' # distinct from S: (shopfloor share), T:/U: (legacy enforcers) - -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -function Write-EnforceLog { - param([string]$Message, [string]$Level = 'INFO') - $line = '[{0}] [{1}] {2}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Level, $Message - Write-Host $line - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue -} - -Write-EnforceLog '================================================================' -Write-EnforceLog "=== GE-Enforce session start (PID $PID, user $env:USERNAME) ===" -Write-EnforceLog '================================================================' - -$logRoots = @('C:\Logs\Shopfloor', 'C:\Logs\SFLD', 'C:\Logs\Keyence') - -# --- Roll undated logs so they can age --- -# The prune below drops a *.log by LastWriteTime. A log written to a FIXED -# filename is appended every cycle, so its LastWriteTime is always now and it -# can never be older than any cutoff - it grows forever. ntlars-backup.log, -# eventsaver.log and shopdb-collector-key.log all do this; eventsaver.log had -# reached 11,000 lines on a single PC. -# -# Rolling one to -YYYYMMDD.log stops it being written to, so the prune -# takes it 30 days later, and the script that owns it needs no change: they all -# append with Add-Content or Tee-Object, which recreate a missing file on the -# next write. A file already carrying a date stamp is left alone. -# -# Rolled under the date of its FIRST LINE, so the stamp matches the lines -# inside. That timestamp is also the only trustworthy signal available: -# CreationTime is not, because of NTFS file tunneling - rename a file away and -# let the owner recreate it within 15 seconds, and the new file INHERITS the -# old creation time. Keyed on that, a busy log would look stale the moment it -# was rolled and would roll again every cycle, forever. -$rolledCount = 0 -$today = (Get-Date).Date -foreach ($root in $logRoots) { - if (-not (Test-Path $root)) { continue } - Get-ChildItem -Path $root -Filter '*.log' -File -ErrorAction SilentlyContinue | - Where-Object { $_.BaseName -notmatch '\d{8}$' -and $_.Length -gt 0 } | - ForEach-Object { - $firstline = Get-Content -LiteralPath $_.FullName -TotalCount 1 -ErrorAction SilentlyContinue - # MUST be pre-typed. TryParse takes [ref][datetime], and passing a - # [ref] to an untyped $null throws "cannot find an overload", which - # would make this whole roll a silent no-op. - $started = [datetime]::MinValue - if ($firstline -match '(\d{4}-\d{2}-\d{2})') { - [void][datetime]::TryParse($matches[1], [ref]$started) - } - # No parseable date: fall back to size so a log with a format we do - # not recognise still cannot grow without limit. - if ($started -eq [datetime]::MinValue) { - if ($_.Length -lt 5MB) { return } - $started = $today.AddDays(-1) - } - if ($started.Date -ge $today) { return } - - $stamp = $started.ToString('yyyyMMdd') - $target = Join-Path $_.DirectoryName ('{0}-{1}.log' -f $_.BaseName, $stamp) - # An existing target means the roll already ran for that day; append - # to it rather than losing either side. - try { - if (Test-Path -LiteralPath $target) { - Get-Content -LiteralPath $_.FullName -ErrorAction Stop | - Add-Content -LiteralPath $target -ErrorAction Stop - Remove-Item -LiteralPath $_.FullName -Force -ErrorAction Stop - } else { - Move-Item -LiteralPath $_.FullName -Destination $target -ErrorAction Stop - } - $rolledCount++ - } catch {} - } -} -if ($rolledCount -gt 0) { - Write-EnforceLog "Rolled $rolledCount undated log file(s) so retention can age them" -} - -# --- Log retention prune --- -# Drops *.log files older than $retentionDays from the shopfloor log roots. -# Cheap (flat dir scan, no recursion). Runs every cycle. Today's -# enforce-YYYYMMDD.log is never touched (LastWriteTime = now). -$retentionDays = 30 -$prunedCount = 0 -foreach ($root in $logRoots) { - if (-not (Test-Path $root)) { continue } - $cutoff = (Get-Date).AddDays(-$retentionDays) - Get-ChildItem -Path $root -Filter '*.log' -File -ErrorAction SilentlyContinue | - Where-Object { $_.LastWriteTime -lt $cutoff } | - ForEach-Object { - try { Remove-Item -LiteralPath $_.FullName -Force -ErrorAction Stop; $prunedCount++ } catch {} - } -} -if ($prunedCount -gt 0) { - Write-EnforceLog "Pruned $prunedCount log file(s) older than $retentionDays days" -} - -# --- pc-type --- -$pcTypeFile = 'C:\Enrollment\pc-type.txt' -$pcSubTypeFile = 'C:\Enrollment\pc-subtype.txt' -if (-not (Test-Path $pcTypeFile)) { - Write-EnforceLog "pc-type.txt not found - PC is pre-imaging, nothing to enforce" - exit 0 -} -$pcType = (Get-Content -LiteralPath $pcTypeFile -First 1 -ErrorAction SilentlyContinue).Trim() -$pcSubType = if (Test-Path $pcSubTypeFile) { - (Get-Content -LiteralPath $pcSubTypeFile -First 1 -ErrorAction SilentlyContinue).Trim() -} else { '' } - -# Backfill pc-subtype.txt on Keyence PCs imaged before 2026-05 (startnet.cmd -# didn't write pc-subtype.txt for Keyence then). Without a subtype, the share -# manifest's per-model PCTypes gate falls back to installing the default model -# (VR-6000) on top of VR-3000 / VR-5000 boxes. Detect the installed model from -# its uninstall ProductCode and persist the subtype so subsequent GE-Enforce -# cycles + the share manifest gate route correctly. -if ($pcType -ieq 'keyence' -and -not $pcSubType) { - $keyenceProducts = @( - @{ Subtype = 'vr3000'; Path = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{9CC9A062-2A93-4D3B-AECA-F70C691A46F2}' }, - @{ Subtype = 'vr5000'; Path = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{AF7E8B93-DBEB-4DB1-91CB-4DA592D8E222}' }, - @{ Subtype = 'vr6000'; Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{058E7194-BDF8-4FA2-9D69-978BB0F25214}' } - ) - foreach ($p in $keyenceProducts) { - if (Test-Path -LiteralPath $p.Path) { - $pcSubType = $p.Subtype - try { - $enrollDir = Split-Path -Parent $pcSubTypeFile - if (-not (Test-Path -LiteralPath $enrollDir)) { - New-Item -Path $enrollDir -ItemType Directory -Force | Out-Null - } - Set-Content -LiteralPath $pcSubTypeFile -Value $pcSubType -Encoding ascii -Force - Write-EnforceLog "Backfilled pc-subtype.txt = $pcSubType from installed product code" - } catch { - Write-EnforceLog "pc-subtype.txt backfill write failed: $_" 'WARN' - } - break - } - } - if (-not $pcSubType) { - Write-EnforceLog "Keyence PC with no pc-subtype.txt and no recognized VR product installed - skipping model-gated apps until imaging populates subtype" 'WARN' - } -} - -Write-EnforceLog "PCType: $pcType$(if ($pcSubType) { " / $pcSubType" })" - -# --- site-config --- -$siteConfigFile = 'C:\Enrollment\site-config.json' -if (-not (Test-Path $siteConfigFile)) { - Write-EnforceLog "site-config.json not found at $siteConfigFile" 'ERROR' - exit 0 -} -try { - $siteConfig = Get-Content -LiteralPath $siteConfigFile -Raw | ConvertFrom-Json -} catch { - Write-EnforceLog "site-config.json parse failed: $_" 'ERROR' - exit 0 -} - -$shopfloorShareRoot = $siteConfig.shopfloorShareRoot -if (-not $shopfloorShareRoot) { - # Fallback: derive from commonAppsSharePath if the new field isn't set. - $capp = $siteConfig.common.commonAppsSharePath - if ($capp) { - # \\...\shared\dt\shopfloor\common\apps -> \\...\shared\dt\shopfloor - $shopfloorShareRoot = ($capp -replace '\\common\\apps$', '') - } -} -if (-not $shopfloorShareRoot) { - Write-EnforceLog 'No shopfloorShareRoot derivable from site-config - nothing to enforce' 'ERROR' - exit 0 -} -Write-EnforceLog "Shopfloor share root: $shopfloorShareRoot" - -# --- SFLD credential lookup (written by Azure DSC) --- -function Get-SFLDCredential { - param([string]$ServerName) - $basePath = 'HKLM:\SOFTWARE\GE\SFLD\Credentials' - if (-not (Test-Path $basePath)) { return $null } - foreach ($entry in Get-ChildItem -Path $basePath -ErrorAction SilentlyContinue) { - $props = Get-ItemProperty -Path $entry.PSPath -ErrorAction SilentlyContinue - if (-not $props -or -not $props.TargetHost) { continue } - if ($props.TargetHost -eq $ServerName -or - $props.TargetHost -like "$ServerName.*" -or - $ServerName -like "$($props.TargetHost).*") { - return @{ - Username = $props.Username - Password = $props.Password - TargetHost = $props.TargetHost - KeyName = $entry.PSChildName - } - } - } - return $null -} -$serverName = ($shopfloorShareRoot -replace '^\\\\', '') -split '\\' | Select-Object -First 1 -$cred = Get-SFLDCredential -ServerName $serverName -if (-not $cred -or -not $cred.Username -or -not $cred.Password) { - Write-EnforceLog "No SFLD credential for $serverName yet (Azure DSC has not provisioned it) - will retry next cycle" - exit 0 -} -Write-EnforceLog "Credential: $($cred.KeyName) (user: $($cred.Username))" - -# --- Mount --- -& net use $driveLetter /delete /y 2>$null | Out-Null -$netResult = & net use $driveLetter $shopfloorShareRoot /user:$($cred.Username) $($cred.Password) /persistent:no 2>&1 -if ($LASTEXITCODE -ne 0) { - Write-EnforceLog "net use failed (exit $LASTEXITCODE): $netResult" 'WARN' - Write-EnforceLog 'Share unreachable - probably off-network. Will retry at next cycle.' - exit 0 -} -Write-EnforceLog "Mounted $shopfloorShareRoot as $driveLetter" - -try { - if (-not (Test-Path $libPath)) { - Write-EnforceLog "Install-FromManifest.ps1 not found at $libPath" 'ERROR' - return - } - - # --- Process manifests in order: common, per-type, per-type+subtype --- - # ---- Manifest dir resolution with alias support --------------- - # The 2026-05-03 rename reorg replaced legacy dir names (standard-machine, - # cmm, keyence, ...) with gea-shopfloor-* equivalents on the share. Fleet - # PCs may still write old names to pc-type.txt during transition. Try - # the constructed dir first; if it has no manifest.json, walk the alias - # set and pick the first that does. See project-shopfloor-rename-reorg - # memory note for the full rename plan. - $pcTypeAliasGroups = @( - @('standard', 'gea-shopfloor-collections', 'gea-shopfloor-nocollections', 'gea-shopfloor-common'), - @('standard-machine', 'gea-shopfloor-collections', 'gea-shopfloor-nocollections'), - @('standard-timeclock', 'gea-shopfloor-common'), - @('cmm', 'gea-shopfloor-cmm'), - @('keyence', 'gea-shopfloor-keyence'), - @('lab', 'gea-shopfloor-common'), - @('waxandtrace', 'gea-shopfloor-waxtrace'), - @('genspect', 'gea-shopfloor-genspect'), - @('display', 'gea-shopfloor-display'), - @('heattreat', 'gea-shopfloor-heattreat') - ) - function Resolve-ManifestDir { - param([string]$DirName) - $primary = Join-Path $driveLetter $DirName - if (Test-Path (Join-Path $primary 'manifest.json')) { return $primary } - foreach ($g in $pcTypeAliasGroups) { - if ($g -contains $DirName.ToLower()) { - foreach ($alias in $g) { - if ($alias -ieq $DirName) { continue } - $candidate = Join-Path $driveLetter $alias - if (Test-Path (Join-Path $candidate 'manifest.json')) { return $candidate } - } - } - } - return $null - } - - $targets = @() - - $commonRoot = Join-Path $driveLetter 'common' - $commonManifest = Join-Path $commonRoot 'manifest.json' - if (Test-Path $commonManifest) { - $targets += [pscustomobject]@{ Label = 'common'; Manifest = $commonManifest; Root = $commonRoot } - } else { - Write-EnforceLog "common\manifest.json missing - skipping common scope" 'WARN' - } - - $typeDir = $pcType.ToLower() - if ($typeDir) { - $resolvedRoot = Resolve-ManifestDir -DirName $typeDir - if ($resolvedRoot) { - $typeManifest = Join-Path $resolvedRoot 'manifest.json' - $targets += [pscustomobject]@{ Label = $pcType; Manifest = $typeManifest; Root = $resolvedRoot } - } else { - Write-EnforceLog "$typeDir\manifest.json (or aliases) not on share - no type-specific apps for $pcType" - } - } - - if ($pcSubType) { - $stDir = ($pcType + '-' + $pcSubType).ToLower() - $resolvedRoot = Resolve-ManifestDir -DirName $stDir - if ($resolvedRoot) { - $stManifest = Join-Path $resolvedRoot 'manifest.json' - $targets += [pscustomobject]@{ Label = "$pcType-$pcSubType"; Manifest = $stManifest; Root = $resolvedRoot } - } - } - - $scopeResults = @() - foreach ($t in $targets) { - Write-EnforceLog "---- Processing scope: $($t.Label) ----" - Write-EnforceLog " Manifest: $($t.Manifest)" - Write-EnforceLog " Root: $($t.Root)" - & $libPath -ManifestPath $t.Manifest -InstallerRoot $t.Root -LogFile $logFile -PCType $pcType -PCSubType $pcSubType - $rc = $LASTEXITCODE - Write-EnforceLog " Install-FromManifest returned $rc" - $scopeResults += [pscustomobject]@{ Label = $t.Label; ExitCode = $rc } - } - - # ------------------------------------------------------------------ - # Status write-back to _outputs/logs//status.json on share. - # Consumed by the management app / fleet dashboard to answer - # "which PCs checked in, when, and what version did each install." - # Writes under the mounted drive using SFLD creds; gracefully - # continues if the share path is not writable. - # ------------------------------------------------------------------ - try { - # Re-mount W: before status write-back. Long-running entries (UDC - # WaitTimeoutSec=120) can let the SMB session time out idle, leaving - # W: as a dead drive letter that fails downstream Path operations - # with confusing "argument is null" errors. Cheap to re-attach. - & net use $driveLetter /delete /y 2>$null | Out-Null - & net use $driveLetter $shopfloorShareRoot /user:$($cred.Username) $($cred.Password) /persistent:no 2>&1 | Out-Null - - # Live NetBIOS name from kernel - not $env:COMPUTERNAME, which is - # cached in the process env block and goes stale after a post-image - # rename on Intune-managed PCs. - $hostname = [System.Environment]::MachineName - if (-not $hostname) { $hostname = 'UNKNOWN' } - if (-not $driveLetter) { throw 'driveLetter unset before status write-back' } - $statusDir = Join-Path (Join-Path $driveLetter '_outputs') (Join-Path 'logs' $hostname) - if (-not (Test-Path $statusDir)) { - New-Item -Path $statusDir -ItemType Directory -Force -ErrorAction Stop | Out-Null - } - $statusFile = Join-Path $statusDir 'status.json' - - # Walk each processed manifest and pull current DetectionValue per entry. - $installedVersions = @{} - foreach ($t in $targets) { - try { - $cfg = Get-Content -LiteralPath $t.Manifest -Raw | ConvertFrom-Json - foreach ($a in $cfg.Applications) { - if (-not $a.DetectionPath) { continue } - $key = "$($t.Label)/$($a.Name)" - $val = $null - switch ($a.DetectionMethod) { - 'Registry' { - if ((Test-Path $a.DetectionPath) -and $a.DetectionName) { - $p = Get-ItemProperty -Path $a.DetectionPath -Name $a.DetectionName -ErrorAction SilentlyContinue - if ($p) { $val = "$($p.$($a.DetectionName))" } - } - } - 'FileVersion' { - if (Test-Path $a.DetectionPath) { - $val = (Get-Item $a.DetectionPath).VersionInfo.FileVersion - } - } - 'File' { if (Test-Path $a.DetectionPath) { $val = 'present' } } - 'Hash' { if (Test-Path $a.DetectionPath) { $val = (Get-FileHash -Path $a.DetectionPath -Algorithm SHA256).Hash } } - 'MarkerFile' { if (Test-Path $a.DetectionPath) { $val = 'marker present' } } - 'Always' { $val = 'n/a (Always)' } - 'pnputil' { $val = 'pnputil-managed' } - } - $installedVersions[$key] = $val - } - } catch { - Write-EnforceLog " status: manifest introspection for $($t.Label) failed: $_" 'WARN' - } - } - - # Prefer DNC reg (authoritative post-Update-MachineNumber) over - # machine-number.txt (imaging-time placeholder, often 9999 if tech - # imaged with placeholder + bay assignment came later). - $machineNumber = '' - try { - $regPaths = @( - 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\Dnc\General', - 'HKLM:\SOFTWARE\GE Aircraft Engines\Dnc\General' - ) - foreach ($rp in $regPaths) { - if (Test-Path $rp) { - $v = (Get-ItemProperty -Path $rp -Name MachineNo -ErrorAction SilentlyContinue).MachineNo - if ($v -and $v -ne '9999') { $machineNumber = "$v"; break } - } - } - # Fall back to enrollment file (will be 9999 for placeholder PCs) - if (-not $machineNumber) { - if (Test-Path 'C:\Enrollment\machine-number.txt') { - $machineNumber = (Get-Content 'C:\Enrollment\machine-number.txt' -First 1 -ErrorAction SilentlyContinue).Trim() - } - } - } catch {} - - $status = [ordered]@{ - hostname = $hostname - machineNumber = $machineNumber - lastCheckIn = (Get-Date).ToUniversalTime().ToString('o') - pcType = $pcType - pcSubType = $pcSubType - enforcerVersion = '2.5.1' - shopfloorShareRoot = $shopfloorShareRoot - scopesProcessed = $scopeResults - installedVersions = $installedVersions - } | ConvertTo-Json -Depth 6 - Set-Content -Path $statusFile -Value $status -Encoding ascii -ErrorAction Stop - Write-EnforceLog "Status written to $statusFile" - } catch { - Write-EnforceLog "Status write-back failed (share may be read-only for this user): $_" 'WARN' - } -} -finally { - & net use $driveLetter /delete /y 2>$null | Out-Null - Write-EnforceLog "Unmounted $driveLetter" - Write-EnforceLog '=== GE-Enforce session end ===' -} - -exit 0 diff --git a/playbook/shopfloor-setup/common/Register-GEEnforce.ps1 b/playbook/shopfloor-setup/common/Register-GEEnforce.ps1 deleted file mode 100644 index b4405bd..0000000 --- a/playbook/shopfloor-setup/common/Register-GEEnforce.ps1 +++ /dev/null @@ -1,104 +0,0 @@ -# Register-GEEnforce.ps1 - Registers "GE Shopfloor Enforce" scheduled task. -# -# Idempotent: deletes an existing task with the same name first. Also -# unregisters the legacy per-type enforcer tasks so they don't race. -# -# Triggers (all run as SYSTEM, RunLevel=Highest): -# - AtLogOn for first-boot catch-up -# - Repetition every 5 min for fleet auto-update (jittered start offset -# in the first 5 min window to spread 200 PCs) -# - Shift-change windows 05:45, 13:45, 21:45 EST (30-min window each; -# handled by running the task at window start -# and letting the lib run anything not yet -# applied - Stage 2b will gate ApplyMode=Nightly -# entries to only fire inside a window). -# -# Called from Run-ShopfloorSetup.ps1 at imaging time. Also usable manually -# to re-register on an existing PC. - -param( - [string]$EnforcerPath = 'C:\Program Files\GE\Shopfloor\GE-Enforce.ps1' -) - -$ErrorActionPreference = 'Stop' -$taskName = 'GE Shopfloor Enforce' -$legacyTasks = @( - 'GE Common Enforce', - 'GE Acrobat Enforce', - 'GE Shopfloor Machine Apps Enforce', - 'GE Machine Enforce', - 'GE CMM Enforce', - 'GE Keyence Enforce' -) - -function Write-RegisterLog { param([string]$m) Write-Host "[Register-GEEnforce] $m" } - -# Unregister legacy per-type enforcers so only GE-Enforce drives the fleet. -foreach ($name in $legacyTasks) { - $t = Get-ScheduledTask -TaskName $name -ErrorAction SilentlyContinue - if ($t) { - Write-RegisterLog "Unregistering legacy task: $name" - Unregister-ScheduledTask -TaskName $name -Confirm:$false -ErrorAction SilentlyContinue - } -} - -# Drop an existing copy of our own task (re-imaging idempotency). -$existing = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue -if ($existing) { - Write-RegisterLog "Removing existing scheduled task: $taskName" - Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue -} - -# --- Action --- -$action = New-ScheduledTaskAction ` - -Execute 'powershell.exe' ` - -Argument "-NoProfile -ExecutionPolicy Bypass -File `"$EnforcerPath`"" - -# --- Triggers --- -# Per-PC random offset [0, 5) min so 200 PCs don't all fire on :00/:05/:10/... -# Derived from hostname hash so the same PC always picks the same offset. -# SHA-256 instead of MD5 because FIPS-enforced PCs (System Cryptography -# Group Policy) disable MD5 entirely and would throw here; SHA-256 is -# FIPS 180-4 approved. -$hostHash = [System.BitConverter]::ToUInt32( - [System.Security.Cryptography.SHA256]::Create().ComputeHash( - [System.Text.Encoding]::UTF8.GetBytes([System.Environment]::MachineName)), 0) -$offsetMin = $hostHash % 5 # 0..4 - -$startToday = (Get-Date -Hour 0 -Minute $offsetMin -Second 0).AddSeconds(0) - -$logonTrigger = New-ScheduledTaskTrigger -AtLogOn -# Periodic every 5 minutes, repeating indefinitely, starting at the offset -$periodicTrigger = New-ScheduledTaskTrigger -Once -At $startToday -RepetitionInterval (New-TimeSpan -Minutes 5) - -$shift1Trigger = New-ScheduledTaskTrigger -Daily -At '05:45' # 3-to-1 shift -$shift2Trigger = New-ScheduledTaskTrigger -Daily -At '13:45' # 1-to-2 -$shift3Trigger = New-ScheduledTaskTrigger -Daily -At '21:45' # 2-to-3 - -$triggers = @($logonTrigger, $periodicTrigger, $shift1Trigger, $shift2Trigger, $shift3Trigger) - -# --- Principal + Settings --- -$principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest -$settings = New-ScheduledTaskSettingsSet ` - -AllowStartIfOnBatteries ` - -DontStopIfGoingOnBatteries ` - -StartWhenAvailable ` - -ExecutionTimeLimit (New-TimeSpan -Hours 1) ` - -MultipleInstances IgnoreNew - -$description = "GE Shopfloor unified enforcer. Reads common + pc-type manifests from " + - "\\tsgwp00525.wjs.geaerospace.net\shared\dt\shopfloor\, runs " + - "Install-FromManifest.ps1 against each. Periodic 5-min jitter + " + - "AtLogOn + 3x shift-change windows. Log: C:\Logs\Shopfloor\enforce-*.log" - -Register-ScheduledTask ` - -TaskName $taskName ` - -Action $action ` - -Trigger $triggers ` - -Principal $principal ` - -Settings $settings ` - -Description $description | Out-Null - -Write-RegisterLog "Registered '$taskName' (offset $offsetMin min)" -Write-RegisterLog " Triggers: AtLogOn, every 5min, 05:45, 13:45, 21:45" -Write-RegisterLog " Action: powershell -File $EnforcerPath" diff --git a/playbook/shopfloor-setup/common/lib/Install-FromManifest.ps1 b/playbook/shopfloor-setup/common/lib/Install-FromManifest.ps1 deleted file mode 100644 index 686ead3..0000000 --- a/playbook/shopfloor-setup/common/lib/Install-FromManifest.ps1 +++ /dev/null @@ -1,822 +0,0 @@ -# Install-FromManifest.ps1 - Generic JSON-manifest runner for shopfloor apps. -# -# Stage 2a extension: adds PS1, BAT, File, Registry, INF action types and -# Always / MarkerFile / ValueMatches / pnputil detection methods. Also adds -# optional PCTypes filtering (entry skipped if current pc-type.txt doesn't -# match any value in the entry's PCTypes array). -# -# Manifest-schema fields parsed-but-not-yet-acted-on (Stage 2b will wire them): -# ApplyMode, UpdateWindow, InUseCheck. The lib treats all entries as -# immediate-apply today; Stage 2b adds shift-window gating and -# close-and-reopen behavior. -# -# Consumers: -# - GE-Enforce.ps1 (new unified dispatcher, runs via scheduled task with -# both logon and periodic triggers) -# - Legacy *-Enforce.ps1 that still point here (will be retired) -# -# Exit codes: -# 0 = every required entry either already satisfied or installed successfully -# 1 = at least one entry failed -# 2 = manifest or installer-root could not be read - -param( - [Parameter(Mandatory=$true)] [string]$ManifestPath, - [Parameter(Mandatory=$true)] [string]$InstallerRoot, - [Parameter(Mandatory=$true)] [string]$LogFile, - [Parameter(Mandatory=$false)] [string]$PCType, - [Parameter(Mandatory=$false)] [string]$PCSubType -) - -$ErrorActionPreference = 'Continue' - -# Lib's supported manifest schema version. Bump the MAJOR part whenever a -# manifest field or behavior changes in a way older libs can't handle. -# Bump the MINOR part for additive, backward-compatible additions (new -# optional field, new Type, new DetectionMethod). Manifests tagged with -# a newer MAJOR than the lib get processed best-effort with unknown Types -# logged; manifests tagged with a newer MINOR are fine. -# -# Changelog: -# 2.6 - added _CmmVersion filter. Entry tagged _CmmVersion only applies when -# it equals C:\Enrollment\cmm\version.txt (the bay's resolved PC-DMIS -# version, written at imaging from cmm-bay-config.csv). Untagged entries -# always pass; missing/empty version file is a no-op (legacy install-all -# + non-CMM scopes unaffected). Lifted out of 09-Setup-CMM so the gate -# lives in one place both the imaging and enforce paths share. -# 2.5 - Type=EXE handler honors optional WaitTimeoutSec on the manifest -# entry. WiX Burn bootstrappers (UDC_Setup.exe) install the MSI -# successfully but the wrapper process never exits (waits on a -# bundled child service). With WaitTimeoutSec set, kill the -# wrapper after timeout, re-check Test-Installed - if pass, -# treat as success (rc 0); if fail, surface as -2. -# 2.4 - Type=EXE handler stages network-share EXEs to a local temp dir -# before invoking Process.Start. SYSTEM-context Process.Start -# fails with "Access is denied" on \\share or mapped-drive EXE -# paths (empirically confirmed with UDC_Setup.exe 2026-05-02). -# Local invocation works. Cleanup is best-effort in finally. -# 2.3 - PCTypes filter accepts old (Standard, Standard-Machine, CMM, ...) -# and new (gea-shopfloor-collections, gea-shopfloor-cmm, ...) names -# interchangeably via alias sets. Transitional for the rename reorg. -# 2.2 - added TargetMachineNumbers filter (reads C:\Enrollment\machine-number.txt -# then falls back to DNC registry HKLM\...\GE Aircraft Engines\DNC\General\MachineNo) -# 2.1 - added TargetHostnames filter (exact + -like wildcards) -# 2.0 - initial Stage 2a: PS1/BAT/File/Registry/INF action types, -# Always/MarkerFile/ValueMatches/pnputil detection, PCTypes filter -$LIB_MANIFEST_MAJOR = 2 -$LIB_MANIFEST_MINOR = 6 - -$logDir = Split-Path -Parent $LogFile -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -function Write-InstallLog { - param( - [Parameter(Mandatory=$true, Position=0)] [string]$Message, - [Parameter(Position=1)] - [ValidateSet('INFO','WARN','ERROR')] - [string]$Level = 'INFO' - ) - $stamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' - $line = "[$stamp] [$Level] $Message" - Write-Host $line - try { - $fs = New-Object System.IO.FileStream( - $LogFile, - [System.IO.FileMode]::Append, - [System.IO.FileAccess]::Write, - [System.IO.FileShare]::Read, - 4096, - [System.IO.FileOptions]::WriteThrough - ) - $bytes = [System.Text.Encoding]::UTF8.GetBytes($line + "`r`n") - $fs.Write($bytes, 0, $bytes.Length) - $fs.Flush() - $fs.Dispose() - } catch { - Add-Content -Path $LogFile -Value $line -ErrorAction SilentlyContinue - } -} - -Write-InstallLog '================================================================' -Write-InstallLog "=== Install-FromManifest session start (PID $PID) ===" -Write-InstallLog "Manifest: $ManifestPath" -Write-InstallLog "InstallerRoot: $InstallerRoot" -if ($PCType) { Write-InstallLog "PCType: $PCType" } -if ($PCSubType) { Write-InstallLog "PCSubType: $PCSubType" } -Write-InstallLog '================================================================' - -if (-not (Test-Path -LiteralPath $ManifestPath)) { - Write-InstallLog "Manifest not found: $ManifestPath" 'ERROR' - exit 2 -} -if (-not (Test-Path -LiteralPath $InstallerRoot)) { - Write-InstallLog "InstallerRoot not found: $InstallerRoot" 'ERROR' - exit 2 -} - -try { - $config = Get-Content -LiteralPath $ManifestPath -Raw | ConvertFrom-Json -} catch { - Write-InstallLog "Failed to parse manifest: $_" 'ERROR' - exit 2 -} - -if (-not $config.Applications -or $config.Applications.Count -eq 0) { - Write-InstallLog 'No Applications in manifest - nothing to do' - exit 0 -} - -# --------------------------------------------------------------------------- -# Manifest schema version check. Accepts "X" or "X.Y" form. If the manifest -# declares a MAJOR higher than the lib supports, log a clear warning so the -# operator sees "upgrade the lib on this PC" instead of weird silent -# skip-everything behavior. The lib still tries to run (unknown Types will -# log as ERROR and count as failed, but supported entries work). -# --------------------------------------------------------------------------- -$manifestMajor = 0 -$manifestMinor = 0 -if ($config.Version) { - $parts = "$($config.Version)".Split('.') - if ($parts.Length -ge 1 -and [int]::TryParse($parts[0], [ref]$null)) { $manifestMajor = [int]$parts[0] } - if ($parts.Length -ge 2 -and [int]::TryParse($parts[1], [ref]$null)) { $manifestMinor = [int]$parts[1] } -} -if ($manifestMajor -gt $LIB_MANIFEST_MAJOR) { - Write-InstallLog " Manifest schema version $($config.Version) is newer than this lib (supports $LIB_MANIFEST_MAJOR.$LIB_MANIFEST_MINOR). Unknown Types/fields will be logged as errors. Upgrade the lib on this PC." 'WARN' -} elseif ($manifestMajor -eq $LIB_MANIFEST_MAJOR -and $manifestMinor -gt $LIB_MANIFEST_MINOR) { - Write-InstallLog " Manifest schema $($config.Version) is minor-newer than lib $LIB_MANIFEST_MAJOR.$LIB_MANIFEST_MINOR. Should be backward compatible; any unknown Types will be logged." 'INFO' -} - -Write-InstallLog "Manifest lists $($config.Applications.Count) app(s)" - -# --------------------------------------------------------------------------- -# Detection -# --------------------------------------------------------------------------- -function Test-AppInstalled { - param($App) - - if (-not $App.DetectionMethod) { return $false } - - try { - switch ($App.DetectionMethod) { - 'Registry' { - if (-not (Test-Path $App.DetectionPath)) { return $false } - if ($App.DetectionName) { - $value = Get-ItemProperty -Path $App.DetectionPath -Name $App.DetectionName -ErrorAction SilentlyContinue - if (-not $value) { return $false } - if ($App.DetectionValue) { - return ($value.$($App.DetectionName) -eq $App.DetectionValue) - } - return $true - } - return $true - } - 'File' { - return Test-Path $App.DetectionPath - } - 'FileVersion' { - if (-not (Test-Path $App.DetectionPath)) { return $false } - if (-not $App.DetectionValue) { - Write-InstallLog ' FileVersion detection requires DetectionValue - treating as not installed' 'WARN' - return $false - } - $actual = (Get-Item $App.DetectionPath -ErrorAction Stop).VersionInfo.FileVersion - if (-not $actual) { return $false } - return ($actual -eq $App.DetectionValue) - } - 'Hash' { - if (-not (Test-Path $App.DetectionPath)) { return $false } - if (-not $App.DetectionValue) { - Write-InstallLog ' Hash detection requires DetectionValue - treating as not installed' 'WARN' - return $false - } - $actual = (Get-FileHash -Path $App.DetectionPath -Algorithm SHA256 -ErrorAction Stop).Hash - return ($actual -ieq $App.DetectionValue) - } - 'MarkerFile' { - # Used for one-shot PS1 scripts. Presence of the marker file - # means the script already ran successfully. The lib writes - # the marker automatically after a 0 exit on PS1/BAT/CMD. - if (-not $App.DetectionPath) { return $false } - return Test-Path $App.DetectionPath - } - 'ValueMatches' { - # For Type=Registry entries. Check that the registry value - # equals the desired RegValue (read from the app entry). - if (-not (Test-Path $App.DetectionPath)) { return $false } - if (-not $App.DetectionName) { - Write-InstallLog ' ValueMatches detection requires DetectionName' 'WARN' - return $false - } - $p = Get-ItemProperty -Path $App.DetectionPath -Name $App.DetectionName -ErrorAction SilentlyContinue - if (-not $p) { return $false } - return ("$($p.$($App.DetectionName))" -eq "$($App.RegValue)") - } - 'pnputil' { - # For INF drivers. Run pnputil /enum-drivers once and grep. - if (-not $App.DetectionPattern) { - Write-InstallLog ' pnputil detection requires DetectionPattern' 'WARN' - return $false - } - $drivers = & pnputil /enum-drivers 2>&1 | Out-String - return ($drivers -match $App.DetectionPattern) - } - 'Always' { - # Never considered installed - entry runs every cycle. - # Useful for idempotent scripts like the VNC firewall rule. - return $false - } - default { - Write-InstallLog " Unknown detection method: $($App.DetectionMethod)" 'WARN' - return $false - } - } - } catch { - Write-InstallLog " Detection check threw: $_" 'WARN' - return $false - } -} - -# --------------------------------------------------------------------------- -# Action dispatch -# --------------------------------------------------------------------------- -function Join-InstallerPath { - # Plain string math, NOT Join-Path. Join-Path resolves the drive qualifier - # through the PS provider and emits NOTHING (null) if that drive vanished - # mid-cycle - the null then binds into Test-Path -LiteralPath and throws - # "Cannot bind argument to parameter 'LiteralPath' because it is null". - # [IO.Path]::Combine is no good either: its separator and rooted-path rules - # follow the host platform, so it cannot be validated off-Windows. - # Returns $null when the entry is unusable; every caller treats null as - # "not found" and logs, instead of crashing the entry. - param([string]$Root, [string]$Rel) - if ([string]::IsNullOrWhiteSpace($Root) -or [string]::IsNullOrWhiteSpace($Rel)) { return $null } - $clean = ($Rel -replace '/', '\').Trim() - # Reject rooted values ('\x', 'D:\x', '\\server\share'): a manifest entry - # must resolve UNDER the share root, never escape it. - if ($clean -match '^(\\|[A-Za-z]:)') { return $null } - return ($Root.TrimEnd('\') + '\' + $clean) -} - -function Invoke-InstallerAction { - param($App) - - $psi = New-Object System.Diagnostics.ProcessStartInfo - $psi.UseShellExecute = $false - $psi.CreateNoWindow = $true - $psi.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden - - switch ($App.Type) { - 'MSI' { - $installerPath = Join-InstallerPath $InstallerRoot $App.Installer - if ([string]::IsNullOrWhiteSpace($installerPath) -or -not (Test-Path -LiteralPath $installerPath)) { - Write-InstallLog " MSI not found: $installerPath" 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - $safeName = $App.Name -replace '[^a-zA-Z0-9]','_' - $msiLog = Join-Path $logDir "msi-$safeName.log" - if (Test-Path $msiLog) { Remove-Item $msiLog -Force -ErrorAction SilentlyContinue } - $psi.FileName = 'msiexec.exe' - $psi.Arguments = "/i `"$installerPath`"" - if ($App.InstallArgs) { $psi.Arguments += " " + $App.InstallArgs } - $psi.Arguments += " /L*v `"$msiLog`"" - Write-InstallLog " msiexec: $installerPath" - Write-InstallLog " verbose log: $msiLog" - $proc = [System.Diagnostics.Process]::Start($psi) - $proc.WaitForExit() - return [pscustomobject]@{ ExitCode = $proc.ExitCode; LogRef = $msiLog } - } - 'EXE' { - $installerPath = Join-InstallerPath $InstallerRoot $App.Installer - if ([string]::IsNullOrWhiteSpace($installerPath) -or -not (Test-Path -LiteralPath $installerPath)) { - Write-InstallLog " EXE not found: $installerPath" 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - - # Process.Start of an EXE that lives on a network share fails - # with "Access is denied" when the dispatcher runs as SYSTEM, - # even with a valid mount and no Mark-of-the-Web. Empirically - # confirmed 2026-05-02 with UDC_Setup.exe via qga: same path - # works once copied to a local C:\ dir. Stage to a per-cycle - # temp dir, run from there, clean up afterwards. Costs the - # transit time once per fire (most EXEs skip on subsequent - # cycles via detection so this rarely repeats). - $runPath = $installerPath - $isNetworkPath = ($installerPath -match '^\\\\') -or ($installerPath -match '^[A-Z]:\\' -and (Get-PSDrive -Name $installerPath.Substring(0,1) -ErrorAction SilentlyContinue).DisplayRoot) - $stagedPath = $null - if ($isNetworkPath) { - $stagedDir = Join-Path $env:TEMP ("ge-enforce-exe-" + [Guid]::NewGuid().ToString('N').Substring(0,8)) - try { - New-Item -ItemType Directory -Path $stagedDir -Force | Out-Null - $leaf = Split-Path -Leaf $installerPath - $stagedPath = Join-Path $stagedDir $leaf - Copy-Item -LiteralPath $installerPath -Destination $stagedPath -Force -ErrorAction Stop - $runPath = $stagedPath - Write-InstallLog " staged network EXE -> $runPath" - } catch { - Write-InstallLog " failed to stage EXE locally: $_ - attempting direct invocation" 'WARN' - } - } - - $psi.FileName = $runPath - if ($App.InstallArgs) { $psi.Arguments = $App.InstallArgs } - Write-InstallLog " exe: $runPath" - if ($App.InstallArgs) { Write-InstallLog " args: $($App.InstallArgs)" } - # Optional WaitTimeoutSec on the manifest entry: some EXE wrappers - # complete the install but don't exit themselves (UDC_Setup.exe is a - # WiX Burn bootstrapper that hangs post-install waiting on a child - # service that never returns control). When set, kill the wrapper - # after the timeout AND re-check detection - if installed, treat as - # success (rc 0); else surface as failure. Default unset = old - # behavior (block forever via WaitForExit). - $waitTimeoutMs = if ($App.WaitTimeoutSec) { [int]$App.WaitTimeoutSec * 1000 } else { -1 } - try { - $proc = [System.Diagnostics.Process]::Start($psi) - if ($waitTimeoutMs -gt 0) { - $exited = $proc.WaitForExit($waitTimeoutMs) - if (-not $exited) { - Write-InstallLog " WaitTimeoutSec=$($App.WaitTimeoutSec) reached - killing wrapper, will re-check detection" 'WARN' - try { $proc.Kill(); $proc.WaitForExit(5000) | Out-Null } catch {} - Start-Sleep -Seconds 2 - if (Test-AppInstalled -App $App) { - Write-InstallLog " detection passes post-kill - treating as success" - $exitCode = 0 - } else { - Write-InstallLog " detection still missing post-kill - failure" 'ERROR' - $exitCode = -2 - } - } else { - $exitCode = $proc.ExitCode - } - } else { - $proc.WaitForExit() - $exitCode = $proc.ExitCode - } - } catch { - Write-InstallLog " Process.Start failed: $_" 'ERROR' - $exitCode = -1 - } finally { - if ($stagedPath) { - try { Remove-Item -LiteralPath (Split-Path -Parent $stagedPath) -Recurse -Force -ErrorAction Stop } catch {} - } - } - return [pscustomobject]@{ ExitCode = $exitCode; LogRef = $App.LogFile } - } - { $_ -eq 'CMD' -or $_ -eq 'BAT' } { - $installerPath = Join-InstallerPath $InstallerRoot $App.Installer - if ([string]::IsNullOrWhiteSpace($installerPath) -or -not (Test-Path -LiteralPath $installerPath)) { - Write-InstallLog " CMD/BAT not found: $installerPath" 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - $psi.FileName = 'cmd.exe' - $psi.Arguments = "/c `"$installerPath`"" - if ($App.InstallArgs) { $psi.Arguments += " " + $App.InstallArgs } - Write-InstallLog " cmd /c $installerPath" - $proc = [System.Diagnostics.Process]::Start($psi) - $proc.WaitForExit() - return [pscustomobject]@{ ExitCode = $proc.ExitCode; LogRef = $App.LogFile } - } - 'PS1' { - # Accept either Script or Installer as the relative path, and never - # feed a null into Join-Path/Test-Path (that throws a cryptic - # 'LiteralPath is null'). Log the resolved value so a bad/empty - # entry is obvious in the log instead of crashing the entry. - $rel = if ($App.Script) { $App.Script } elseif ($App.Installer) { $App.Installer } else { $null } - if ([string]::IsNullOrWhiteSpace([string]$rel)) { - Write-InstallLog (" PS1 entry '{0}' has no Script/Installer value (Script={1}, Installer={2}) - skipping" -f $App.Name, $App.Script, $App.Installer) 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - $scriptPath = Join-InstallerPath $InstallerRoot $rel - if ([string]::IsNullOrWhiteSpace($scriptPath) -or -not (Test-Path -LiteralPath $scriptPath)) { - Write-InstallLog " PS1 not found: $scriptPath (from rel '$rel')" 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - $psi.FileName = 'powershell.exe' - $psi.Arguments = "-NoProfile -ExecutionPolicy Bypass -File `"$scriptPath`"" - if ($App.Args) { $psi.Arguments += " " + $App.Args } - Write-InstallLog " ps1: $scriptPath" - if ($App.Args) { Write-InstallLog " args: $($App.Args)" } - $proc = [System.Diagnostics.Process]::Start($psi) - $proc.WaitForExit() - return [pscustomobject]@{ ExitCode = $proc.ExitCode; LogRef = $null } - } - 'INF' { - $infPath = Join-InstallerPath $InstallerRoot $App.Installer - if ([string]::IsNullOrWhiteSpace($infPath) -or -not (Test-Path -LiteralPath $infPath)) { - Write-InstallLog " INF not found: $infPath" 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - Write-InstallLog " pnputil /add-driver `"$infPath`" /install" - $out = & pnputil /add-driver "$infPath" /install 2>&1 | Out-String - Write-InstallLog " pnputil output: $($out.Trim())" - # pnputil exits 0 on success, 259 if already installed, etc. - return [pscustomobject]@{ ExitCode = $LASTEXITCODE; LogRef = $null } - } - 'File' { - # Copy a file from the share (configs/*) to an absolute on-PC path. - $source = Join-InstallerPath $InstallerRoot $App.Source - if ([string]::IsNullOrWhiteSpace($source) -or -not (Test-Path -LiteralPath $source)) { - Write-InstallLog " File source not found: $source" 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - if (-not $App.Destination) { - Write-InstallLog ' File entry missing Destination' 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - $destDir = Split-Path -Parent $App.Destination - if ($destDir -and -not (Test-Path $destDir)) { - New-Item -Path $destDir -ItemType Directory -Force | Out-Null - } - try { - Copy-Item -LiteralPath $source -Destination $App.Destination -Force -ErrorAction Stop - Write-InstallLog " copied $source -> $($App.Destination)" - return [pscustomobject]@{ ExitCode = 0; LogRef = $null } - } catch { - Write-InstallLog " Copy failed: $_" 'ERROR' - return [pscustomobject]@{ ExitCode = 1; LogRef = $null } - } - } - 'Registry' { - # Write a single registry value. - if (-not $App.RegPath -or -not $App.RegName) { - Write-InstallLog ' Registry entry missing RegPath/RegName' 'ERROR' - return [pscustomobject]@{ ExitCode = -1; LogRef = $null } - } - if (-not (Test-Path $App.RegPath)) { - New-Item -Path $App.RegPath -Force | Out-Null - } - $type = if ($App.RegType) { $App.RegType } else { 'String' } - try { - Set-ItemProperty -Path $App.RegPath -Name $App.RegName -Value $App.RegValue -Type $type -Force -ErrorAction Stop - Write-InstallLog " set $($App.RegPath)\$($App.RegName) = $($App.RegValue) ($type)" - return [pscustomobject]@{ ExitCode = 0; LogRef = $null } - } catch { - Write-InstallLog " Registry write failed: $_" 'ERROR' - return [pscustomobject]@{ ExitCode = 1; LogRef = $null } - } - } - default { - Write-InstallLog " Unsupported Type: $($App.Type)" 'ERROR' - return [pscustomobject]@{ ExitCode = -2; LogRef = $null } - } - } -} - -# --------------------------------------------------------------------------- -# Entry-applies filter. An entry applies to this PC only if: -# - PCTypes is omitted OR matches current pcType/pcType-subType/"*", AND -# - TargetHostnames is omitted OR matches current COMPUTERNAME -# (supports exact match and -like wildcards: "WJS-*", "*-SHOP-*"). -# Both filters are ANDed so they compose: scope to a type AND a hostname -# subset, or either alone. Case-insensitive throughout. -# --------------------------------------------------------------------------- -# PCTypes alias map for the 2026-05-03 rename reorg. Manifests may use -# either old names (Standard, Standard-Machine, CMM, etc.) or new names -# (gea-shopfloor-collections, gea-shopfloor-cmm, etc.). Each entry below -# is a set of names that all match the same identity. The match logic -# resolves the current PC's identity AND each PCTypes entry into their -# alias sets, then matches if the sets intersect. See -# project-shopfloor-rename-reorg memory for the full rename plan. -$script:_pcTypeAliasGroups = @( - @('Standard', 'gea-shopfloor-collections', 'gea-shopfloor-nocollections', 'gea-shopfloor-common'), - @('Standard-Machine', 'gea-shopfloor-collections', 'gea-shopfloor-nocollections'), - @('Standard-Timeclock', 'gea-shopfloor-common'), - @('CMM', 'gea-shopfloor-cmm'), - @('Keyence', 'gea-shopfloor-keyence'), - @('Lab', 'gea-shopfloor-common'), - @('WaxAndTrace', 'gea-shopfloor-waxtrace'), - @('Genspect', 'gea-shopfloor-genspect'), - @('Display', 'gea-shopfloor-display'), - @('Heattreat', 'gea-shopfloor-heattreat'), - @('PartMarker', 'gea-shopfloor-partmarker') -) - -# Returns every alias set (each itself a string array) that contains $name. -# Multiple groups can return the same name (e.g. "Standard" appears in the -# super-group covering all three new shopfloor variants AND has its own -# subtype-specific groups - by design, matches widely). -function Get-PCTypeAliasSets { - param([string]$Name) - $hits = @() - foreach ($g in $script:_pcTypeAliasGroups) { - foreach ($n in $g) { - if ($n -ieq $Name) { $hits += ,$g; break } - } - } - return ,$hits -} - -function Test-PCTypeMatches { - param($App, [string]$Type, [string]$SubType) - if (-not $App.PCTypes -or $App.PCTypes.Count -eq 0) { return $true } - if (-not $Type) { return $true } - - # Build the set of strings the CURRENT PC matches: bare PCType, - # "Type-SubType", and every alias-set member of either. - $myNames = New-Object System.Collections.Generic.HashSet[string]([System.StringComparer]::OrdinalIgnoreCase) - [void]$myNames.Add($Type) - if ($SubType) { [void]$myNames.Add("$Type-$SubType") } - foreach ($n in @($Type, "$Type-$SubType") | Where-Object { $_ }) { - foreach ($g in (Get-PCTypeAliasSets -Name $n)) { - foreach ($alias in $g) { [void]$myNames.Add($alias) } - } - } - - foreach ($t in $App.PCTypes) { - if ($t -eq '*') { return $true } - if ($myNames.Contains($t)) { return $true } - # Manifest entry's PCTypes value may itself be an alias - expand it - # and check overlap with the PC's identity set. - foreach ($g in (Get-PCTypeAliasSets -Name $t)) { - foreach ($alias in $g) { - if ($myNames.Contains($alias)) { return $true } - } - } - } - return $false -} - -function Test-HostnameMatches { - param($App) - if (-not $App.TargetHostnames -or $App.TargetHostnames.Count -eq 0) { return $true } - # [System.Environment]::MachineName reads the live NetBIOS name from the - # kernel. $env:COMPUTERNAME is cached in the process environment at PS - # startup and is stale after a PC rename until the next reboot - which - # matters on Intune-managed PCs that get renamed post-imaging. - $myName = [System.Environment]::MachineName - foreach ($h in $App.TargetHostnames) { - if ($h -ieq $myName) { return $true } - if ($myName -ilike $h) { return $true } # glob patterns: WJS-*, *-SHOP-* - } - return $false -} - -# Machine-number filter. Stable identifier tied to the bay; survives PC -# replacement at the same machine. -# -# Source of truth = the eDNC/DNC registry MachineNo. That is what the -# reassignment flow (Set-MachineNumber -> Update-MachineNumber) actually -# rewrites when a bay is re-numbered (e.g. 9999 placeholder -> 7501). The -# imaging-time C:\Enrollment\machine-number.txt is written ONCE by startnet.cmd -# at the PXE menu and is NOT updated on reassignment, so it goes stale. Read -# the registry FIRST so TargetMachineNumbers gating follows reassignment; fall -# back to the txt only when the registry has no value (covers non-DNC PCs or a -# bay where eDNC has not populated MachineNo yet). -$script:_cachedMachineNumber = $null -function Get-CurrentMachineNumber { - if ($null -ne $script:_cachedMachineNumber) { return $script:_cachedMachineNumber } - foreach ($r in @( - 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General', - 'HKLM:\SOFTWARE\GE Aircraft Engines\DNC\General' - )) { - if (Test-Path $r) { - $p = Get-ItemProperty -Path $r -ErrorAction SilentlyContinue - if ($p.MachineNo) { - $v = ([string]$p.MachineNo).Trim() - if ($v) { $script:_cachedMachineNumber = $v; return $script:_cachedMachineNumber } - } - } - } - foreach ($p in @('C:\Enrollment\machine-number.txt')) { - if (Test-Path -LiteralPath $p) { - $v = (Get-Content -LiteralPath $p -ErrorAction SilentlyContinue | Select-Object -First 1) - if ($v) { $script:_cachedMachineNumber = $v.Trim(); return $script:_cachedMachineNumber } - } - } - $script:_cachedMachineNumber = '' - return '' -} - -function Test-MachineNumberMatches { - param($App) - if (-not $App.TargetMachineNumbers -or $App.TargetMachineNumbers.Count -eq 0) { return $true } - $myNumber = Get-CurrentMachineNumber - if (-not $myNumber) { return $false } # entry restricts by machine #, but PC has no machine # -> exclude - foreach ($n in $App.TargetMachineNumbers) { - if ([string]$n -ieq $myNumber) { return $true } - } - return $false -} - -# CMM PC-DMIS version filter. The bay's PC-DMIS version (2016/2019/2026) is -# resolved at imaging by resolve-cmm-bay-config.ps1 from cmm-bay-config.csv (the -# single bay -> version map) and persisted to C:\Enrollment\cmm\version.txt. An -# entry tagged _CmmVersion applies only when it equals that file; untagged -# entries (CLM, goCMM, Protect Viewer, DODA, the PDF converter) always pass. -# When the file is absent/empty - a bay imaged before the picker, or any -# non-CMM PC running a different scope - the filter is a no-op so every tagged -# entry passes. That preserves the legacy "install all versions" behavior for -# pre-picker bays and leaves non-CMM scopes untouched. -# -# This is the SINGLE place the version gate lives. Both the imaging path -# (09-Setup-CMM) and the runtime path (GE-Enforce) call this lib, so the gate -# cannot apply in one path and not the other. The 2016-installed-on-a-2019-bay -# bug was exactly that drift: the imaging path filtered by _CmmVersion but the -# enforce path did not, so enforce reinstalled every version it did not detect. -$script:_cachedCmmVersion = $null -$script:_cmmVersionRead = $false -function Get-CurrentCmmVersion { - if ($script:_cmmVersionRead) { return $script:_cachedCmmVersion } - $script:_cmmVersionRead = $true - $f = 'C:\Enrollment\cmm\version.txt' - if (Test-Path -LiteralPath $f) { - $v = (Get-Content -LiteralPath $f -First 1 -ErrorAction SilentlyContinue) - if ($v) { $script:_cachedCmmVersion = $v.Trim() } - } - return $script:_cachedCmmVersion -} - -function Test-CmmVersionMatches { - param($App) - if (-not $App._CmmVersion) { return $true } # untagged entry always applies - $myVer = Get-CurrentCmmVersion - if (-not $myVer) { return $true } # no resolved version -> legacy install-all - return ([string]$App._CmmVersion -ieq $myVer) -} - -# --------------------------------------------------------------------------- -# Main loop -# --------------------------------------------------------------------------- -$installed = 0 -$skipped = 0 -$failed = 0 -$pcFiltered = 0 - -# Per-entry outcomes for the caller's report (the API enforce runner captures -# the object emitted at the end). SMB/GE-Enforce.ps1 ignores stdout + reads the -# exit code, so this is additive and does not change the share path. -$script:enforceResults = [System.Collections.Generic.List[object]]::new() -function Add-EnforceResult { - param([string]$Name, [string]$Action, [int]$ExitCode = 0, - [bool]$SelfHealed = $false, [string]$Message = '') - $script:enforceResults.Add([pscustomobject]@{ - Name = $Name; Action = $Action; ExitCode = $ExitCode - SelfHealed = $SelfHealed; Message = $Message }) -} - -foreach ($app in $config.Applications) { - # Cancel any reboot that a prior MSI queued, so the enforcer never - # triggers an unexpected restart on a shopfloor PC. - cmd /c 'shutdown /a 2>nul' *>$null - - Write-InstallLog "==> $($app.Name)" - - # Per-entry guard: a single entry that throws must NOT abort the whole - # scope (and silently skip every later entry + the status write). Catch, - # log, count as failed, move on. - try { - - if (-not (Test-PCTypeMatches -App $app -Type $PCType -SubType $PCSubType)) { - Write-InstallLog " PCTypes filter: entry targets $($app.PCTypes -join ',') but PC is $PCType$(if ($PCSubType) { "-$PCSubType" }) - skipping" - $pcFiltered++ - Add-EnforceResult -Name $app.Name -Action 'filtered' -Message 'PCTypes filter' - continue - } - - if (-not (Test-HostnameMatches -App $app)) { - Write-InstallLog " TargetHostnames filter: entry targets $($app.TargetHostnames -join ',') but PC is $([System.Environment]::MachineName) - skipping" - $pcFiltered++ - Add-EnforceResult -Name $app.Name -Action 'filtered' -Message 'TargetHostnames filter' - continue - } - - if (-not (Test-MachineNumberMatches -App $app)) { - $myNum = Get-CurrentMachineNumber - Write-InstallLog " TargetMachineNumbers filter: entry targets $($app.TargetMachineNumbers -join ',') but machine number is $(if ($myNum) { $myNum } else { '(none)' }) - skipping" - $pcFiltered++ - Add-EnforceResult -Name $app.Name -Action 'filtered' -Message 'TargetMachineNumbers filter' - continue - } - - if (-not (Test-CmmVersionMatches -App $app)) { - $myVer = Get-CurrentCmmVersion - Write-InstallLog " _CmmVersion filter: entry targets $($app._CmmVersion) but bay version is $(if ($myVer) { $myVer } else { '(none)' }) - skipping" - $pcFiltered++ - Add-EnforceResult -Name $app.Name -Action 'filtered' -Message '_CmmVersion filter' - continue - } - - if (Test-AppInstalled -App $app) { - Write-InstallLog ' Already installed at expected version - skipping' - $skipped++ - Add-EnforceResult -Name $app.Name -Action 'skipped' -Message 'already installed' - continue - } - - # --- InUseCheck (partial Stage 2b): ForceClose / CloseAndReopen --- - # Before install, if the entry declares processes that would block the - # install, close them. Stage 2a supports ForceClose: polite WM_CLOSE - # with a timeout then hard Kill. "CloseAndReopen" is currently treated - # the same (Stage 2b will add the user-session relaunch trick). No - # reopen happens today; operator relaunches the app or the enforcer - # leaves it for Windows Explorer / Start-Menu shortcut behavior. - if ($app.InUseCheck -and $app.InUseCheck.Behavior -in @('ForceClose','CloseAndReopen')) { - foreach ($p in ($app.InUseCheck.Processes | Where-Object { $_ })) { - $procs = Get-Process -Name $p.Name -ErrorAction SilentlyContinue - foreach ($proc in $procs) { - $timeout = if ($p.GracefulCloseTimeoutSec) { [int]$p.GracefulCloseTimeoutSec } else { 10 } - try { - Write-InstallLog " InUseCheck: $($p.Name) (PID $($proc.Id)) asked to close (timeout ${timeout}s)" - $null = $proc.CloseMainWindow() - if (-not $proc.WaitForExit([int]($timeout * 1000))) { - Write-InstallLog " InUseCheck: $($p.Name) did not exit gracefully - killing" 'WARN' - $proc.Kill() - $proc.WaitForExit(5000) | Out-Null - } - } catch { - Write-InstallLog " InUseCheck: close/kill of $($p.Name) threw: $_" 'WARN' - } - } - } - } - - $result = Invoke-InstallerAction -App $app - $rc = $result.ExitCode - - if ($rc -eq 0 -or $rc -eq 1641 -or $rc -eq 3010 -or $rc -eq 259) { - Write-InstallLog " Exit $rc - SUCCESS" - if ($rc -eq 3010) { Write-InstallLog " (Reboot pending for $($app.Name))" } - if ($rc -eq 1641) { Write-InstallLog " (Installer initiated a reboot for $($app.Name))" } - if ($rc -eq 259) { Write-InstallLog ' (pnputil: no newer driver found - considered installed)' } - $installed++ - # SelfHealed = a real drift correction (a detected-missing entry we - # re-installed). Always/no-detection entries install every cycle by - # design and are not self-heals, so the report stays 'ok' for them. - Add-EnforceResult -Name $app.Name -Action 'installed' -ExitCode $rc ` - -SelfHealed ([bool]($app.DetectionMethod -and $app.DetectionMethod -ne 'Always')) ` - -Message "Exit $rc" - - # Auto-write marker file for MarkerFile-detected entries that just - # completed successfully. Keeps one-shot PS1 scripts from running - # twice (idempotent scripts can skip this by using Always detection). - if ($app.DetectionMethod -eq 'MarkerFile' -and $app.DetectionPath) { - $markerDir = Split-Path -Parent $app.DetectionPath - if ($markerDir -and -not (Test-Path $markerDir)) { - New-Item -Path $markerDir -ItemType Directory -Force | Out-Null - } - try { - Set-Content -Path $app.DetectionPath -Value (Get-Date -Format 'o') -ErrorAction Stop - Write-InstallLog " marker written: $($app.DetectionPath)" - } catch { - Write-InstallLog " marker write failed: $_" 'WARN' - } - } - } - else { - Write-InstallLog " Exit $rc - FAILED" 'ERROR' - - if ($result.LogRef -and (Test-Path $result.LogRef)) { - if ($app.Type -eq 'MSI') { - Write-InstallLog " --- meaningful lines from $($result.LogRef) ---" - $patterns = @( - 'Note: 1: ', 'return value 3', 'Error \d+\.', - 'CustomAction .* returned actual error', 'Failed to ', - 'Installation failed', '1: 2262', '1: 2203', '1: 2330' - ) - $regex = ($patterns -join '|') - $matches = Select-String -Path $result.LogRef -Pattern $regex -ErrorAction SilentlyContinue | Select-Object -First 30 - if ($matches) { - foreach ($m in $matches) { Write-InstallLog " $($m.Line.Trim())" } - } else { - Get-Content $result.LogRef -Tail 25 -ErrorAction SilentlyContinue | ForEach-Object { Write-InstallLog " $_" } - } - Write-InstallLog ' --- end MSI log scan ---' - } else { - Write-InstallLog " --- last 30 lines of $($result.LogRef) ---" - Get-Content $result.LogRef -Tail 30 -ErrorAction SilentlyContinue | ForEach-Object { Write-InstallLog " $_" } - Write-InstallLog ' --- end installer log tail ---' - } - } - - $failed++ - Add-EnforceResult -Name $app.Name -Action 'failed' -ExitCode $rc -Message "Exit $rc - FAILED" - } - - } catch { - Write-InstallLog (" UNCAUGHT error processing {0}: {1} | at {2}" -f $app.Name, $_.Exception.Message, ($_.ScriptStackTrace -replace '\s+',' ')) 'ERROR' - $failed++ - Add-EnforceResult -Name $app.Name -Action 'failed' -Message $_.Exception.Message - } -} - -Write-InstallLog '============================================' -Write-InstallLog "Install-FromManifest complete: $installed installed, $skipped skipped, $failed failed, $pcFiltered pc-filtered" -Write-InstallLog '============================================' - -cmd /c 'shutdown /a 2>nul' *>$null - -# Emit the summary object for the API enforce runner to report. Write-Host log -# lines above go to the host stream, so this is the only value on the success -# stream that '& $EnginePath' captures. The exit code is unchanged (SMB path). -Write-Output ([pscustomobject]@{ - Installed = $installed - Skipped = $skipped - Failed = $failed - Filtered = $pcFiltered - EnforcerVersion = "$LIB_MANIFEST_MAJOR.$LIB_MANIFEST_MINOR" - Results = $script:enforceResults.ToArray() -}) - -if ($failed -gt 0) { exit 1 } -exit 0 diff --git a/playbook/shopfloor-setup/common/lib/ShopdbBackupClient.psm1 b/playbook/shopfloor-setup/common/lib/ShopdbBackupClient.psm1 deleted file mode 100644 index 355f882..0000000 --- a/playbook/shopfloor-setup/common/lib/ShopdbBackupClient.psm1 +++ /dev/null @@ -1,526 +0,0 @@ -# ShopdbBackupClient - the client half of the ShopDB asset-backup contract. -# -# WHY THIS EXISTS -# -# ShopDB's backups plugin is a pluggable registry: a "kind" declares how a -# config is parsed, rendered and resolved to an asset, and in return gets -# revision history, content dedup, retention, diffs and an asset panel. The -# server half is a clean contract. The client half was not: exactly one script -# on this share posted backups (Backup-NtlarsSettings), and everything around -# the post - finding the collector key, reading the interval, throttling, -# logging - lived inside it, bespoke. -# -# The cost showed up the day someone looked. The interval came from a public -# settings key the plugin never declared public, so the read silently fell back -# to a hardcoded 24 hours and the setting did nothing for months. The log wrote -# three lines every five minutes whatever happened, reaching 3,234 lines of -# which 3,217 were the same "Throttled" line. Seven other Backup-*.ps1 scripts -# on this share capture device configs and post NONE of them, so nothing about -# a CMM, a PC-DMIS bay or an MTConnect box has any history in ShopDB. -# -# Wiring those seven the old way would have produced seven more copies of all -# of the above. So the shared parts live here, once, and a per-device script -# becomes: capture the config, call Send-ShopdbBackup. -# -# USAGE -# -# Import-Module "$PSScriptRoot\..\lib\ShopdbBackupClient.psm1" -Force -# $ctx = Initialize-ShopdbBackup -Kind 'gocmm' -# if (-not $ctx.Proceed) { exit 0 } # quiet exit, already logged -# $bytes = [IO.File]::ReadAllBytes($configPath) -# Send-ShopdbBackup -Context $ctx -Bytes $bytes -SourceFileName 'settings.xml' -# -# Initialize-ShopdbBackup does every check that can say "nothing to do today": -# machine number, collector key, base URL, throttle. Each of those is logged -# ONCE and then stays quiet while it holds, so a PC with no NTLARS does not -# write the same line 288 times a day. -# -# PER-KIND STATE, deliberately. Marker, state and log files are all named from -# the kind, so a bay running two backup kinds does not have them fighting over -# one marker file - which is what a single fixed name would have caused the -# first time a second kind shipped. - -Set-StrictMode -Version Latest - -$script:LOGDIR = 'C:\Logs\Shopfloor' -$script:SHOPDBREG = 'HKLM:\SOFTWARE\GE\ShopDB' -$script:KEYFILE = 'C:\Enrollment\shopdb-key.txt' -$script:PCCONFIG = 'C:\Enrollment\pc-config.txt' -# The DEVICE this PC drives, by asset number - a part marker, a CMM, a Keyence. -# Written at staging and read by the computers collector, which resolves it with -# _asset_by_number and refuses a name it cannot find rather than minting a -# phantom. Marker and measuring-tool bays have no machine number of their own -# ("keyence / genspect / part-marker have no per-bay id" in -# Report-AssetToShopDB.ps1), so for those this file IS the identity. -$script:ASSETIDFILE = 'C:\Enrollment\asset-id.txt' -# 0.12.0 shipped this name before the file was generalised; a bay staged then -# still has it. -$script:LEGACYASSETIDFILE = 'C:\Enrollment\measuringtool-id.txt' - -# The action ShopDB reported for the most recent post, per kind: 'created', -# 'noop', or '' when nothing has been posted. Send-ShopdbBackup returns only -# accepted/not-accepted, and changing that would break its existing caller - but -# a share kind has to know the difference, because it decides whether the -# snapshot directory it just wrote is a new revision or a duplicate to remove. -$script:LASTACTION = @{} - - -function Get-ShopdbLogPath { - param([Parameter(Mandatory)][string]$Kind) - # Date-stamped at source. An append-only name can never age out of the - # GE-Enforce retention sweep, which drops by LastWriteTime - a file written - # every cycle is always "recent" and grows forever. - Join-Path $script:LOGDIR ('{0}-backup-{1}.log' -f $Kind, (Get-Date -Format 'yyyyMMdd')) -} - - -function Write-ShopdbBackupLog { - param([Parameter(Mandatory)][string]$Kind, - [Parameter(Mandatory)][string]$Message) - if (-not (Test-Path $script:LOGDIR)) { - New-Item -ItemType Directory -Path $script:LOGDIR -Force -EA SilentlyContinue | Out-Null - } - $line = '[{0}] {1}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Message - Add-Content -Path (Get-ShopdbLogPath -Kind $Kind) -Value $line -EA SilentlyContinue - Write-Host $line -} - - -function Write-ShopdbQuietState { - <# - Log a no-change outcome once, then stay silent while it holds. - Returns nothing; the caller exits on a quiet outcome. - - GE-Enforce runs every 5 minutes. An outcome that does not change is - worth saying once, not 288 times a day. Any real event clears the state - so the next quiet spell announces itself - otherwise a PC that stopped - working would look exactly like one still posting. - #> - param([Parameter(Mandatory)][string]$Kind, - [Parameter(Mandatory)][string]$State, - [Parameter(Mandatory)][string]$Message) - $statefile = Join-Path $script:LOGDIR ('{0}-backup.state' -f $Kind) - $previous = '' - if (Test-Path $statefile) { - try { $previous = (Get-Content -LiteralPath $statefile -First 1 -EA Stop).Trim() } catch { } - } - if ($previous -ne $State) { - Write-ShopdbBackupLog -Kind $Kind -Message $Message - Set-Content -Path $statefile -Value $State -EA SilentlyContinue - } -} - - -function Clear-ShopdbQuietState { - param([Parameter(Mandatory)][string]$Kind) - Remove-Item -LiteralPath (Join-Path $script:LOGDIR ('{0}-backup.state' -f $Kind)) ` - -Force -EA SilentlyContinue -} - - -function Get-ShopdbRegValue { - <# - One value from HKLM:\SOFTWARE\GE\ShopDB. - - The SAME contract the display kiosks use: Install-ShopdbKiosk writes - BaseUrl / ApiToken / CollectorKey there and ACLs it to SYSTEM and - Administrators. Machine bays read the same place rather than inventing - a second home for one secret, so one delivery mechanism serves the whole - fleet and the diagnostics collector already knows to redact it. - #> - param([Parameter(Mandatory)][string]$Name) - try { - $props = Get-ItemProperty -Path $script:SHOPDBREG -EA Stop - if ($props.PSObject.Properties.Name -contains $Name) { - $val = [string]$props.$Name - if ($val) { return $val.Trim() } - } - } catch { } - return '' -} - - -function Get-ShopdbCollectorKey { - # Registry first (how the fleet is provisioned), then the enrollment file - # for a bay staged before that existed. - $key = Get-ShopdbRegValue -Name 'CollectorKey' - if ($key) { return $key } - if (Test-Path $script:KEYFILE) { - foreach ($line in (Get-Content -LiteralPath $script:KEYFILE -EA SilentlyContinue)) { - if ($line -match '^\s*collector\s*=\s*(.+)$') { return $matches[1].Trim() } - } - } - return '' -} - - -function Get-ShopdbAssetId { - <# - The asset number of the device this PC drives, or ''. - - Same file and same precedence the computers collector uses, so a bay - cannot report its marker under one identity and its backup under - another. - #> - foreach ($file in @($script:ASSETIDFILE, $script:LEGACYASSETIDFILE)) { - if (Test-Path $file) { - try { - $value = ([string](Get-Content -LiteralPath $file -First 1 -EA Stop)).Trim() - if ($value) { return $value } - } catch { } - } - } - return '' -} - - -function Get-ShopdbMachineNumber { - <# - The machine number this PC reports, from pc-config.txt. - - A device-specific fallback can be supplied when the application itself - knows the number - NTLARS keeps one in its own registry key. Callers - without one just get '' and exit quietly. - #> - param([scriptblock]$Fallback) - if (Test-Path $script:PCCONFIG) { - foreach ($line in (Get-Content -LiteralPath $script:PCCONFIG -EA SilentlyContinue)) { - if ($line -match '^\s*machine(number|no)?\s*=\s*(.+)$') { - $val = $matches[2].Trim() - # 9999 is the imaging-time placeholder, not a real bay. - if ($val -and $val -ne '9999') { return $val } - } - } - } - if ($Fallback) { - try { - $val = & $Fallback - if ($val) { return ([string]$val).Trim() } - } catch { } - } - - # NO asset-id.txt fallback here, deliberately. It belongs to the CALLER. - # - # A part-marker bay has no machine number of its own but does have the DNC - # registry tree, so Backup-NtlarsSettings.ps1 passes its key check and - # reaches this function. A shared fallback would make it post the machine's - # DNC settings under the MARKER's asset number - a kind that resolves by - # machine number, handed a device asset number - where today it exits - # quietly. That is a behaviour change to a script running in production. - # - # A kind that legitimately identifies itself by device passes - # -MachineNumberFallback { Get-ShopdbAssetId } instead. The per-kind - # mechanism already exists; this is what it is for. - return '' -} - - -function Get-ShopdbIntervalHours { - <# - Minimum hours between attempts, from the backups_intervalhours setting. - - Read UNAUTHENTICATED from /api/settings/public, because this runs before - any credential is needed. That endpoint serves an allowlist, and the key - must be declared public by the plugin - it was not, for months, so this - read returned nothing and the fallback below silently governed the whole - fleet. The fallback stays (an unreachable server must not mean a hot - loop) but a miss is now LOGGED rather than swallowed, so the same - failure cannot hide again. - #> - param([Parameter(Mandatory)][string]$Kind, - [Parameter(Mandatory)][string]$BaseUrl, - [int]$Default = 24) - try { - $resp = Invoke-RestMethod -Uri "$BaseUrl/api/settings/public" -Method Get ` - -TimeoutSec 10 -EA Stop - $val = $null - if ($resp -and $resp.PSObject.Properties.Name -contains 'data') { - if ($resp.data.PSObject.Properties.Name -contains 'backups_intervalhours') { - $val = $resp.data.backups_intervalhours - } - } - if ($val) { return [int]$val } - Write-ShopdbQuietState -Kind $Kind -State 'interval-not-public' -Message ( - 'backups_intervalhours is not readable from /api/settings/public; ' + - "using the built-in ${Default}h. The plugin must declare the key public.") - } catch { - Write-ShopdbQuietState -Kind $Kind -State 'interval-unreachable' -Message ( - "Could not read settings from $BaseUrl ($($_.Exception.Message)); using ${Default}h.") - } - return $Default -} - - -function Initialize-ShopdbBackup { - <# - Every check that can say "nothing to do", in one call. - - Returns a context object. .Proceed is $false when the run should stop - - the reason has already been logged, once. On $true the context carries - Kind, BaseUrl, CollectorKey, MachineNumber and IntervalHours, and the - marker has NOT yet been stamped (Send-ShopdbBackup does that). - #> - param([Parameter(Mandatory)][string]$Kind, - [string]$BaseUrl, - [scriptblock]$MachineNumberFallback, - [switch]$Force) - - $ctx = [pscustomobject]@{ - Kind = $Kind - Proceed = $false - BaseUrl = '' - CollectorKey = '' - MachineNumber = '' - IntervalHours = 24 - } - - $machineNumber = Get-ShopdbMachineNumber -Fallback $MachineNumberFallback - if (-not $machineNumber) { - Write-ShopdbQuietState -Kind $Kind -State 'no-machine-number' -Message ( - 'No machine number in pc-config.txt and no device fallback. ' + - 'A backup cannot be filed against an asset - skipping.') - return $ctx - } - - $collectorKey = Get-ShopdbCollectorKey - if (-not $collectorKey) { - Write-ShopdbQuietState -Kind $Kind -State 'no-collector-key' -Message ( - "No collector key in $script:SHOPDBREG\CollectorKey or $script:KEYFILE. " + - 'The collector endpoint has no IP-allowlist path, unlike the GE-Enforce ' + - 'manifest fetch, so it always needs a collector-scoped token. Skipping.') - return $ctx - } - - if (-not $BaseUrl) { $BaseUrl = Get-ShopdbRegValue -Name 'BaseUrl' } - if (-not $BaseUrl) { - Write-ShopdbQuietState -Kind $Kind -State 'no-base-url' -Message ( - "No ShopDB BaseUrl in $script:SHOPDBREG and none passed. Skipping.") - return $ctx - } - $BaseUrl = $BaseUrl.TrimEnd('/') - - $intervalHours = Get-ShopdbIntervalHours -Kind $Kind -BaseUrl $BaseUrl - $markerfile = Join-Path $script:LOGDIR ('{0}-backup.marker' -f $Kind) - if (-not $Force -and (Test-Path $markerfile)) { - try { - $last = (Get-Item $markerfile).LastWriteTime - if (((Get-Date) - $last).TotalHours -lt $intervalHours) { - $due = $last.AddHours($intervalHours).ToString('yyyy-MM-dd HH:mm') - Write-ShopdbQuietState -Kind $Kind -State ("throttled-$due") -Message ( - "Throttled: posted within the last ${intervalHours}h, next attempt after $due. " + - 'Use -Force to override.') - return $ctx - } - } catch { } - } - - $ctx.Proceed = $true - $ctx.BaseUrl = $BaseUrl - $ctx.CollectorKey = $collectorKey - $ctx.MachineNumber = $machineNumber - $ctx.IntervalHours = $intervalHours - - Clear-ShopdbQuietState -Kind $Kind - Write-ShopdbBackupLog -Kind $Kind -Message ( - "=== $Kind backup start === machine $machineNumber, $BaseUrl, interval ${intervalHours}h") - return $ctx -} - - -function Send-ShopdbBackup { - <# - POST one captured config to the ShopDB collector. - - -Bytes for a kind ShopDB parses and stores (storagebackend 'shopdb'). - -ContentHash with -SharePath for a kind whose bytes stay on the share - (storagebackend 'share'), where ShopDB keeps metadata and a pointer. - - Returns $true when ShopDB accepted it, whether that produced a new - revision or a no-op; an unchanged config is a no-op by design and is - the expected outcome most cycles. - #> - param([Parameter(Mandatory)][pscustomobject]$Context, - [byte[]]$Bytes, - [string]$ContentHash, - [string]$SharePath, - [string]$SourceFileName, - # Optional description of a share kind's snapshot - what is in it, not - # the bytes. ShopDB stores it so an asset panel can list the contents - # and diff them against the previous snapshot; without it the server - # would have to mount the share, which it refuses to do. Advisory: - # dedup still keys on ContentHash. - [hashtable]$Manifest, - [int]$TimeoutSec = 30) - - $kind = $Context.Kind - - # Marker BEFORE the post, deliberately. If ShopDB is unreachable we do not - # want every cycle for the rest of the day retrying; the next window picks - # it up. - $markerfile = Join-Path $script:LOGDIR ('{0}-backup.marker' -f $kind) - Set-Content -Path $markerfile -Value (Get-Date -Format 'o') -EA SilentlyContinue - - # sourcehostname is load-bearing now, not just informational: ShopDB - # resolves a part-marker PC's backup to ITS marker through this field, and - # dedup keys a revision chain on it. An empty value silently files the - # backup against the operation instead and merges two devices' histories, - # so fall back to the DNS name rather than posting a blank. - $sourcehost = $env:COMPUTERNAME - if (-not $sourcehost) { - try { $sourcehost = [System.Net.Dns]::GetHostName() } catch { $sourcehost = '' } - } - - $payload = @{ - machinenumber = $Context.MachineNumber - backupkind = $kind - sourcehostname = $sourcehost - collectedat = (Get-Date).ToUniversalTime().ToString('o') - } - if ($SourceFileName) { $payload['sourcefilename'] = $SourceFileName } - if ($Bytes) { - $payload['contentbase64'] = [Convert]::ToBase64String($Bytes) - $payload['bytesize'] = $Bytes.Length - } - if ($ContentHash) { $payload['contenthash'] = $ContentHash } - if ($SharePath) { $payload['sharepath'] = $SharePath } - if ($Manifest) { $payload['manifest'] = $Manifest } - - $uri = '{0}/api/collector/backups' -f $Context.BaseUrl - $size = if ($Bytes) { '{0} bytes' -f $Bytes.Length } else { $SharePath } - Write-ShopdbBackupLog -Kind $kind -Message ( - 'Posting {0} for machine {1}' -f $size, $Context.MachineNumber) - - try { - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 - $resp = Invoke-RestMethod -Uri $uri -Method Post ` - -Body ($payload | ConvertTo-Json -Compress -Depth 6) ` - -ContentType 'application/json' ` - -Headers @{ 'X-API-Key' = $Context.CollectorKey } ` - -TimeoutSec $TimeoutSec -EA Stop - - $script:LASTACTION[$kind] = "$($resp.data.action)" - switch ("$($resp.data.action)") { - 'created' { Write-ShopdbBackupLog -Kind $kind -Message ( - 'New revision {0} recorded.' -f $resp.data.backuprevisionid) } - 'noop' { Write-ShopdbBackupLog -Kind $kind -Message 'Settings unchanged - no new revision (expected most cycles).' } - default { Write-ShopdbBackupLog -Kind $kind -Message ( - "ShopDB returned action '{0}'." -f $resp.data.action) } - } - foreach ($warning in @($resp.data.warnings)) { - if ($warning) { Write-ShopdbBackupLog -Kind $kind -Message " WARNING: $warning" } - } - return $true - } catch { - # A 400 here is usually meaningful rather than transient: an - # unconfigured device, or a machine number ShopDB does not know. Log the - # server's own message so the cause is visible at the bay. - $detail = $_.Exception.Message - try { - $stream = $_.Exception.Response.GetResponseStream() - $reader = New-Object IO.StreamReader($stream) - $body = $reader.ReadToEnd() - if ($body) { $detail = $body } - } catch { } - Write-ShopdbBackupLog -Kind $kind -Message "Post failed: $detail" - return $false - } -} - - -function Add-ShopdbBackupSkip { - <# - Record that a cycle was skipped, and why. - - A skipped cycle posts NOTHING to ShopDB, deliberately: lastseenat means - "this config was confirmed still current", so posting a no-op to keep a - marker green would be a lie that hides a backup which has not run for a - month. The staleness badge is what surfaces that. - - What ShopDB cannot know is WHY, so the count and the reason are kept - locally and carried into the next successful snapshot's manifest. A - marker that captures once a week because its port is busy every shift - change then says so on its own asset page. - #> - param([Parameter(Mandatory)][string]$Kind, - [Parameter(Mandatory)][string]$Reason) - - $file = Join-Path $script:LOGDIR ('{0}-backup.skips' -f $Kind) - $count = 0 - $first = (Get-Date).ToUniversalTime().ToString('o') - if (Test-Path $file) { - try { - $existing = Get-Content -LiteralPath $file -Raw | ConvertFrom-Json - $count = [int]$existing.count - if ($existing.first) { $first = [string]$existing.first } - } catch { } - } - if (-not (Test-Path $script:LOGDIR)) { - New-Item -ItemType Directory -Path $script:LOGDIR -Force -EA SilentlyContinue | Out-Null - } - [pscustomobject]@{ - count = $count + 1 - first = $first - last = (Get-Date).ToUniversalTime().ToString('o') - reason = $Reason - } | ConvertTo-Json -Compress | Set-Content -Path $file -EA SilentlyContinue -} - - -function Get-ShopdbBackupSkips { - <# - Skipped cycles since the last successful capture: @{count; first; last; - reason}, or $null when none. Read into the manifest, then cleared by - Clear-ShopdbBackupSkips once a capture actually succeeds. - #> - param([Parameter(Mandatory)][string]$Kind) - $file = Join-Path $script:LOGDIR ('{0}-backup.skips' -f $Kind) - if (-not (Test-Path $file)) { return $null } - try { - $data = Get-Content -LiteralPath $file -Raw | ConvertFrom-Json - return @{ - count = [int]$data.count - first = [string]$data.first - last = [string]$data.last - reason = [string]$data.reason - } - } catch { return $null } -} - - -function Clear-ShopdbBackupSkips { - param([Parameter(Mandatory)][string]$Kind) - Remove-Item -LiteralPath (Join-Path $script:LOGDIR ('{0}-backup.skips' -f $Kind)) ` - -Force -EA SilentlyContinue -} - - -function Get-ShopdbLastBackupAction { - <# - What ShopDB did with the most recent post for this kind: 'created', - 'noop', or '' if nothing was posted or the post failed. - #> - param([Parameter(Mandatory)][string]$Kind) - if ($script:LASTACTION.ContainsKey($Kind)) { return $script:LASTACTION[$Kind] } - return '' -} - - -function Test-ShopdbBackupNoop { - <# - True when the last post for this kind changed nothing. A share kind uses - this to delete the snapshot it just wrote: a no-op proves byte-identical - content already exists in the previous snapshot, so removing the copy - loses nothing and stops one identical directory accumulating per cycle. - #> - param([Parameter(Mandatory)][string]$Kind) - return ((Get-ShopdbLastBackupAction -Kind $Kind) -eq 'noop') -} - - -Export-ModuleMember -Function Initialize-ShopdbBackup, Send-ShopdbBackup, - Write-ShopdbBackupLog, Write-ShopdbQuietState, Clear-ShopdbQuietState, - Get-ShopdbRegValue, Get-ShopdbCollectorKey, Get-ShopdbMachineNumber, - Get-ShopdbIntervalHours, Get-ShopdbLogPath, - Get-ShopdbLastBackupAction, Test-ShopdbBackupNoop, - Add-ShopdbBackupSkip, Get-ShopdbBackupSkips, Clear-ShopdbBackupSkips, - Get-ShopdbAssetId diff --git a/playbook/shopfloor-setup/common/lib/TelesisMarker.psm1 b/playbook/shopfloor-setup/common/lib/TelesisMarker.psm1 deleted file mode 100644 index 422aef7..0000000 --- a/playbook/shopfloor-setup/common/lib/TelesisMarker.psm1 +++ /dev/null @@ -1,562 +0,0 @@ -# TelesisMarker - talk to a Telesis pinstamp controller over RS-232. -# -# WHAT THIS IS -# -# The wire protocol Telesis' own Backup470 utility speaks, reimplemented so a -# bay can back its marker up unattended. Backup470 is a GUI with no command -# line, so without this there is no way to capture a controller's patterns on a -# schedule - which is why the 470s have never been backed up at all. -# -# Reversed from a capture of the real utility against a TMC470 on 2026-08-25 and -# verified against hardware: a pattern pulled by this code is byte-identical to -# the one Backup470 saved, and a pattern written back by this code survives a -# power cycle. -# -# FRAMING -# -# host -> ctrl: EOT SOH <2-digit station> STX ETX CR -# ctrl -> host: SOH ACK STX ETX CR -# -# BCC is (TYPE + sum of DATA bytes) AND 0xFF, sent as three ASCII decimal -# digits. The station ID and block sequence numbers are NOT part of the sum - -# that asymmetry is real and every frame in the capture confirms it. -# -# CONTENT LISTS - three of them, and they are separate lists rather than one -# list filtered: -# -# patterns TYPE 'F' start "R" step "" -# parameters TYPE 'F' start "H" step "N" -# fonts TYPE '4' start "R" step "" (step UNVERIFIED, see below) -# -# An empty name ends a list. Built-in fonts are not exposed as files, so an -# empty font list is normal rather than a fault - which is also why the font -# step sub-command is a reasonable guess and not a verified fact: the test unit -# held no fonts, so the list ended on the first request. If a unit with custom -# fonts ever appears and the second name never arrives, that is the line to fix. -# -# TRANSFERS - the RECEIVER drives in both directions, and asking for the block -# past the end is what ends a transfer: -# -# read (TYPE 'U'): ctrl announces a size, then the HOST requests each block -# write (TYPE 'D'): host announces name;size;blocksize, then the CONTROLLER -# requests each block -# -# WHAT IS DELIBERATELY MISSING: TYPE 'R' deletes a file. It is immediate, takes -# no confirmation and has no undo. Nothing this module is for needs it, so it is -# not implemented - a backup tool that can delete is a backup tool that can be -# made to delete. - -Set-StrictMode -Version Latest - -$script:SOH = [char]0x01 -$script:STX = [char]0x02 -$script:ETX = [char]0x03 -$script:EOT = [char]0x04 -$script:ACK = [char]0x06 -$script:CR = [char]0x0D - -$script:BLOCKSIZE = 128 -$script:STATION = '00' - -# NTLARS/eDNC is a 32-bit app, so the marker's serial settings live under -# WOW6432Node. GE-Enforce runs 64-bit, where the unredirected path is a -# different and usually absent key - reading it would find nothing and fall back -# to a guessed COM port. Spelled out, never abbreviated. Same trap as -# Backup-NtlarsSettings.ps1. -$script:MARKKEY = 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\Mark' - - -function Get-TelesisPortConfig { - <# - .SYNOPSIS - The marker's serial settings, as the bay already has them configured. - .DESCRIPTION - The PC that drives a marker already knows how to reach it - NTLARS keeps - the port, baud, parity, data bits and stop bits in its own registry. Read - them rather than hardcoding COM4/9600 or scanning baud rates: a wrong - guess that happens to work on one bay is a silent trap on the next. - #> - [CmdletBinding()] - param() - - # A distinguishable exception, not a bare string. The caller must be able to - # tell "this PC is not a marker bay" (quiet, correct, permanent) from "this - # marker bay is misconfigured" (loud, and someone needs to fix it). Filing - # both as the former is how a broken bay stops being backed up and nothing - # anywhere says so. - if (-not (Test-Path $script:MARKKEY)) { - throw [System.Management.Automation.ItemNotFoundException]::new( - "No marker configuration at $script:MARKKEY - this PC does not drive a Telesis marker.") - } - $props = Get-ItemProperty -Path $script:MARKKEY -ErrorAction Stop - - # Every value is read through a presence check because this module runs - # under StrictMode Latest, where touching a registry value that is not - # there throws PropertyNotFoundException. Reading them directly made the - # "no Port Id" guard below unreachable, and turned a PARTIALLY configured - # marker bay into "no Telesis marker configured on this PC" - permanent, - # quiet, and the exact failure this feature exists to prevent. - $names = $props.PSObject.Properties.Name - function Read-MarkValue { - param([string]$Name, [string]$Default = '') - if ($names -contains $Name) { - $value = $props.$Name - if ($null -ne $value) { return ([string]$value).Trim() } - } - return $Default - } - - $portid = Read-MarkValue 'Port Id' - if (-not $portid) { throw "No 'Port Id' under $script:MARKKEY - marker serial port is not configured." } - - # Defaults match the fleet's own configuration (9600-8-N-1 in WJPRT.reg), so - # a key missing one value still produces a usable port rather than a zero - # baud rate that fails at Open with an unhelpful message. - # TryParse, not a cast, for the OUT-OF-RANGE case. - # - # An empty or non-numeric value was already handled: PowerShell coerces - # [int]'' to 0 (verified in the VM), so the -replace leaves '' and the - # zero-check below substitutes the default. What is NOT handled is a numeric - # string too large for Int32 - '99999999999999' throws on the cast, and the - # caller files that as "this PC is not a marker bay", so a real bay would - # stop being backed up with nothing saying why. - # - # Narrow, but the whole guard is here for garbage in a registry value, and - # leaving one shape of garbage fatal defeats the point. - [int]$baud = 0 - if (-not [int]::TryParse(((Read-MarkValue 'Baud' '9600') -replace '\D', ''), - [ref]$baud) -or $baud -le 0) { - $baud = 9600 - } - [int]$databits = 0 - if (-not [int]::TryParse(((Read-MarkValue 'Data Bits' '8') -replace '\D', ''), - [ref]$databits) -or $databits -le 0) { - $databits = 8 - } - - [pscustomobject]@{ - PortName = $portid - BaudRate = $baud - Parity = switch -Regex (Read-MarkValue 'Parity' 'None') { - '^(?i)odd' { 'Odd' } - '^(?i)even' { 'Even' } - default { 'None' } - } - DataBits = $databits - StopBits = if ((Read-MarkValue 'Stop Bits' '1') -eq '2') { 'Two' } else { 'One' } - } -} - - -function Get-TelesisMarkerType { - <# - .SYNOPSIS - The controller model this bay declares it drives, or '' if unset. - .DESCRIPTION - DNC\Mark\MarkerType is the value the vendor's own driver switches its - protocol on - MarkTelesis logs "MarkerType=%s, Cnc=%s" right beside its - TMC090 / TMC400 / TMC420 handling. Observed values include those, plus - non-TMC markers like "2Line" and "BREN". - - Treat it as a hint, not proof. Mark predates the TMC470, so a 470 bay - may hold something unhelpful here. It positively identifies the older - families; a 470 is confirmed from a pattern header instead, which reads - "TMP1700/470" or "TMP4210/470". - #> - [CmdletBinding()] - param() - try { - $props = Get-ItemProperty -Path $script:MARKKEY -ErrorAction Stop - if ($props.PSObject.Properties.Name -contains 'MarkerType') { - return ([string]$props.MarkerType).Trim() - } - } catch { } - return '' -} - - -function Test-TelesisPortBusy { - <# - .SYNOPSIS - Is the marker application currently holding the serial port? - .DESCRIPTION - MarkTelesis holds the COM port whenever the marker is in service. A - backup that fires every GE-Enforce cycle must never take the port from a - marking operation, so this is checked before the port is opened and the - cycle is skipped when it is busy. The throttle means a missed window - costs nothing - the next one picks it up. - #> - [CmdletBinding()] - param() - # Backup470/Backup420 are the vendor utilities. A tech running one by hand - # holds the port exactly as MarkTelesis does, and the cycle must yield to - # them too - observed on the bench, where Backup470 left COM1 open and - # every open attempt returned 'Access to the port is denied'. - $names = @('MarkTelesis', 'Mark', 'MarkEdit', 'MarkPatterns', 'MarkUtil', - 'Backup470', 'Backup420') - foreach ($name in $names) { - if (Get-Process -Name $name -ErrorAction SilentlyContinue) { return $name } - } - return $null -} - - -function New-TelesisBcc { - param([char]$Type, [byte[]]$Data) - $sum = [int][byte][char]$Type - foreach ($b in $Data) { $sum += $b } - return '{0:D3}' -f ($sum -band 0xFF) -} - - -function Open-TelesisPort { - <# - .SYNOPSIS - Open the marker's serial port with the bay's own settings. - .PARAMETER Config - From Get-TelesisPortConfig. Passed in rather than read here so a caller - can override for a bench test. - #> - [CmdletBinding()] - param( - [Parameter(Mandatory)][pscustomobject]$Config, - [int]$TimeoutMs = 6000 - ) - - $port = New-Object System.IO.Ports.SerialPort( - $Config.PortName, $Config.BaudRate, $Config.Parity, - $Config.DataBits, $Config.StopBits) - $port.Handshake = 'None' - $port.ReadTimeout = $TimeoutMs - $port.WriteTimeout = $TimeoutMs - # Raw bytes only. The payloads are binary and any encoding layer would - # mangle them; every read in this module goes through the byte API. - $port.Open() - $port.DiscardInBuffer() - $port.DiscardOutBuffer() - return $port -} - - -function Invoke-TelesisCommand { - <# - .SYNOPSIS - Send one host command, return the controller's reply data as a string. - #> - [CmdletBinding()] - param( - [Parameter(Mandatory)]$Port, - [Parameter(Mandatory)][char]$Type, - [string]$Data = '' - ) - - $bytes = [Text.Encoding]::ASCII.GetBytes($Data) - $frame = '{0}{1}{2}{3}{4}{5}{6}{7}{8}' -f ` - $script:EOT, $script:SOH, $Type, $script:STATION, $script:STX, - $Data, $script:ETX, (New-TelesisBcc -Type $Type -Data $bytes), $script:CR - - # Flush first: a previous desync must not poison this transaction. - $Port.DiscardInBuffer() - $out = [Text.Encoding]::ASCII.GetBytes($frame) - $Port.Write($out, 0, $out.Length) - - # Reply frames are ASCII and terminated by CR. Data BLOCKS are not - see - # Read-TelesisBlock, which frames by length because payloads contain 0x0d. - $reply = New-Object Text.StringBuilder - while ($true) { - $b = $Port.ReadByte() - if ($b -lt 0) { throw "No reply to command '$Type' '$Data'." } - if ($b -eq 0x0D) { break } - [void]$reply.Append([char]$b) - } - - $text = $reply.ToString() - if ($text.IndexOf($script:ACK) -lt 0) { - throw "Controller did not acknowledge command '$Type' '$Data' (reply: $text)." - } - $start = $text.IndexOf($script:STX) - $end = $text.IndexOf($script:ETX) - if ($start -lt 0 -or $end -lt $start) { - throw "Malformed reply to command '$Type' '$Data'." - } - $reply = $text.Substring($start + 1, $end - $start - 1) - - # Check the reply's own BCC, not just the data blocks'. A corrupted byte in - # a LISTING entry would otherwise be trusted, and the wrong filename would - # be requested and stored under a name nothing on the controller has. - $tail = $text.Substring($end + 1) - if ($tail.Length -ge 3) { - $expected = New-TelesisBcc -Type $Type -Data ([Text.Encoding]::ASCII.GetBytes($reply)) - if ($tail.Substring(0, 3) -ne $expected) { - throw ("Bad checksum on the reply to command '{0}' '{1}' (got {2}, expected {3})." -f - $Type, $Data, $tail.Substring(0, 3), $expected) - } - } - return $reply -} - - -function Get-TelesisControllerFamily { - <# - .SYNOPSIS - Which controller family is on the other end: 'TMC470', 'TMC420', or ''. - .DESCRIPTION - Uses the Type I status request - part of the PUBLISHED Extended Protocol - and read-only, so it is safe against any model, including ones nobody - here has seen. It asks for the state of the output and input signals and - changes nothing. - - The two families answer in different shapes, and that is the whole - discriminator: - - TMC470 -> "0A;000" outputs;inputs - TMC420 -> "3" single value - - Both were captured from real hardware on 2026-08-25. - - Do NOT use pattern headers for this. A pattern reads "TMP1700/470" or - "TMP3200/470" and that "/470" appears on BOTH families - it names a file - format, not a controller. The leading field is the marking head. - #> - [CmdletBinding()] - param([Parameter(Mandatory)]$Port) - - try { - $status = Invoke-TelesisCommand -Port $Port -Type 'I' - } catch { - return '' - } - if ($status -match '^[0-9A-Fa-f]{2};[0-9A-Fa-f]{3}$') { return 'TMC470' } - if ($status -match '^[0-9A-Fa-f]{1,4}$') { return 'TMC420' } - return '' -} - - -function Get-TelesisContentClasses { - <# - .SYNOPSIS - Which content classes this controller actually has. - .DESCRIPTION - Patterns and fonts exist on both families. PARAMETERS (.DAT - NET, HOST, - MARKER, PASSWORD and the rest) were found only on the TMC470: Backup420 - offers no DAT filter and never sends the F "H" listing command, so it is - unknown whether a 420 even holds them. - - Rather than send an unproven sub-command to a marking controller, ask - for parameters only where they are known to exist. An unknown family - gets the safe subset; when the e10 arrives, capture it and add it here. - #> - [CmdletBinding()] - param([string]$Family) - if ($Family -eq 'TMC470') { return @('Patterns', 'Parameters', 'Fonts') } - return @('Patterns', 'Fonts') -} - - -function Get-TelesisFileList { - <# - .SYNOPSIS - Every name the controller holds of one content class. - .PARAMETER Class - Patterns, Parameters or Fonts. Three separate lists, not one filtered - - a full snapshot walks all three. - #> - [CmdletBinding()] - param( - [Parameter(Mandatory)]$Port, - [Parameter(Mandatory)][ValidateSet('Patterns', 'Parameters', 'Fonts')][string]$Class - ) - - $spec = switch ($Class) { - 'Patterns' { @{ Type = 'F'; Start = 'R'; Step = ''; Extension = '.PAT' } } - 'Parameters' { @{ Type = 'F'; Start = 'H'; Step = 'N'; Extension = '.DAT' } } - 'Fonts' { @{ Type = '4'; Start = 'R'; Step = ''; Extension = '.TFF' } } - } - - # BOUNDED, three ways. The receiver drives this loop, so a controller that - # keeps answering - repeating a name, or answering noise on a marginal cable - # - would spin here for ever. That is not a hang in a background job: this - # holds the MARKING port, and GE-Enforce waits on the script with no - # timeout, so one chatty controller wedges the whole enforcement cycle and - # the operator cannot mark a part. - # - # A truncated listing is a bad outcome too, so both limits are far above any - # real controller (a full bay carries tens of patterns, and a listing takes - # well under a second per name) and both THROW rather than returning a short - # list quietly. A partial snapshot presented as complete is the failure this - # whole feature exists to avoid. - $MAXNAMES = 2000 - $BUDGETSECONDS = 90 - - $names = New-Object System.Collections.Generic.List[string] - $seen = New-Object System.Collections.Generic.HashSet[string] - $clock = [System.Diagnostics.Stopwatch]::StartNew() - - $name = Invoke-TelesisCommand -Port $Port -Type $spec.Type -Data $spec.Start - while ($name) { - if (-not $seen.Add($name)) { - throw ("$Class listing repeated '$name' after $($names.Count) entries - " + - 'the controller is looping rather than ending the list.') - } - $names.Add($name) - - if ($names.Count -ge $MAXNAMES) { - throw ("$Class listing exceeded $MAXNAMES entries - refusing to keep " + - 'the marking port while the controller talks indefinitely.') - } - if ($clock.Elapsed.TotalSeconds -ge $BUDGETSECONDS) { - throw ("$Class listing exceeded $BUDGETSECONDS seconds after " + - "$($names.Count) entries - releasing the marking port.") - } - - $name = Invoke-TelesisCommand -Port $Port -Type $spec.Type -Data $spec.Step - } - $clock.Stop() - return [pscustomobject]@{ - Class = $Class - Extension = $spec.Extension - Names = $names.ToArray() - } -} - - -function Read-TelesisFile { - <# - .SYNOPSIS - Fetch one file off the controller. Returns raw bytes. - .DESCRIPTION - The controller announces a byte count, then the HOST pulls each block. - Blocks are framed BY LENGTH, never by scanning for CR: payloads are - binary and contain 0x0d routinely. Framing on CR appears to work on - files that happen to lack one and silently desyncs on files that have - one - QUERY.DAT has exactly one 0x0d in 1244 bytes, and that is how this - was found. - #> - [CmdletBinding()] - param( - [Parameter(Mandatory)]$Port, - [Parameter(Mandatory)][string]$FileName - ) - - $size = [int](Invoke-TelesisCommand -Port $Port -Type 'U' -Data $FileName) - $data = New-Object byte[] $size - $offset = 0 - $block = 1 - - while ($offset -lt $size) { - $expect = [Math]::Min($script:BLOCKSIZE, $size - $offset) - # Format FIRST, into a variable. PowerShell treats commas inside a - # method call as argument separators, so GetBytes('..' -f $a, $b, $c) - # is parsed as a three-argument GetBytes and fails at runtime. - $text = '{0}{1:D5}{2}' -f $script:ACK, $block, $script:CR - $request = [Text.Encoding]::ASCII.GetBytes($text) - $Port.Write($request, 0, $request.Length) - - # STX + 5-digit sequence + payload + 3-digit BCC + CR - $frame = New-Object byte[] (1 + 5 + $expect + 3 + 1) - $got = 0 - while ($got -lt $frame.Length) { - $read = $Port.Read($frame, $got, $frame.Length - $got) - if ($read -le 0) { throw "Short read on block $block of $FileName." } - $got += $read - } - - if ($frame[0] -ne 0x02) { - throw "Block $block of $FileName did not start with STX." - } - $seq = [Text.Encoding]::ASCII.GetString($frame, 1, 5) - if ([int]$seq -ne $block) { - throw "Expected block $block of $FileName, got $seq." - } - $sum = 0 - for ($i = 0; $i -lt $expect; $i++) { - $data[$offset + $i] = $frame[6 + $i] - $sum += $frame[6 + $i] - } - $bcc = [Text.Encoding]::ASCII.GetString($frame, 6 + $expect, 3) - if ([int]$bcc -ne ($sum -band 0xFF)) { - throw "Bad checksum on block $block of $FileName." - } - - $offset += $expect - $block++ - } - - # Asking for the block past the end is what ends the transfer. - $finaltext = '{0}{1:D5}{2}' -f $script:ACK, $block, $script:CR - $final = [Text.Encoding]::ASCII.GetBytes($finaltext) - $Port.Write($final, 0, $final.Length) - - # The comma is load-bearing. A bare `return $data` is ENUMERATED by the - # pipeline: the caller gets Object[] of boxed bytes for a normal file, a - # scalar for a one-byte file, and $null for an EMPTY one. A null then - # reaches ComputeHash in the manifest builder, which throws, and under - # ErrorActionPreference=Continue the assignment is skipped so the entry - # silently keeps the PREVIOUS file's hash - a corrupted manifest stored as - # a good revision. Empty parameter files are entirely plausible. - return ,$data -} - - -function Write-TelesisFile { - <# - .SYNOPSIS - Send one file TO the controller. Restore only - never called on a cycle. - .DESCRIPTION - The controller requests each block, mirroring the read direction. This - WRITES TO A MARKING CONTROLLER, so it is deliberately not wired into any - unattended path: GE-Enforce runs every five minutes across the fleet and - a write on that trigger is a defect waiting to reach production. - #> - [CmdletBinding()] - param( - [Parameter(Mandatory)]$Port, - [Parameter(Mandatory)][string]$FileName, - [Parameter(Mandatory)][byte[]]$Data - ) - - $header = '{0};{1:D6};{2}' -f $FileName, $Data.Length, $script:BLOCKSIZE - [void](Invoke-TelesisCommand -Port $Port -Type 'D' -Data $header) - - $total = [int][Math]::Ceiling($Data.Length / [double]$script:BLOCKSIZE) - while ($true) { - # ACK + 5-digit block number + CR, from the controller. - $request = New-Object Text.StringBuilder - while ($true) { - $b = $Port.ReadByte() - if ($b -lt 0) { throw "Controller stopped requesting blocks for $FileName." } - if ($b -eq 0x0D) { break } - [void]$request.Append([char]$b) - } - $text = $request.ToString() - $ack = $text.IndexOf($script:ACK) - if ($ack -lt 0) { throw "Unexpected frame while sending $FileName." } - $n = [int]$text.Substring($ack + 1) - - if ($n -gt $total) { return $total } # asked past the end: complete - - $offset = ($n - 1) * $script:BLOCKSIZE - $length = [Math]::Min($script:BLOCKSIZE, $Data.Length - $offset) - $payload = New-Object byte[] $length - [Array]::Copy($Data, $offset, $payload, 0, $length) - - $sum = 0 - foreach ($b in $payload) { $sum += $b } - - $prefixtext = '{0}{1:D5}' -f $script:STX, $n - $suffixtext = '{0:D3}{1}' -f ($sum -band 0xFF), $script:CR - $prefix = [Text.Encoding]::ASCII.GetBytes($prefixtext) - $suffix = [Text.Encoding]::ASCII.GetBytes($suffixtext) - - $Port.Write($prefix, 0, $prefix.Length) - $Port.Write($payload, 0, $payload.Length) - $Port.Write($suffix, 0, $suffix.Length) - } -} - - -Export-ModuleMember -Function Get-TelesisPortConfig, Get-TelesisMarkerType, - Get-TelesisControllerFamily, Get-TelesisContentClasses, - Test-TelesisPortBusy, - Open-TelesisPort, Invoke-TelesisCommand, Get-TelesisFileList, - Read-TelesisFile, Write-TelesisFile diff --git a/playbook/shopfloor-setup/common/monitor-fleet-status.py b/playbook/shopfloor-setup/common/monitor-fleet-status.py deleted file mode 100755 index 02cd77d..0000000 --- a/playbook/shopfloor-setup/common/monitor-fleet-status.py +++ /dev/null @@ -1,251 +0,0 @@ -#!/usr/bin/env python3 -"""monitor-fleet-status.py - -Reads status.json writebacks from the shopfloor enforcer output tree and -flags: - - PCs that haven't checked in within a stale-threshold window - - PCs with any failed scope from their last run - - Expected-vs-installed version mismatches (drift) when --manifests is - supplied - -Designed to run as a cron job on the PXE server (or any box with read -access to the share). Prints plaintext report to stdout; non-zero exit -code when anything needs attention so it's trivial to wrap in an alerting -script. - -Usage: - ./monitor-fleet-status.py --status-root /path/to/_outputs/logs - ./monitor-fleet-status.py --status-root /.../_outputs/logs --stale-hours 24 - ./monitor-fleet-status.py --status-root /.../_outputs/logs \\ - --manifests /.../common/manifest.json /.../cmm/manifest.json - -Typical cron (runs hourly, mails the root user on any output): - 0 * * * * camp /home/camp/bin/monitor-fleet-status.py \\ - --status-root /home/camp/pxe-images/tsgwp00525-v2/shared/dt/shopfloor/_outputs/logs \\ - --stale-hours 24 2>&1 | tail -100 -""" -from __future__ import annotations -import argparse -import datetime as dt -import fnmatch -import json -import pathlib -import sys -from typing import Any, Iterable - - -def load_json(path: pathlib.Path) -> dict[str, Any] | None: - try: - return json.loads(path.read_text()) - except Exception as e: - print(f"[!] {path}: parse failed: {e}", file=sys.stderr) - return None - - -def age_hours(iso_utc: str) -> float | None: - try: - t = dt.datetime.fromisoformat(iso_utc.replace('Z', '+00:00')) - now = dt.datetime.now(dt.timezone.utc) - return (now - t).total_seconds() / 3600.0 - except Exception: - return None - - -def load_manifest_expectations(paths: Iterable[pathlib.Path]) -> list[dict[str, Any]]: - """Load manifest entries with enough metadata to know which PCs each - entry should apply to. Returns a list of dicts, one per entry that has - a DetectionValue: - { key: "scope/Name", expected: "...", scope: "common||-", - pctypes: [...], target_hostnames: [...] } - Scope comes from the manifest file's parent directory name and is - treated as an implicit PC-type filter (parallels the lib's per-scope - dispatch in GE-Enforce.ps1). - """ - out: list[dict[str, Any]] = [] - for p in paths: - m = load_json(p) - if not m: - continue - scope = p.parent.name - for app in m.get('Applications', []): - name = app.get('Name') - val = app.get('DetectionValue') - if not (name and val): - continue - out.append({ - 'key': f"{scope}/{name}", - 'expected': val, - 'scope': scope, - 'pctypes': app.get('PCTypes') or [], - 'target_hostnames': app.get('TargetHostnames') or [], - }) - return out - - -def scope_applies_to_host(scope: str, pc_type: str, pc_sub_type: str) -> bool: - """Mirror GE-Enforce.ps1's per-scope dispatch: - common -> applied to every PC type - -> only when pc-type.txt matches - - -> only when pc-type matches AND subtype matches - Case-insensitive. - """ - s = scope.lower() - if s in ('common', ''): - return True - if '-' in s: - t, sub = s.split('-', 1) - return (t == pc_type and sub == pc_sub_type) - return s == pc_type - - -def entry_applies_to_host(entry: dict[str, Any], - pc_type: str | None, - pc_sub_type: str | None, - hostname: str) -> bool: - """Mirror the lib's entry-applies filter: scope + PCTypes + TargetHostnames, - all ANDed. Drift checks only flag entries that should have actually been - applied on this PC. - """ - pc_type = (pc_type or '').lower() - pc_sub_type = (pc_sub_type or '').lower() - hostname_lc = hostname.lower() - - # Scope filter: per-type manifests are implicitly scoped by the dir name. - if not scope_applies_to_host(entry.get('scope', ''), pc_type, pc_sub_type): - return False - - # PCTypes filter (explicit; applies within a scope): if set, PC must match. - pctypes = entry.get('pctypes') or [] - if pctypes: - if not pc_type: - return False - matched = False - for t in pctypes: - t_lc = t.lower() - if t_lc == '*': matched = True; break - if t_lc == pc_type: matched = True; break - if pc_sub_type and t_lc == f"{pc_type}-{pc_sub_type}": - matched = True; break - if not matched: - return False - - # TargetHostnames filter: if set, hostname must match exact or glob. - target_hosts = entry.get('target_hostnames') or [] - if target_hosts: - matched = False - for h in target_hosts: - h_lc = h.lower() - if h_lc == hostname_lc: matched = True; break - if fnmatch.fnmatch(hostname_lc, h_lc): matched = True; break - if not matched: - return False - - return True - - -def main() -> int: - ap = argparse.ArgumentParser() - ap.add_argument('--status-root', required=True, - help='Root path like /_outputs/logs/') - ap.add_argument('--stale-hours', type=float, default=24.0, - help='Warn if a PC hasn\'t checked in in this many hours (default 24)') - ap.add_argument('--manifests', nargs='*', type=pathlib.Path, default=[], - help='Optional manifest paths; when set, drift between manifest ' - 'DetectionValue and PC-reported installedVersion is flagged.') - args = ap.parse_args() - - root = pathlib.Path(args.status_root) - if not root.is_dir(): - print(f"ERROR: status-root not found: {root}", file=sys.stderr) - return 2 - - expectations = load_manifest_expectations(args.manifests) - - issues = 0 - seen = 0 - stale = [] - failed = [] - drift = [] - - for host_dir in sorted(p for p in root.iterdir() if p.is_dir()): - status_file = host_dir / 'status.json' - if not status_file.exists(): - continue - st = load_json(status_file) - if not st: - continue - - host = st.get('hostname') or host_dir.name - pc_type = st.get('pcType') - sub_type = st.get('pcSubType') - seen += 1 - - # --- stale --- - hrs = age_hours(st.get('lastCheckIn', '')) - if hrs is None: - stale.append((host, 'unparseable timestamp')) - issues += 1 - elif hrs > args.stale_hours: - stale.append((host, f'{hrs:.1f}h since last check-in (> {args.stale_hours}h)')) - issues += 1 - - # --- per-scope failures --- - for scope in (st.get('scopesProcessed') or []): - if (scope.get('ExitCode') or 0) != 0: - failed.append((host, scope.get('Label'), scope.get('ExitCode'))) - issues += 1 - - # --- version drift --- - # Only check entries that should have applied to this PC. Entries - # with PCTypes or TargetHostnames filters that exclude this host - # are legitimately not installed and must not be flagged as drift. - if expectations: - installed = st.get('installedVersions', {}) or {} - for entry in expectations: - if not entry_applies_to_host(entry, pc_type, sub_type, host): - continue - key = entry['key'] - want = entry['expected'] - got = installed.get(key) - if got is None: - drift.append((host, key, 'missing', want)) - issues += 1 - elif str(got).upper() != str(want).upper(): - drift.append((host, key, got, want)) - issues += 1 - - # --- report --- - print(f"Fleet status monitor - scanned {seen} host(s) under {root}") - print(f" stale threshold: {args.stale_hours}h") - if args.manifests: - print(f" drift against: {', '.join(str(p) for p in args.manifests)}") - print() - - if not issues: - print('All checked-in hosts are healthy.') - return 0 - - if stale: - print(f"STALE CHECK-INS ({len(stale)}):") - for host, msg in stale: - print(f" {host}: {msg}") - print() - - if failed: - print(f"SCOPE FAILURES ({len(failed)}):") - for host, label, rc in failed: - print(f" {host}: scope '{label}' exited {rc}") - print() - - if drift: - print(f"VERSION DRIFT ({len(drift)}):") - for host, key, got, want in drift: - print(f" {host}: {key} got={got} want={want}") - print() - - print(f"Total issues: {issues}") - return 1 - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/playbook/shopfloor-setup/common/scripts/Backup-NtlarsSettings.ps1 b/playbook/shopfloor-setup/common/scripts/Backup-NtlarsSettings.ps1 deleted file mode 100644 index 3192569..0000000 --- a/playbook/shopfloor-setup/common/scripts/Backup-NtlarsSettings.ps1 +++ /dev/null @@ -1,203 +0,0 @@ -# Backup-NtlarsSettings.ps1 -# -# Captures this PC's LIVE NTLARS/DNC registry settings and posts them to ShopDB, -# which files them against the MACHINE (not this PC) and keeps a revision -# history. A tech can then re-download the .reg from the machine's page instead -# of hunting for a per-machine file on the share. -# -# Runs from the SFLD share every GE-Enforce cycle as a Type=PS1 manifest entry -# with DetectionMethod=Always. Updating this file on the share changes fleet -# behaviour on the next cycle - there is no local copy to heal. -# -# WHY WOW6432Node IS EXPLICIT: -# NTLARS is a 32-bit app, so its settings physically live under -# HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC. GE-Enforce runs this -# script in 64-bit PowerShell, where HKLM:\SOFTWARE\GE Aircraft Engines\DNC -# is a DIFFERENT (usually absent) key. Reading the unredirected path would -# find nothing and back up an empty config - silently, every cycle. The path -# below is therefore spelled out and never abbreviated. -# -# Note the asymmetry with what NTLARS itself writes: its Save... button -# exports WITHOUT the WOW6432Node segment. ShopDB accepts either dialect and -# stores a dialect-neutral projection, so this script does not need to care. -# -# THROTTLE, LOGGING, CREDENTIALS: -# All handled by common\lib\ShopdbBackupClient.psm1, which every backup kind -# shares. GE-Enforce fires this every cycle, so the module holds the marker -# file, exits early until backups_intervalhours has elapsed, and logs a -# no-change outcome ONCE rather than every five minutes. The interval comes -# from ShopDB, so cadence is changed centrally rather than by editing this -# file on the share. -# -# Always exits 0 so the GE-Enforce "last run result" stays clean. Failures are -# logged, never thrown. - -param( - [string]$BaseUrl = 'https://tsgwp00525.wjs.geaerospace.net/shopdb', - [int]$TimeoutSec = 30, - # Force a post regardless of the throttle. For a tech capturing a - # known-good config on demand. - [switch]$Force -) - -$ErrorActionPreference = 'Continue' - -# The only path this script still owns. Log, marker, state, collector key, -# enrollment and base URL all moved to ShopdbBackupClient, which names its files -# per KIND so two backup kinds on one bay cannot collide. -$DNCKEY = 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC' - -function Convert-RegTypeName { - param($Kind) - switch ("$Kind") { - 'String' { 'REG_SZ' } - 'ExpandString' { 'REG_EXPAND_SZ' } - 'DWord' { 'REG_DWORD' } - 'QWord' { 'REG_QWORD' } - 'MultiString' { 'REG_MULTI_SZ' } - 'Binary' { 'REG_BINARY' } - default { 'REG_SZ' } - } -} - -function Get-DncKeys { - <# - The DNC key and every subkey, root first. Split out from - Export-DncToReg so the formatting logic can be exercised against mock - keys on a machine with no registry (see Test-RegExport.ps1). - #> - $keys = @(Get-Item -Path $DNCKEY -EA Stop) - $keys += @(Get-ChildItem -Path $DNCKEY -Recurse -EA SilentlyContinue) - return $keys -} - -function Export-DncToReg { - <# - Emits .reg text in the WOW6432Node dialect for the supplied keys. - - Built by hand rather than shelling out to `reg export` because reg.exe - writes UTF-16 to a temp file we would then have to read back, and - because this keeps the value types explicit instead of reparsing them. - - Takes the key list as a parameter so it can be tested with mocks; the - escaping and dword formatting here are the part that would corrupt a - backup silently and only surface at restore time. - #> - param([Parameter(Mandatory)]$Keys) - - $lines = @('Windows Registry Editor Version 5.00', '') - $lines += "; NTLARS DNC Registry Backup" - $lines += "; Computer: $env:COMPUTERNAME" - $lines += "; Date: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" - $lines += '' - - foreach ($key in $Keys) { - # PSPath -> the literal HKEY_LOCAL_MACHINE\... form a .reg file needs. - $path = $key.Name -replace '^HKEY_LOCAL_MACHINE', 'HKEY_LOCAL_MACHINE' - $lines += "[$path]" - foreach ($name in $key.GetValueNames()) { - $kind = Convert-RegTypeName $key.GetValueKind($name) - $data = $key.GetValue($name) - $lhs = if ($name -eq '') { '@' } else { - # .NET replacement strings do NOT process backslash escapes, so - # the replacement is the literal output: '\\' emits two - # backslashes, which is what .reg escaping wants. Writing - # '\\\\' here emits FOUR and silently corrupts every path-valued - # setting - verified on Windows before this was fixed. - '"{0}"' -f ($name -replace '\\', '\\' -replace '"', '\"') - } - switch ($kind) { - 'REG_DWORD' { - $lines += ('{0}=dword:{1:x8}' -f $lhs, [uint32]$data) - } - 'REG_BINARY' { - $hex = ($data | ForEach-Object { '{0:x2}' -f $_ }) -join ',' - $lines += ('{0}=hex:{1}' -f $lhs, $hex) - } - 'REG_QWORD' { - $bytes = [BitConverter]::GetBytes([uint64]$data) - $hex = ($bytes | ForEach-Object { '{0:x2}' -f $_ }) -join ',' - $lines += ('{0}=hex(b):{1}' -f $lhs, $hex) - } - 'REG_MULTI_SZ' { - $joined = (($data -join "`0") + "`0`0") - $bytes = [Text.Encoding]::Unicode.GetBytes($joined) - $hex = ($bytes | ForEach-Object { '{0:x2}' -f $_ }) -join ',' - $lines += ('{0}=hex(7):{1}' -f $lhs, $hex) - } - 'REG_EXPAND_SZ' { - $bytes = [Text.Encoding]::Unicode.GetBytes(("$data" + "`0")) - $hex = ($bytes | ForEach-Object { '{0:x2}' -f $_ }) -join ',' - $lines += ('{0}=hex(2):{1}' -f $lhs, $hex) - } - default { - $escaped = ("$data" -replace '\\', '\\' -replace '"', '\"') - $lines += ('{0}="{1}"' -f $lhs, $escaped) - } - } - } - $lines += '' - } - return ($lines -join "`r`n") + "`r`n" -} - -# ============================================================================= -# Main -# -# Guarded so the file can be DOT-SOURCED to get the functions without running a -# backup. Test-RegExport.ps1 relies on this to exercise Export-DncToReg against -# mock keys on a machine with no registry. -# ============================================================================= - -if ($MyInvocation.InvocationName -eq '.') { return } - -# The plumbing - key lookup, base URL, interval, throttle, logging, the POST and -# its response handling - lives in ShopdbBackupClient. It used to live here, and -# being the only implementation meant every defect in it was invisible: the -# interval read fell back to a hardcoded 24h for months because nobody had a -# second copy to compare against, and the log wrote three lines every five -# minutes whatever happened. Seven other Backup-*.ps1 scripts on this share -# capture device configs and post none of them; they can now do so without -# inheriting a copy of all that. -# -# What stays here is the part that is actually about NTLARS: where its registry -# lives, and how to turn it into .reg text. -Import-Module (Join-Path $PSScriptRoot '..\lib\ShopdbBackupClient.psm1') -Force - -if (-not (Test-Path $DNCKEY)) { - # Not an error: plenty of PC types have no NTLARS at all. On those PCs this - # is the permanent state, so it is said once rather than 288 times a day. - Write-ShopdbQuietState -Kind 'ntlars' -State 'no-dnc-key' -Message ( - "No DNC key at $DNCKEY - NTLARS is not installed on this PC. Nothing to do.") - exit 0 -} - -# NTLARS keeps its own MachineNo, used only when pc-config.txt has none. ShopDB -# compares the two and warns on a mismatch rather than silently trusting one. -$ctx = Initialize-ShopdbBackup -Kind 'ntlars' -Force:$Force ` - -BaseUrl $(if ($PSBoundParameters.ContainsKey('BaseUrl')) { $BaseUrl } else { '' }) ` - -MachineNumberFallback { - try { - $general = Get-ItemProperty -Path (Join-Path $DNCKEY 'General') -EA Stop - if ($general.MachineNo) { return ([string]$general.MachineNo).Trim() } - } catch { } - return '' - } -if (-not $ctx.Proceed) { exit 0 } - -try { - $regText = Export-DncToReg -Keys (Get-DncKeys) -} catch { - Write-ShopdbBackupLog -Kind 'ntlars' -Message "Failed to read the DNC key: $_" - exit 0 -} - -# UTF-16LE + BOM, matching what regedit and NTLARS emit. ShopDB sniffs the BOM, -# so this is belt-and-braces rather than strictly required. -$bytes = [byte[]](0xFF, 0xFE) + [Text.Encoding]::Unicode.GetBytes($regText) - -[void](Send-ShopdbBackup -Context $ctx -Bytes $bytes ` - -SourceFileName ("{0}.reg" -f $ctx.MachineNumber) -TimeoutSec $TimeoutSec) - -Write-ShopdbBackupLog -Kind 'ntlars' -Message '=== Backup-NtlarsSettings end ===' -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Backup-PartMarker.ps1 b/playbook/shopfloor-setup/common/scripts/Backup-PartMarker.ps1 deleted file mode 100644 index c2d950b..0000000 --- a/playbook/shopfloor-setup/common/scripts/Backup-PartMarker.ps1 +++ /dev/null @@ -1,583 +0,0 @@ -# Backup-PartMarker.ps1 -# -# Captures a Telesis pinstamp controller's entire contents - patterns, fonts and -# parameters - to the SFLD share and records the snapshot in ShopDB against the -# MARKER asset. A tech can then see what a marker held on any past date, and -# restore a pattern that was deleted months ago. -# -# Runs from the SFLD share every GE-Enforce cycle as a Type=PS1 manifest entry -# with DetectionMethod=Always. Updating this file on the share changes fleet -# behaviour on the next cycle - there is no local copy to heal. -# -# WHY A FULL SNAPSHOT RATHER THAN A MIRRORED DIRECTORY -# -# A mirror forces an impossible choice when a pattern is deleted on the -# controller: delete it from the backup too and destroy the only copy, or keep -# it and claim a pattern that no longer exists. A snapshot has neither -# problem. The deleted pattern is simply absent from the new snapshot and -# still present in the old one, and the change is dated because the manifest -# hash moves. Cost is trivial - 34 patterns and 12 parameter files is well -# under a megabyte, and a snapshot is only written when something changed. -# -# WHY IT POSTS EVEN WHEN NOTHING CHANGED -# -# ShopDB touches lastseenat on a no-op post, and that is the field the fleet -# Backup badge judges health on. A marker that skipped posting because nothing -# changed would look exactly like one whose backup died six months ago. So an -# unchanged controller still posts, gets action=noop, and stays green. -# -# ORDER OF OPERATIONS - write to the share BEFORE posting, then delete again on -# a no-op. That way a failed post leaves a real snapshot on the share rather -# than a database row pointing at a directory that was never created. Deleting -# after a no-op is safe precisely because a no-op proves identical content -# already exists in the previous snapshot. -# -# A snapshot whose POST failed is deliberately KEPT, and nothing tidies it -# later. It cannot safely be deleted here: a client-side timeout does not mean -# the server rejected it, so the revision may exist and point at this very -# directory. An orphan directory costs a few hundred kilobytes; deleting a -# snapshot ShopDB has recorded costs the backup itself. -# -# PORT CONTENTION IS THE MAIN HAZARD. MarkTelesis holds the serial port whenever -# the marker is in service, and so does a tech running Backup470 by hand. This -# never takes the port from either - it checks, skips the cycle, and says so -# once. At the default 24h interval a lost window costs nothing. -# -# Always exits 0 so the GE-Enforce "last run result" stays clean. Failures are -# logged, never thrown. - -# CmdletBinding so an unknown argument is an ERROR, not a shrug. Without it a -# script's param block silently drops unrecognised named arguments into $args - -# so a typo in the manifest entry's Args ("-WindowStartMinutes 45") would be -# ignored and the capture would quietly run at the wrong time, with nothing in -# the log to say why. Cost me an hour of debugging a gate that was fine. -[CmdletBinding()] -param( - [string]$BaseUrl = '', - # Root of the opaque-backup tree. The snapshot lands in - # \partmarker\\\. - # - # EMPTY BY DEFAULT, and derived at runtime from where this script is running - # (see below). Passing a value overrides that, which is what a bench test - # wants. - # - # WHY NOT HARDCODE THE UNC: GE-Enforce mounts the share as W: using SFLD - # credentials from HKLM\SOFTWARE\GE\SFLD\Credentials, runs manifest - # entries from W:\\, and deletes the mapping at the end of the - # cycle. Windows keys SMB sessions by the SERVER NAME STRING, so reaching - # the same server by a different name than the one net use mapped can force - # a second authentication - and where the credentials differ it fails - # outright with error 1219, "multiple connections to a server by the same - # user are not allowed". A path that is obviously the same share fails on - # the name form alone, and the error is nothing like the cause. - [string]$ShareRoot = '', - [int]$TimeoutSec = 30, - # Hour of the day (LOCAL, 24h) the daily capture starts. 14:00 for two - # reasons, and the second one is the important one: - # - # 1. It is a shift change - 06:00, 14:00 and 22:00 all are - so the bay is - # between operators and the marker port is free. The port is exclusive: - # eDNC and this backup cannot both hold it, and whoever loses gets a - # visible failure at the bay. - # 2. Someone is on site at 14:00 to notice and fix a problem. A capture - # that misbehaves at 22:00 is found the next morning, after a shift of - # failed marks. - # - # GE-Enforce fires every 5 minutes, so this runs on the first cycle inside - # the hour and the 24h throttle stops it running again that day. - [int[]]$WindowHours = @(14), - # Minute the window OPENS within those hours. 0 means the whole hour. - # Set from the manifest entry's Args when the first run of the day should - # land at a particular time - the shift change is a moment, not an hour, - # and a capture is easiest to watch when somebody expects it. - [ValidateRange(0, 59)] - [int]$WindowStartMinute = 0, - # Used ONLY once the backup is overdue - the other two shift changes. They - # are unattended, so they are a fallback for a bay that is busy at 14:00 - # every day, not part of the normal schedule. - [int[]]$OverdueWindowHours = @(6, 22), - # Days without a capture before the fallback shift changes engage. The - # windows are NEVER ignored - outside a shift change the port belongs to - # production - so a bay that is busy at all three just keeps skipping, and - # says so progressively louder rather than capturing at a bad moment. - [int]$WindowMaxSkipDays = 3, - # Force a capture regardless of the throttle and the window. For a tech - # taking a snapshot on demand before touching a controller. - [switch]$Force -) - -$ErrorActionPreference = 'Continue' -$KIND = 'partmarker' - -Import-Module (Join-Path $PSScriptRoot '..\lib\ShopdbBackupClient.psm1') -Force -Import-Module (Join-Path $PSScriptRoot '..\lib\TelesisMarker.psm1') -Force - - -function Get-SnapshotManifest { - <# - .SYNOPSIS - Deterministic description of one snapshot, and the hash ShopDB dedupes on. - .DESCRIPTION - The hash covers sorted filenames AND per-file hashes, so an addition, a - deletion or an edit all move it, and the order files came off the wire - cannot. That is what makes an unchanged controller a no-op and a changed - one exactly one new revision. - - Pattern headers carry the marking system they were authored for - ("TMP1700/470", "TMP4210/470"). Patterns for different heads coexist on - one controller, so the header is recorded per file - restoring a pattern - onto a system with a different head is a real mistake and this is the - only warning available. - #> - param([Parameter(Mandatory)][hashtable]$Files, - [string]$Family = '') - - $sha = [Security.Cryptography.SHA256]::Create() - $entries = New-Object System.Collections.Generic.List[object] - - foreach ($name in ($Files.Keys | Sort-Object)) { - $bytes = $Files[$name] - $hash = [BitConverter]::ToString($sha.ComputeHash($bytes)).Replace('-', '').ToLower() - - # The system string sits in the first ~16 bytes of a pattern file. - $head = '' - if ($name -like '*.PAT' -and $bytes.Length -ge 16) { - $ascii = [Text.Encoding]::ASCII.GetString($bytes, 0, 16) - $match = [regex]::Match($ascii, '[A-Z]{2,4}[0-9]{3,4}/[0-9]{3}') - if ($match.Success) { $head = $match.Value } - } - - $entries.Add([pscustomobject]@{ - name = $name - bytes = $bytes.Length - sha256 = $hash - system = $head - }) - } - - # Hash the manifest text itself, so the dedup key covers the whole file set. - $text = ($entries | ForEach-Object { '{0}:{1}:{2}' -f $_.name, $_.bytes, $_.sha256 }) -join "`n" - $manifesthash = [BitConverter]::ToString( - $sha.ComputeHash([Text.Encoding]::UTF8.GetBytes($text))).Replace('-', '').ToLower() - - # Both models are recorded: what the bay SAYS it drives (registry) and what - # the patterns say they were authored for (header). They can disagree - a - # stale registry, or patterns carried over from another system - and a - # restore is exactly when that matters. - $systems = @($entries | Where-Object { $_.system } | - Select-Object -ExpandProperty system -Unique | Sort-Object) - - return [pscustomobject]@{ - Entries = $entries - Skips = (Get-ShopdbBackupSkips -Kind 'partmarker') - ManifestHash = $manifesthash - TotalBytes = ($entries | Measure-Object -Property bytes -Sum).Sum - DeclaredType = (Get-TelesisMarkerType) - Family = $Family - Systems = $systems - } -} - - -function ConvertTo-UncPath { - <# - .SYNOPSIS - The UNC equivalent of a path on a mapped drive, or the path unchanged. - .DESCRIPTION - We WRITE through the drive letter GE-Enforce mapped, because that is the - connection it authenticated - reaching the same server by another name - can cost a second authentication or fail outright with error 1219. - - But the path RECORDED in ShopDB has to be one a human can use. "W:" is a - mapping that exists only inside the SYSTEM session, only while the cycle - runs, and only on that one PC. Storing it means a tech opening the - marker's page gets a path that resolves to nothing anywhere. - - So: write by drive, record by UNC. DisplayRoot on a mapped PSDrive is - the share it points at; a local drive has none, and a path that is - already UNC needs no help - both fall through unchanged. - #> - param([Parameter(Mandatory)][string]$Path) - - if ($Path -like '\\*') { return $Path } - - $qualifier = '' - try { $qualifier = Split-Path -Qualifier $Path } catch { return $Path } - if (-not $qualifier) { return $Path } - - $letter = $qualifier.TrimEnd(':') - $rest = Split-Path -NoQualifier $Path - - # Three ways a drive can tell you where it points, and which one is - # populated depends on how it was created: - # DisplayRoot set by `net use` mappings - what GE-Enforce makes - # Root set by New-PSDrive to a UNC, where DisplayRoot is EMPTY - # ProviderName the WMI view, as a backstop if the PSDrive lookup is odd - try { - $drive = Get-PSDrive -Name $letter -ErrorAction Stop - foreach ($candidate in @($drive.DisplayRoot, $drive.Root)) { - if ($candidate -and $candidate -like '\\*') { - return ($candidate.TrimEnd('\') + $rest) - } - } - } catch { } - - try { - $disk = Get-CimInstance -ClassName Win32_LogicalDisk ` - -Filter ("DeviceID='{0}:'" -f $letter) -ErrorAction Stop - if ($disk.ProviderName -and $disk.ProviderName -like '\\*') { - return ($disk.ProviderName.TrimEnd('\') + $rest) - } - } catch { } - - return $Path -} - - -# ============================================================================= -# Main -# ============================================================================= - -if ($MyInvocation.InvocationName -eq '.') { return } - -# --- Time-of-day gate ------------------------------------------------------- -# Checked before the port is opened and before Initialize-ShopdbBackup, so an -# out-of-window cycle costs a clock read and nothing else. -if (-not $Force) { - $now = Get-Date - # Both the hour AND the minute, so a window can be "14:45 onwards" rather - # than the whole of the 14:00 hour. GE-Enforce fires every 5 minutes, so - # the capture starts on the first cycle at or after that time and the 24h - # throttle stops it running again that day. - $inwindow = ($WindowHours -contains $now.Hour) -and ($now.Minute -ge $WindowStartMinute) - - # The marker file is stamped on every post attempt, so its age answers - # "when did a capture last get through" - which is what the escalation - # below needs to know. - # - # A bay that has NEVER captured has no marker file, and treating that as - # infinitely overdue made a freshly imaged PC shout that every shift change - # had been busy before it had waited for a single one. So age is measured - # from a first-run stamp instead: a new bay starts the clock now, and only - # escalates if it still has nothing days later. That keeps the real case - - # a marker whose port is permanently held, which never stamps the marker - # file - loud, without slandering a PC imaged ten minutes ago. - $logdir = 'C:\Logs\Shopfloor' - $markerfile = Join-Path $logdir ('{0}-backup.marker' -f $KIND) - $firstrun = Join-Path $logdir ('{0}-backup.firstrun' -f $KIND) - - if (-not (Test-Path $logdir)) { - New-Item -ItemType Directory -Path $logdir -Force -ErrorAction SilentlyContinue | Out-Null - } - if (-not (Test-Path $firstrun)) { - Set-Content -Path $firstrun -Value (Get-Date -Format 'o') -ErrorAction SilentlyContinue - } - - $since = if (Test-Path $markerfile) { Get-Item $markerfile } else { Get-Item $firstrun } - $daysold = 0.0 - try { $daysold = ($now - $since.LastWriteTime).TotalDays } catch { } - $overdue = ($daysold -ge $WindowMaxSkipDays) - $veryoverdue = ($daysold -ge ($WindowMaxSkipDays * 2)) - - # Normal: 14:00, when someone is on site. Overdue: the other two shift - # changes join in. Never anything else - outside a shift change the bay is - # marking parts and the port is not ours to take. - $allowed = $inwindow - if (-not $allowed -and $overdue) { - $allowed = ($OverdueWindowHours -contains $now.Hour) -and - ($now.Minute -ge $WindowStartMinute) - } - - if (-not $allowed) { - if ($veryoverdue) { - # Past the point where quiet is appropriate. Every shift change has - # been busy for twice the grace period, which means this marker has - # no current backup and nobody has noticed. Said on EVERY cycle - # rather than once, because the quiet path is what let it get here. - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'WARNING: no successful capture in {0:N1} days ({1}). Every shift change has been busy - check whether the marker application is holding the port permanently.' -f - $daysold, $(if (Test-Path $markerfile) { 'last attempt ' + $since.LastWriteTime.ToString('yyyy-MM-dd HH:mm') } else { 'never captured on this PC' })) - } else { - # State is the CONDITION, not the clock. Embedding the hour made - # it "new" every hour, so the say-once module wrote the same line - # ~20 times a day per bay - a small rerun of the 3,234-line log it - # was built to stop. - Write-ShopdbQuietState -Kind $KIND -State 'outside-window' -Message ( - 'Outside the capture window ({0}). The marker port is shared with eDNC, so the daily capture waits for a shift change. Use -Force to override.' -f - (($WindowHours | ForEach-Object { '{0:00}:{1:00}' -f $_, $WindowStartMinute }) -join ', ')) - } - exit 0 - } - if (-not $inwindow) { - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'No capture for {0:N1} days - 14:00 has been busy, using the {1:00}:00 shift change instead.' -f - $daysold, $now.Hour) - } -} - -$busy = Test-TelesisPortBusy -if ($busy) { - # Not an error, and the expected state on a bay that is actually marking - # parts. Said once rather than 288 times a day. - Add-ShopdbBackupSkip -Kind $KIND -Reason "port in use by $busy" - Write-ShopdbQuietState -Kind $KIND -State "port-busy-$busy" -Message ( - "$busy is running and holds the marker's serial port. Skipping this " + - 'cycle rather than interrupting a marking operation.') - exit 0 -} - -try { - $portconfig = Get-TelesisPortConfig -} catch [System.Management.Automation.ItemNotFoundException] { - # The registry key is absent: this PC is not a part-marker bay. Quiet and - # permanent, which is correct - most of the fleet lands here every cycle. - Write-ShopdbQuietState -Kind $KIND -State 'no-marker-config' -Message ( - "No Telesis marker configured on this PC ($_). Nothing to do.") - exit 0 -} catch { - # The key EXISTS and reading it failed: a marker bay that is misconfigured, - # or a registry permission problem. Filing this as "not a marker bay" - as - # this used to - meant a half-configured bay was never backed up again and - # nothing anywhere said so. It is the silent-failure shape this whole - # feature exists to avoid, so it is logged every cycle and counted as a - # skip, not swallowed. - $message = "Marker configuration present but unreadable: $_" - Write-ShopdbBackupLog -Kind $KIND -Message $message - Add-ShopdbBackupSkip -Kind $KIND -Reason 'marker-config-unreadable' - exit 1 -} - -# -MachineNumberFallback, not a shared default: a marker bay legitimately has -# no machine number - the DEVICE is what the backup belongs to, and -# asset-id.txt is what names it. Putting this in the shared lookup would change -# what the NTLARS backup reports on these same bays, which run eDNC too. -# -# Safe on the wire: the part-marker kind resolves the reporting PC to its own -# marker by hostname first, and falls back to matching this value against -# assets.assetnumber - which is exactly what asset-id.txt holds. -$ctx = Initialize-ShopdbBackup -Kind $KIND -Force:$Force ` - -BaseUrl $(if ($BaseUrl) { $BaseUrl } else { '' }) ` - -MachineNumberFallback { Get-ShopdbAssetId } -if (-not $ctx.Proceed) { exit 0 } - -# --- Capture everything off the controller ---------------------------------- -$files = @{} -$family = '' -$port = $null -try { - $port = Open-TelesisPort -Config $portconfig - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Opened {0} at {1} baud' -f $portconfig.PortName, $portconfig.BaudRate) - - # Identify the controller with the published, read-only Type I status - # request before sending anything model-specific, and ask only for the - # content classes that family is known to have. A 420 has no parameter - # files on offer, and sending it an unproven listing command to find out is - # not a trade worth making on a marking controller. - $family = Get-TelesisControllerFamily -Port $port - $classes = Get-TelesisContentClasses -Family $family - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Controller family: {0}; capturing {1}' -f - $(if ($family) { $family } else { 'unknown' }), ($classes -join ', ')) - - foreach ($class in $classes) { - $list = Get-TelesisFileList -Port $port -Class $class - Write-ShopdbBackupLog -Kind $KIND -Message ( - '{0}: {1} file(s)' -f $class, $list.Names.Count) - $sincecheck = 0 - foreach ($name in $list.Names) { - # Yield the moment the marker app wants the port. The check at the - # top of the run is point-in-time - eDNC can start a millisecond - # after it - so re-checking every few files bounds our interference - # to about a second rather than the ~26 a full capture takes. The - # throttle marker is NOT stamped on this path, so the next cycle - # retries instead of waiting a day. - if (++$sincecheck -ge 5) { - $sincecheck = 0 - $arrived = Test-TelesisPortBusy - if ($arrived) { - Add-ShopdbBackupSkip -Kind $KIND -Reason "$arrived started mid-capture" - Write-ShopdbBackupLog -Kind $KIND -Message ( - "$arrived started mid-capture - releasing the port, retrying next cycle.") - $files = $null - break - } - } - $filename = '{0}{1}' -f $name, $list.Extension - try { - $files[$filename] = Read-TelesisFile -Port $port -FileName $filename - } catch { - # One unreadable file must not cost the whole snapshot, but the - # snapshot is then incomplete and must NOT be recorded as a - # faithful copy - see the abort below. - Write-ShopdbBackupLog -Kind $KIND -Message " FAILED to read ${filename}: $_" - $files = $null - break - } - } - if ($null -eq $files) { break } - } -} catch { - Write-ShopdbBackupLog -Kind $KIND -Message "Capture failed: $_" - $files = $null -} finally { - if ($port -and $port.IsOpen) { $port.Close() } -} - -# $null means the capture broke partway. An EMPTY hashtable means the capture -# worked and the controller genuinely holds nothing - a factory-reset or -# just-replaced unit. Treating those the same made a wiped controller log a -# capture failure every window for ever, and escalate to the loud warning, when -# in fact the backup was working perfectly and reporting the truth. -if ($null -eq $files) { - # A failed capture is a missed backup too, and it is the more worrying kind: - # port contention resolves itself, a controller that will not answer does - # not. Counted with its own reason so the two are distinguishable in the - # manifest that eventually reaches ShopDB. - if (-not (Test-TelesisPortBusy)) { - Add-ShopdbBackupSkip -Kind $KIND -Reason 'capture failed or incomplete' - } - # A partial snapshot recorded as a revision is worse than no revision: it - # would dedup against the real one and make a complete backup look like a - # change, or be restored from as though it were whole. - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Snapshot incomplete - not recording a revision. Next cycle will retry.') - exit 0 -} - -$manifest = Get-SnapshotManifest -Files $files -Family $family -Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Captured {0} file(s), {1} bytes, manifest {2}' -f - $files.Count, $manifest.TotalBytes, $manifest.ManifestHash.Substring(0, 12)) -Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Marker type declared "{0}", patterns authored for {1}' -f - $(if ($manifest.DeclaredType) { $manifest.DeclaredType } else { 'unset' }), - $(if ($manifest.Systems) { $manifest.Systems -join ', ' } else { 'unknown' })) - -# --- Write the snapshot to the share ---------------------------------------- -# Derive the share root from THIS SCRIPT'S OWN LOCATION unless told otherwise. -# Running as a manifest entry, $PSScriptRoot is on the share GE-Enforce just -# authenticated (W:\\scripts), so its qualifier is a handle to that -# exact connection - same server name, same credentials, already established. -# Nothing else is guaranteed to be. -if (-not $ShareRoot) { - $qualifier = Split-Path -Qualifier $PSScriptRoot -ErrorAction SilentlyContinue - if ($qualifier) { - $ShareRoot = Join-Path $qualifier 'backup' - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Share root derived from this script location: {0}' -f $ShareRoot) - } else { - # Running from a UNC path directly (no drive letter), which happens if - # the entry is invoked outside the usual mapping. Use the script's own - # server and share rather than a hardcoded hostname, for the same - # session-reuse reason. - $parts = $PSScriptRoot -split '\\' | Where-Object { $_ } - if ($parts.Count -ge 2) { - $ShareRoot = '\\{0}\{1}\backup' -f $parts[0], $parts[1] - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Share root derived from this script UNC: {0}' -f $ShareRoot) - } else { - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Cannot derive a share root from {0} and none was passed - skipping.' -f $PSScriptRoot) - Add-ShopdbBackupSkip -Kind $KIND -Reason 'no share root' - exit 0 - } - } -} - -$stamp = Get-Date -Format 'yyyyMMdd-HHmmss' -$assetdir = Join-Path (Join-Path $ShareRoot 'partmarker') $ctx.MachineNumber -$snapshotdir = Join-Path $assetdir $stamp - -try { - New-Item -ItemType Directory -Path $snapshotdir -Force -ErrorAction Stop | Out-Null - foreach ($name in $files.Keys) { - # Original filename and extension, unaltered - names contain spaces - # ("M20 RE-MARK") and the vendor tool rejects a renamed file. - [IO.File]::WriteAllBytes((Join-Path $snapshotdir $name), $files[$name]) - } - [pscustomobject]@{ - capturedat = (Get-Date).ToUniversalTime().ToString('o') - machine = $ctx.MachineNumber - sourcehost = $env:COMPUTERNAME - declaredtype = $manifest.DeclaredType - family = $manifest.Family - # Cycles that wanted to capture and could not, since the last success. - # ShopDB cannot see a skipped cycle - nothing is posted, because a - # dishonest no-op would keep the health badge green - so the count - # travels with the snapshot that finally got through. - skippedcycles = $manifest.Skips - systems = $manifest.Systems - manifesthash = $manifest.ManifestHash - files = $manifest.Entries - } | ConvertTo-Json -Depth 4 | - Set-Content -LiteralPath (Join-Path $snapshotdir 'manifest.json') -Encoding UTF8 -} catch { - # Counted like the others: a snapshot captured but not stored is just as - # missed as one never captured, and share credentials failing on a bay is - # exactly the kind of quiet breakage this count exists to surface. - Add-ShopdbBackupSkip -Kind $KIND -Reason 'could not write to the share' - Write-ShopdbBackupLog -Kind $KIND -Message "Could not write $snapshotdir : $_" - - # Name the likely cause, because the symptom lies. This runs as SYSTEM, - # which authenticates to the network as the MACHINE account, and a SYSTEM - # process reaching a UNC path with no credentials gets an access-denied - # that Test-Path reports as "not found" - so a permissions problem looks - # like a missing directory and sends the next person hunting the wrong - # thing entirely. - # - # The share is mounted only during the GE-Enforce cycle, and all SYSTEM - # processes share one logon session, so a manifest entry inherits that - # connection. A scheduled task would not - it would run outside the cycle - # and find nothing there. - if (-not (Test-Path -LiteralPath $ShareRoot)) { - Write-ShopdbBackupLog -Kind $KIND -Message ( - "$ShareRoot is not reachable from this process. Running as SYSTEM, " + - 'so this is usually the machine account lacking rights on the share ' + - 'rather than a missing path - Test-Path cannot tell the two apart. ' + - 'Confirm this runs as a GE-Enforce manifest entry (the share is ' + - 'mounted only during the cycle) and that the ACL admits computer accounts.') - } - exit 0 -} - -# --- Record it in ShopDB ---------------------------------------------------- -# ConvertTo-Json/FromJson round trip: Send-ShopdbBackup takes a hashtable, and -# building one directly here would duplicate the shape written to the share. -# This keeps ONE definition of a manifest - what is on the share and what -# ShopDB stores are the same object by construction. -$manifestjson = Get-Content -LiteralPath (Join-Path $snapshotdir 'manifest.json') -Raw -$manifesthash = @{} -foreach ($property in (ConvertFrom-Json $manifestjson).PSObject.Properties) { - $manifesthash[$property.Name] = $property.Value -} - -# Written through $snapshotdir (the mapped drive), recorded as UNC so the path -# stored against the marker means something on any PC, at any time. -$reportedpath = ConvertTo-UncPath -Path $snapshotdir -if ($reportedpath -ne $snapshotdir) { - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Recording {0} (written through {1})' -f $reportedpath, $snapshotdir) -} - -$posted = Send-ShopdbBackup -Context $ctx ` - -ContentHash $manifest.ManifestHash -SharePath $reportedpath ` - -SourceFileName 'manifest.json' -Manifest $manifesthash -TimeoutSec $TimeoutSec - -# Send-ShopdbBackup logs created vs noop. On a no-op the directory just written -# is byte-identical to the previous snapshot, so it is removed rather than left -# to accumulate one identical copy per collection. -if ($posted -and (Test-ShopdbBackupNoop -Kind $KIND)) { - Remove-Item -LiteralPath $snapshotdir -Recurse -Force -ErrorAction SilentlyContinue - Write-ShopdbBackupLog -Kind $KIND -Message ( - 'Controller unchanged - snapshot discarded, existing revision confirmed.') -} - -if ($posted) { - # Cleared only on a successful post: an unreachable server must not lose the - # record of why this marker has not been captured. - Clear-ShopdbBackupSkips -Kind $KIND -} - -Write-ShopdbBackupLog -Kind $KIND -Message '=== Backup-PartMarker end ===' -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Deploy-ShopfloorStartLayout.ps1 b/playbook/shopfloor-setup/common/scripts/Deploy-ShopfloorStartLayout.ps1 deleted file mode 100644 index e7aeee0..0000000 --- a/playbook/shopfloor-setup/common/scripts/Deploy-ShopfloorStartLayout.ps1 +++ /dev/null @@ -1,127 +0,0 @@ -# Deploy-ShopfloorStartLayout.ps1 -# -# Local-DSC port of the Intune SFLD desktop/Start-menu deployment. Creates the -# Public Desktop weblinks (.url) + app/folder shortcuts (.lnk) AND pins them to -# the Windows 11 Start menu - using the exact same mechanism Simple-Install.ps1 -# uses: shortcuts in the All-Users Start Menu, a ConfigureStartPins JSON policy -# in the registry, and a StartMenuExperienceHost reset so it applies on next -# logon. Nothing here needs Intune/MDM - it is all file + registry-policy. -# -# Designed to run from the GE-Enforce manifest engine as a Type=PS1 entry -# (DetectionMethod=Always, or Hash on the pins.json). Idempotent. -# -# Usage: -# powershell -ExecutionPolicy Bypass -File Deploy-ShopfloorStartLayout.ps1 -# -AssetsDir -# -# AssetsDir holds the prebuilt .url/.lnk (the "globalassets" folder). The pin -# list + order below mirrors device-config.yaml StartMenuPins; entries with a -# Target are created on the fly (app/folder pins), the rest are copied from -# AssetsDir. - -param( - [string]$AssetsDir = (Join-Path $PSScriptRoot 'globalassets'), - [string]$DesktopDir = 'C:\Users\Public\Desktop', - [switch]$NoShellRestart -) - -$ErrorActionPreference = 'Continue' -$logDir = 'C:\Logs\Shopfloor' -New-Item -ItemType Directory -Path $logDir -Force -EA SilentlyContinue | Out-Null -$log = Join-Path $logDir ('start-layout-{0}.log' -f (Get-Date -Format 'yyyyMMdd')) -function Log($m){ "$([DateTime]::Now.ToString('s')) $m" | Tee-Object -FilePath $log -Append | Out-Null } - -# Ordered pin set - mirrors device-config.yaml StartMenuPins. Name = the file -# in the All-Users Start Menu (and AssetsDir for prebuilt ones). Target set => -# create the shortcut; Target empty => copy the prebuilt file from AssetsDir. -$Pins = @( - @{ Name = 'Shopfloor Dashboard.url' } - @{ Name = 'PN & SN Label Printing.url' } - @{ Name = 'WJ Shop Floor Homepage.url' } - @{ Name = 'WJ Web Reports.url' } - @{ Name = 'Blueprint PDF Viewer.url' } - @{ Name = 'Central CSF Web Reports.url' } - @{ Name = 'Plant Apps.url' } - @{ Name = 'Safety Good Catch Form.url' } - @{ Name = 'WJ IT Help Desk.url' } - @{ Name = 'OneIDM.url' } - @{ Name = 'M365 Webmail.url' } - @{ Name = 'HR Central.url' } - @{ Name = 'Defect_Tracker.lnk' } - @{ Name = 'Calculator.lnk' } - @{ Name = 'Notepad.lnk' } - @{ Name = 'eDNC.lnk'; Target = 'C:\Program Files\eDNC\eDNC.exe' } - @{ Name = 'NTLARS.lnk'; Target = 'C:\Program Files (x86)\NTLARS\NTLARS.exe' } - @{ Name = 'Shopfloor Tools.lnk'; Target = 'C:\Users\Public\Desktop\Shopfloor Tools' } -) - -$startMenuDir = Join-Path $env:ALLUSERSPROFILE 'Microsoft\Windows\Start Menu\Programs' - -function New-UrlShortcut([string]$Path,[string]$Url){ - @('[InternetShortcut]', "URL=$Url") | Set-Content -LiteralPath $Path -Encoding ASCII -} -function New-LnkShortcut([string]$Path,[string]$Target,[string]$Args,[string]$Icon){ - $sh = New-Object -ComObject WScript.Shell - $sc = $sh.CreateShortcut($Path) - $sc.TargetPath = $Target - if ($Args) { $sc.Arguments = $Args } - # working dir: parent of target for files, the folder itself for folder pins - $sc.WorkingDirectory = if (Test-Path -LiteralPath $Target -PathType Container) { $Target } else { Split-Path -Parent $Target } - if ($Icon) { $sc.IconLocation = $Icon } - $sc.Save() -} - -Log "=== Deploy shopfloor start layout (assets: $AssetsDir) ===" -New-Item -ItemType Directory -Path $startMenuDir -Force -EA SilentlyContinue | Out-Null -New-Item -ItemType Directory -Path $DesktopDir -Force -EA SilentlyContinue | Out-Null - -$pinnedList = @() -foreach ($pin in $Pins) { - $leaf = $pin.Name - $dst = Join-Path $startMenuDir $leaf - try { - if ($pin.Target) { - # create app/folder shortcut from Target - New-LnkShortcut -Path $dst -Target $pin.Target -Args $pin.Arguments -Icon $pin.IconLocation - Log "created (target) $leaf -> $($pin.Target)" - } else { - # copy prebuilt asset (.url/.lnk) from globalassets - $src = Join-Path $AssetsDir $leaf - if (-not (Test-Path -LiteralPath $src)) { Log "MISSING asset, skipping pin: $src"; continue } - Copy-Item -LiteralPath $src -Destination $dst -Force - # also drop on the Public Desktop - Copy-Item -LiteralPath $src -Destination (Join-Path $DesktopDir $leaf) -Force - Log "copied $leaf (start menu + desktop)" - } - $pinnedList += @{ desktopAppLink = "%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\$leaf" } - } catch { - Log "ERROR pin ${leaf}: $($_.Exception.Message)" - } -} - -# ConfigureStartPins JSON -> HKLM policy (same shape Simple-Install.ps1 writes) -$jsonDir = 'C:\ProgramData\SFLD\StartMenu' -New-Item -ItemType Directory -Path $jsonDir -Force -EA SilentlyContinue | Out-Null -$jsonPath = Join-Path $jsonDir 'pins.json' -([ordered]@{ applyOnce = $false; pinnedList = $pinnedList } | ConvertTo-Json -Depth 6) | - Set-Content -LiteralPath $jsonPath -Encoding UTF8 -$reg = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -if (-not (Test-Path $reg)) { New-Item -Path $reg -Force | Out-Null } -New-ItemProperty -Path $reg -Name 'ConfigureStartPins' -PropertyType String ` - -Value (Get-Content -LiteralPath $jsonPath -Raw -Encoding UTF8) -Force | Out-Null -Log "ConfigureStartPins policy written ($($pinnedList.Count) pins) -> $reg" - -# Apply now: clear each real user's cached start layout + restart the shell. -if (-not $NoShellRestart) { - Get-ChildItem 'C:\Users' -Directory -EA SilentlyContinue | - Where-Object { $_.Name -notin @('Public','Default','Default User','All Users') } | - ForEach-Object { - $sb = Join-Path $_.FullName 'AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState\start2.bin' - if (Test-Path -LiteralPath $sb) { Remove-Item -LiteralPath $sb -Force -EA SilentlyContinue; Log "cleared start2.bin: $($_.Name)" } - } - Get-Process -Name 'StartMenuExperienceHost' -EA SilentlyContinue | Stop-Process -Force -EA SilentlyContinue - Log 'StartMenuExperienceHost restarted (pins apply on next shell load)' -} - -Log '=== done ===' -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Install-AcroReader.cmd b/playbook/shopfloor-setup/common/scripts/Install-AcroReader.cmd deleted file mode 100755 index df07fbc..0000000 --- a/playbook/shopfloor-setup/common/scripts/Install-AcroReader.cmd +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -REM Install-AcroReader.cmd - Install Adobe Acrobat Reader DC + DC update patch -REM -REM Two-step install: base MSI with enterprise transform, then DC update patch. -REM Script lives in /scripts/; MSI + MST + MSP + CAB live in sibling -REM /apps/. pushd into apps\ so the MSI's Media-table CAB reference -REM (Data1.cab) resolves against its sibling, and msiexec doesn't choke on -REM a mapped-drive path with ..\ normalization (was returning 1619). - -setlocal -pushd "%~dp0..\apps" - -echo Installing Adobe Acrobat Reader DC... -msiexec /i "AcroRead.msi" TRANSFORMS="AcroRead.mst" /quiet /norestart -set RC=%errorlevel% -if %RC% neq 0 if %RC% neq 3010 ( - echo Acrobat Reader MSI failed with exit code %RC% - popd - exit /b %RC% -) - -echo Applying Adobe Reader DC update patch... -msiexec /p "AcroRdrDCUpd2500120531.msp" /quiet /norestart -set RC=%errorlevel% -if %RC% neq 0 if %RC% neq 3010 ( - echo Acrobat Reader patch failed with exit code %RC% - popd - exit /b %RC% -) - -popd -echo Adobe Acrobat Reader DC installed successfully. -exit /b 0 diff --git a/playbook/shopfloor-setup/common/scripts/Install-Oracle11r2.cmd b/playbook/shopfloor-setup/common/scripts/Install-Oracle11r2.cmd deleted file mode 100755 index b888e06..0000000 --- a/playbook/shopfloor-setup/common/scripts/Install-Oracle11r2.cmd +++ /dev/null @@ -1,75 +0,0 @@ -@echo off -REM Install-Oracle11r2.cmd -REM Expands the GE Oracle Client 11.2 Administrator zip to a temp dir and -REM runs Oracle Universal Installer silently with the GE-customized -REM response file. -REM -REM Expected layout on the SFLD share (relative to this .cmd): -REM ..\apps\Oracle_OracleDatabase_11r2_V03.zip (686 MB) -REM -REM Called by Install-FromManifest.ps1 (Type=CMD). Exit codes surface back -REM to the enforcer. -REM -REM Oracle 11.2 OUI exit codes worth knowing: -REM 0 = success -REM 3 = success but with warnings -REM 1 = general failure -REM 6 = silent install requested but missing / bad response file - -setlocal enabledelayedexpansion -set "LOG=C:\Logs\OracleClient\install.log" -if not exist "C:\Logs\OracleClient" mkdir "C:\Logs\OracleClient" - -REM Emit a datestamp -for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value 2^>nul ^| find "="') do set LDT=%%I -set "STAMP=!LDT:~0,14!" - -echo [%STAMP%] Install-Oracle11r2.cmd starting >> "%LOG%" - -set "SRC_ZIP=%~dp0..\apps\Oracle_OracleDatabase_11r2_V03.zip" -set "STAGING=%TEMP%\oracle-11r2-install" -set "CLIENT_DIR=%STAGING%\Oracle_OracleDatabase_11r2_V03\client" -set "RSP=%CLIENT_DIR%\response\ge_client_install.rsp" - -if not exist "%SRC_ZIP%" ( - echo [%STAMP%] ERROR: zip not found at %SRC_ZIP% >> "%LOG%" - echo ERROR: zip not found at %SRC_ZIP% - exit /b 2 -) - -echo [%STAMP%] Expanding %SRC_ZIP% to %STAGING% >> "%LOG%" -if exist "%STAGING%" rmdir /s /q "%STAGING%" >nul 2>&1 -mkdir "%STAGING%" -powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^ - "try { Expand-Archive -Path '%SRC_ZIP%' -DestinationPath '%STAGING%' -Force -ErrorAction Stop; exit 0 } catch { Write-Error $_; exit 1 }" ^ - >> "%LOG%" 2>&1 - -if not exist "%CLIENT_DIR%\setup.exe" ( - echo [%STAMP%] ERROR: expanded setup.exe not found at %CLIENT_DIR%\setup.exe >> "%LOG%" - exit /b 3 -) - -if not exist "%RSP%" ( - echo [%STAMP%] ERROR: response file missing at %RSP% >> "%LOG%" - exit /b 4 -) - -echo [%STAMP%] Running OUI silent install (this takes 2-8 minutes) >> "%LOG%" -"%CLIENT_DIR%\setup.exe" -silent -waitforcompletion -nowait ^ - -ignoreSysPrereqs ^ - -responseFile "%RSP%" >> "%LOG%" 2>&1 -set RC=%ERRORLEVEL% - -echo [%STAMP%] OUI exit code: %RC% >> "%LOG%" - -REM Cleanup staging dir to reclaim ~1.5 GB - OUI copies everything to ORACLE_HOME -echo [%STAMP%] Cleaning up staging dir >> "%LOG%" -rmdir /s /q "%STAGING%" >nul 2>&1 - -REM OUI returns 0 for success, 3 for success-with-warnings. Treat both as OK. -if %RC%==3 ( - echo [%STAMP%] OUI reported warnings but install succeeded - returning 0 >> "%LOG%" - exit /b 0 -) - -exit /b %RC% diff --git a/playbook/shopfloor-setup/common/scripts/Migrate-PCType.ps1 b/playbook/shopfloor-setup/common/scripts/Migrate-PCType.ps1 deleted file mode 100755 index ae494e9..0000000 --- a/playbook/shopfloor-setup/common/scripts/Migrate-PCType.ps1 +++ /dev/null @@ -1,62 +0,0 @@ -# Migrate-PCType.ps1 - One-shot in-place rename of legacy pc-type.txt -# values to the gea-shopfloor-* taxonomy. -# -# Idempotent + safe: no-op if pc-type.txt already starts with -# 'gea-shopfloor-'. Decides collections vs nocollections from UDC's -# Uninstall reg presence (collections has UDC, nocollections doesn't). -# Standard-Timeclock + Lab map to gea-shopfloor-common. -# -# Runs every cycle (DetectionMethod=Always in manifest). Cheap because -# the no-op fast path is just one Get-Content + StartsWith check. - -$ErrorActionPreference = 'Continue' - -$typeFile = 'C:\Enrollment\pc-type.txt' -$subTypeFile = 'C:\Enrollment\pc-subtype.txt' - -if (-not (Test-Path $typeFile)) { exit 0 } - -$current = (Get-Content -LiteralPath $typeFile -First 1 -ErrorAction SilentlyContinue).Trim() -if (-not $current) { exit 0 } - -# Already on new taxonomy -if ($current.StartsWith('gea-shopfloor-')) { exit 0 } - -$subType = '' -if (Test-Path $subTypeFile) { - $subType = (Get-Content -LiteralPath $subTypeFile -First 1 -ErrorAction SilentlyContinue).Trim() -} - -# Map legacy -> new -$newType = $null -switch -Regex ($current) { - '^Standard$' { - if ($subType -ieq 'Machine') { - $udcReg = Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\UDC' - $newType = if ($udcReg) { 'gea-shopfloor-collections' } else { 'gea-shopfloor-nocollections' } - } elseif ($subType -ieq 'Timeclock') { - $newType = 'gea-shopfloor-common' - } else { - # Standard with no subtype - default to collections (most common) - $newType = 'gea-shopfloor-collections' - } - } - '^CMM$' { $newType = 'gea-shopfloor-cmm' } - '^Keyence$' { $newType = 'gea-shopfloor-keyence' } - '^Lab$' { $newType = 'gea-shopfloor-common' } - '^WaxAndTrace$' { $newType = 'gea-shopfloor-waxtrace' } - '^Genspect$' { $newType = 'gea-shopfloor-genspect' } - '^Display$' { $newType = 'gea-shopfloor-display' } - '^Heattreat$' { $newType = 'gea-shopfloor-heattreat' } - default { Write-Host "Migrate-PCType: unmapped legacy value '$current' - leaving alone"; exit 0 } -} - -Write-Host "Migrate-PCType: '$current' (subType='$subType') -> '$newType'" -Set-Content -LiteralPath $typeFile -Value $newType -Encoding ascii -ErrorAction Stop - -# Drop pc-subtype.txt - new taxonomy is single-string -if (Test-Path $subTypeFile) { - try { Remove-Item -LiteralPath $subTypeFile -Force -ErrorAction Stop; Write-Host " removed pc-subtype.txt" } catch {} -} - -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Select-KioskType.ps1 b/playbook/shopfloor-setup/common/scripts/Select-KioskType.ps1 deleted file mode 100644 index 1d82651..0000000 --- a/playbook/shopfloor-setup/common/scripts/Select-KioskType.ps1 +++ /dev/null @@ -1,68 +0,0 @@ -# Select-KioskType.ps1 -# -# Imaging-time picker that records which kind of kiosk this PC is, so GE-Enforce -# (share or Flask API) enforces the right scope. Writes the scope name to -# C:\Enrollment\pc-type.txt - the same file every other pc-type reads, and the -# value the Flask client passes as -Scope. -# -# Three kiosk subtypes (split out of the old generic gea-shopfloor-display): -# 1 lobbydisplay -> gea-shopfloor-lobbydisplay (lobby TV, dt\tv\slides) -# 2 dashboard -> gea-shopfloor-dashboard (shopfloor dashboard) -# 3 printerkiosk -> gea-shopfloor-printerkiosk (3D-printer kiosk) -# -# Usage: -# interactive (imaging operator picks): .\Select-KioskType.ps1 -# unattended (automation / task seq): .\Select-KioskType.ps1 -Type dashboard -# already-deployed kiosk (one-time set): .\Select-KioskType.ps1 -Type lobbydisplay -# -# Idempotent: rewrites pc-type.txt to the chosen scope. Always exits 0. - -param( - [ValidateSet('lobbydisplay', 'dashboard', 'printerkiosk')] - [string]$Type, - - [string]$EnrollmentFile = 'C:\Enrollment\pc-type.txt' -) - -$ErrorActionPreference = 'Continue' - -$map = [ordered]@{ - '1' = @{ Key = 'lobbydisplay'; Scope = 'gea-shopfloor-lobbydisplay'; Desc = 'Lobby display (lobby TV / slides)' } - '2' = @{ Key = 'dashboard'; Scope = 'gea-shopfloor-dashboard'; Desc = 'Shopfloor dashboard' } - '3' = @{ Key = 'printerkiosk'; Scope = 'gea-shopfloor-printerkiosk'; Desc = '3D-printer kiosk' } -} - -function Resolve-ScopeFromType([string]$t) { - foreach ($k in $map.Keys) { if ($map[$k].Key -eq $t) { return $map[$k].Scope } } - return $null -} - -$scope = $null -if ($Type) { - $scope = Resolve-ScopeFromType $Type -} else { - Write-Host '' - Write-Host 'Select this PC kiosk type:' -ForegroundColor Cyan - foreach ($k in $map.Keys) { Write-Host (" {0}) {1}" -f $k, $map[$k].Desc) } - Write-Host '' - do { - $choice = Read-Host 'Enter 1, 2, or 3' - } while (-not $map.Contains($choice)) - $scope = $map[$choice].Scope -} - -if (-not $scope) { - Write-Host "ERROR could not resolve a kiosk scope (Type='$Type')." -ForegroundColor Red - exit 0 -} - -try { - $dir = Split-Path -Parent $EnrollmentFile - if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null } - $scope | Set-Content -NoNewline -LiteralPath $EnrollmentFile -ErrorAction Stop - Write-Host "wrote $EnrollmentFile = $scope" -ForegroundColor Green -} catch { - Write-Host "ERROR writing ${EnrollmentFile}: $($_.Exception.Message)" -ForegroundColor Red -} - -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Set-EventSaverDisable.ps1 b/playbook/shopfloor-setup/common/scripts/Set-EventSaverDisable.ps1 deleted file mode 100755 index 3e3b35e..0000000 --- a/playbook/shopfloor-setup/common/scripts/Set-EventSaverDisable.ps1 +++ /dev/null @@ -1,54 +0,0 @@ -# Set-EventSaverDisable.ps1 -# -# Turn the EventSaver shopfloor screensaver OFF fleet-wide and undo its -# side effects. Runs under GE-Enforce (SYSTEM) every cycle. Idempotent + -# silent (SYSTEM context - no window). -# -# Self-excludes the canary test host: pass -ExceptHost and this script -# does nothing on that PC, so the (canary-gated) enable entries keep it on -# there while every other shopfloor PC is cleaned. -# -# Undoes: screensaver registry (per-user), the EventSaver-Enable fallback -# task, the never-off power policy, and the staged .scr/.ini. - -[CmdletBinding()] -param( - [string]$ExceptHost = '', - [string]$ScrPath = 'C:\Windows\System32\EventSaver.scr', - [string]$TaskName = 'EventSaver-Enable', - [int] $MonitorMinutes = 15, # restore a sane monitor-off (was Never) - [int] $StandbyMinutes = 20 # restore a sane sleep (was Never) -) - -$ErrorActionPreference = 'Continue' - -# leave the canary host alone - the enable entries own it there -if ($ExceptHost -and ($env:COMPUTERNAME -ieq $ExceptHost)) { exit 0 } - -function Disable-Saver($deskKey) { - if (Test-Path $deskKey) { - Set-ItemProperty -Path $deskKey -Name 'ScreenSaveActive' -Value '0' -Type String -Force -ErrorAction SilentlyContinue - Remove-ItemProperty -Path $deskKey -Name 'SCRNSAVE.EXE' -ErrorAction SilentlyContinue - } -} - -# 1. screensaver off in the default profile + every loaded user hive -Disable-Saver 'Registry::HKEY_USERS\.DEFAULT\Control Panel\Desktop' -Get-ChildItem 'Registry::HKEY_USERS' -ErrorAction SilentlyContinue | - Where-Object { $_.PSChildName -match '^S-1-5-21' -and $_.PSChildName -notmatch '_Classes$' } | - ForEach-Object { Disable-Saver "Registry::HKEY_USERS\$($_.PSChildName)\Control Panel\Desktop" } - -# 2. remove the self-clearing fallback task if present -if (Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -ErrorAction SilentlyContinue -} - -# 3. restore power (undo the EventSaver never-off) -& powercfg /change monitor-timeout-ac $MonitorMinutes 2>&1 | Out-Null -& powercfg /change standby-timeout-ac $StandbyMinutes 2>&1 | Out-Null - -# 4. remove staged binary + config (harmless if already gone) -Remove-Item -LiteralPath $ScrPath -Force -ErrorAction SilentlyContinue -Remove-Item -LiteralPath ($ScrPath -replace '\.scr$', '.ini') -Force -ErrorAction SilentlyContinue - -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Set-EventSaverPower.ps1 b/playbook/shopfloor-setup/common/scripts/Set-EventSaverPower.ps1 deleted file mode 100755 index 646893e..0000000 --- a/playbook/shopfloor-setup/common/scripts/Set-EventSaverPower.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -# Set-EventSaverPower.ps1 -# -# Keep shopfloor monitors + PCs awake so the EventSaver ad screensaver is -# actually visible. Runs under GE-Enforce (SYSTEM) every cycle (Always). -# Sets monitor-off + sleep to Never on the ACTIVE power scheme, so a screen -# never blanks out from under the screensaver. Re-applies each cycle, so a -# power-plan change is corrected on the next enforce pass. -# -# Screensaver must trigger before any monitor-off would - with monitor-off -# set to Never here, the screensaver (2-10 min idle) always wins. - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\Shopfloor' -if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } -$log = Join-Path $logDir 'eventsaver.log' -function Write-Log($m) { - Add-Content -LiteralPath $log -Value ("{0} {1}" -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $m) -} - -# 0 = Never. Cover monitor + standby, AC + DC (shopfloor PCs are AC, DC is -# harmless belt-and-suspenders). -& powercfg /change monitor-timeout-ac 0 2>&1 | Out-Null -& powercfg /change monitor-timeout-dc 0 2>&1 | Out-Null -& powercfg /change standby-timeout-ac 0 2>&1 | Out-Null -& powercfg /change standby-timeout-dc 0 2>&1 | Out-Null - -Write-Log "power: monitor-off + sleep set to Never (AC+DC) for EventSaver visibility" -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Set-EventSaverScreensaver.ps1 b/playbook/shopfloor-setup/common/scripts/Set-EventSaverScreensaver.ps1 deleted file mode 100755 index 277244a..0000000 --- a/playbook/shopfloor-setup/common/scripts/Set-EventSaverScreensaver.ps1 +++ /dev/null @@ -1,123 +0,0 @@ -# Set-EventSaverScreensaver.ps1 -# -# Enable the EventSaver shopfloor screensaver for EVERY user on the box. Runs -# under GE-Enforce (SYSTEM) every cycle. -# -# WHY THIS WAS REWRITTEN (2026-08-06) -# The previous version wrote the timeout to exactly two places: HKU\.DEFAULT, -# which only seeds profiles created AFTERWARDS, and the hive of one profile -# whose folder had to be named literally 'Shopfloor'. On any PC where the -# operator signs in as anything else, no HKCU was ever touched - the screensaver -# then ran on whatever the profile already carried (a domain default, commonly -# 120 seconds), while GE-Enforce reported success every cycle because from its -# point of view it had done its job. -# -# That is what the "screensaver after 2 minutes instead of 9" reports were: the -# manifest said 480 and the machines had never been told. -# -# Now: seed .DEFAULT for future profiles, then apply to EVERY loaded user hive. -# Same approach Set-DisplayAlwaysOn.ps1 already uses for the kiosks. A user who -# signs in between cycles is picked up on the next one. -# -# IDEMPOTENT + SILENT: hives already correct are skipped, so the common path -# writes nothing. - -[CmdletBinding()] -param( - [string]$ScrPath = 'C:\Windows\System32\EventSaver.scr', - [int] $TimeoutSeconds = 540, - # Retired. Kept so an older manifest passing -TargetUser does not fail to - # bind; it is deliberately ignored - targeting one named account is the bug - # this rewrite removes. - [string]$TargetUser = '', - [string]$TaskName = 'EventSaver-Enable' -) - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\Shopfloor' -if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } -$log = Join-Path $logDir 'eventsaver.log' -function Write-Log($m) { - Add-Content -LiteralPath $log -Value ("{0} {1}" -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $m) -} - -function Get-Val($deskKey, $name) { - return (Get-ItemProperty -Path $deskKey -Name $name -ErrorAction SilentlyContinue).$name -} - -# Already what we want? Idempotency gate - keeps the common path silent. -function Saver-IsSet($deskKey) { - if (-not (Test-Path $deskKey)) { return $false } - if ((Get-Val $deskKey 'ScreenSaveActive') -ne '1') { return $false } - if ((Get-Val $deskKey 'SCRNSAVE.EXE') -ne $ScrPath) { return $false } - if ("$((Get-Val $deskKey 'ScreenSaveTimeOut'))" -ne "$TimeoutSeconds") { return $false } - return $true -} - -function Set-SaverValues($deskKey) { - if (-not (Test-Path $deskKey)) { New-Item -Path $deskKey -Force | Out-Null } - Set-ItemProperty -Path $deskKey -Name 'ScreenSaveActive' -Value '1' -Type String -Force - Set-ItemProperty -Path $deskKey -Name 'SCRNSAVE.EXE' -Value $ScrPath -Type String -Force - Set-ItemProperty -Path $deskKey -Name 'ScreenSaveTimeOut' -Value "$TimeoutSeconds" -Type String -Force - Set-ItemProperty -Path $deskKey -Name 'ScreenSaverIsSecure' -Value '0' -Type String -Force -} - -# --- 1. seed .DEFAULT so profiles created later start correct ----------------- -$defKey = 'Registry::HKEY_USERS\.DEFAULT\Control Panel\Desktop' -if (-not (Saver-IsSet $defKey)) { - try { Set-SaverValues $defKey; Write-Log "seeded .DEFAULT ($TimeoutSeconds s)" } - catch { Write-Log "ERROR seeding .DEFAULT: $_" } -} - -# --- 2. apply to every loaded human hive -------------------------------------- -# Skipped: the three service accounts (SYSTEM, LOCAL SERVICE, NETWORK SERVICE) -# and the _Classes companions, which are not user desktops and would just add -# noise. Everything else that is loaded belongs to somebody signed in now. -$serviceSids = @('S-1-5-18', 'S-1-5-19', 'S-1-5-20') -$applied = 0 -$already = 0 - -try { - $hives = Get-ChildItem 'Registry::HKEY_USERS' -ErrorAction Stop | ForEach-Object { $_.PSChildName } -} catch { - Write-Log "ERROR enumerating HKEY_USERS: $_" - $hives = @() -} - -foreach ($sid in $hives) { - if ($sid -eq '.DEFAULT') { continue } # handled above - if ($sid -like '*_Classes') { continue } - if ($serviceSids -contains $sid) { continue } - if ($sid -notlike 'S-1-5-21-*') { continue } # real domain/local users only - - $hiveKey = "Registry::HKEY_USERS\$sid\Control Panel\Desktop" - if (Saver-IsSet $hiveKey) { $already++; continue } - try { - Set-SaverValues $hiveKey - $applied++ - Write-Log "applied to hive $sid ($TimeoutSeconds s)" - } catch { - Write-Log "ERROR writing hive ${sid}: $_" - } -} - -if ($applied -eq 0 -and $already -eq 0) { - # Nobody signed in - normal during imaging or on an idle bay. .DEFAULT above - # covers the next profile, and the next cycle after a logon covers the rest. - Write-Log 'no user hives loaded; .DEFAULT seeded, will apply on a later cycle' -} - -# --- 3. remove the old per-user fallback task --------------------------------- -# The previous version registered an AtLogon task for the hardcoded 'Shopfloor' -# account. On machines where nobody signs in as that, it sat queued forever and -# never fired. Applying to loaded hives every cycle replaces it, so clear any -# that are still registered. -try { - if (Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -ErrorAction SilentlyContinue - Write-Log "removed stale fallback task '$TaskName'" - } -} catch { } - -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Set-FmsHostsEntry.ps1 b/playbook/shopfloor-setup/common/scripts/Set-FmsHostsEntry.ps1 deleted file mode 100755 index bae588d..0000000 --- a/playbook/shopfloor-setup/common/scripts/Set-FmsHostsEntry.ps1 +++ /dev/null @@ -1,46 +0,0 @@ -# Set-FmsHostsEntry.ps1 - idempotently pin FMS host in C:\Windows\System32\drivers\etc\hosts. -# -# Why pinned: -# eDNC's FMS prescan (CPreScan::Initialise_Sockets in DncMain.exe and -# CDoPersonnel::InitializeSocket in DNCdll.dll) resolves the FMS host -# via MFC CSocket, which calls inet_addr first then gethostbyname. The -# legacy WinSock1 resolver path fails on the GE corporate network for -# wjfms3.ae.ge.com (modern getaddrinfo path used by PowerShell works -# fine, but eDNC does not use it). Hosts file entry is consulted by -# gethostbyname before any DNS query, so the pin short-circuits the -# broken legacy path. -# -# Idempotent: adds line if missing, leaves it alone if already present. -# Safe to run every cycle (DetectionMethod=Always in manifest). - -$ErrorActionPreference = 'Stop' - -$hostsPath = Join-Path $env:windir 'System32\drivers\etc\hosts' -$ip = '10.233.112.158' -$fqdn = 'WJFMS3.AE.GE.COM' -$line = "$ip`t$fqdn" - -if (-not (Test-Path $hostsPath)) { - Write-Host "hosts file not found at $hostsPath - aborting" - exit 1 -} - -$content = Get-Content -LiteralPath $hostsPath -ErrorAction Stop - -# Match any non-comment line that maps either the IP or the FQDN. -# Drops stale or wrong mappings of the same FQDN/IP, then appends the canonical pin. -$pattern = '(?i)^\s*[^#\s]+\s+\S*' + [regex]::Escape($fqdn) + '\b|^\s*' + [regex]::Escape($ip) + '\s' -$existing = $content | Where-Object { $_ -match $pattern } -$canonical = ($existing | Where-Object { $_ -match "^\s*$([regex]::Escape($ip))\s+$([regex]::Escape($fqdn))\s*$" }) - -if ($canonical -and $existing.Count -eq @($canonical).Count) { - # Already pinned correctly. No change. - exit 0 -} - -# Either no entry, or an entry exists with wrong IP/FQDN/casing/whitespace. Rewrite. -$kept = $content | Where-Object { $_ -notmatch $pattern } -$new = @($kept) + $line -Set-Content -LiteralPath $hostsPath -Value $new -Encoding ascii -ErrorAction Stop -Write-Host "Wrote FMS hosts pin: $line" -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Set-OpenTextToolbar.ps1 b/playbook/shopfloor-setup/common/scripts/Set-OpenTextToolbar.ps1 deleted file mode 100644 index 4a76093..0000000 --- a/playbook/shopfloor-setup/common/scripts/Set-OpenTextToolbar.ps1 +++ /dev/null @@ -1,58 +0,0 @@ -# Set-OpenTextToolbar.ps1 - replace the HostExplorer default VT toolbar. -# -# Copies the toolbar shipped in this share over the local one at: -# C:\ProgramData\Hummingbird\Connectivity\15.00\Shared\HostExplorer\Toolbar\ -# -# Runs from the common manifest with DetectionMethod Always, so it also -# self-heals if the file is changed locally. -# -# Deliberately does NOT bump the OpenText version. Setup-OpenText.ps1 skips -# unless HKLM:\SOFTWARE\GE\OpenText\Installed differs from version.txt, so a -# bump re-runs the whole thing - MSI plus the SP1 patch - on every OpenText -# machine over SMB, to ship a 565-byte file. This entry copies just the file. - -$ErrorActionPreference = 'Continue' - -$fileName = 'Default VT Toolbar.tbv' -$src = Join-Path $PSScriptRoot "..\apps\opentext\HostExplorer\Toolbar\$fileName" -$dstDir = 'C:\ProgramData\Hummingbird\Connectivity\15.00\Shared\HostExplorer\Toolbar' -$dst = Join-Path $dstDir $fileName - -Write-Host '=== OpenText VT toolbar ===' - -if (-not (Test-Path -LiteralPath $src)) { - Write-Host " source missing on share: $src - nothing to do." - return -} - -# Gate on OpenText actually being installed. The Shared root only exists once -# HostExplorer content has been deployed, so its absence means this machine has -# no OpenText and we should not create a stray Hummingbird tree. -$sharedRoot = 'C:\ProgramData\Hummingbird\Connectivity\15.00\Shared' -if (-not (Test-Path -LiteralPath $sharedRoot)) { - Write-Host ' OpenText not installed on this PC - skipping.' - return -} - -# Skip when identical, so an Always entry is not rewriting the file every cycle. -if (Test-Path -LiteralPath $dst) { - $sh = (Get-FileHash -LiteralPath $src -Algorithm SHA256).Hash - $dh = (Get-FileHash -LiteralPath $dst -Algorithm SHA256).Hash - if ($sh -eq $dh) { - Write-Host ' already current - no change.' - return - } - Write-Host ' local copy differs - replacing.' -} else { - Write-Host ' not present locally - installing.' -} - -try { - if (-not (Test-Path -LiteralPath $dstDir)) { - New-Item -ItemType Directory -Path $dstDir -Force -ErrorAction Stop | Out-Null - } - Copy-Item -LiteralPath $src -Destination $dst -Force -ErrorAction Stop - Write-Host " replaced $dst" -} catch { - Write-Warning " failed to replace ${dst}: $_" -} diff --git a/playbook/shopfloor-setup/common/scripts/Set-ShopdbCollectorKey.ps1 b/playbook/shopfloor-setup/common/scripts/Set-ShopdbCollectorKey.ps1 deleted file mode 100644 index 54a4bd9..0000000 --- a/playbook/shopfloor-setup/common/scripts/Set-ShopdbCollectorKey.ps1 +++ /dev/null @@ -1,137 +0,0 @@ -# Set-ShopdbCollectorKey.ps1 -# -# Delivers the ShopDB collector credential to every shopfloor PC by writing -# HKLM:\SOFTWARE\GE\ShopDB (BaseUrl + CollectorKey), the same contract the -# display kiosks already use. Anything that posts to /api/collector/* reads it -# from there - today Backup-NtlarsSettings.ps1, tomorrow whatever else reports. -# -# WHY A KEY IS NEEDED AT ALL: -# The GE-Enforce manifest/payload FETCH honours an IP allowlist, so a bay on a -# trusted subnet pulls config with no token. Collector INGEST does not: it -# accepts only a collector-scoped token. That asymmetry is deliberate - fetch -# reads config we already publish, ingest WRITES asset data, and an allowlist -# alone would let anything on the subnet post revisions. -# -# WHERE THE SECRET LIVES: -# NOT in manifest.json, and not in this script. It is read from a sibling file -# on the share (see $KEYCONFIG below), so: -# - the manifest stays free of secrets and safe to read/diff -# - rotating the token is replacing ONE file, not editing a manifest -# The file inherits the share's ACL, which grants file-level reads only to the -# SFLD user. Treat it as a secret: scope the token to collector.ingest ONLY, -# so a leak cannot read or mutate anything else. -# -# IDEMPOTENT: compares current registry values against desired and writes only -# on a difference, so DetectionMethod=Always costs one registry read per cycle -# after the first run. Rotating the key on the share re-converges the fleet on -# the next cycle with no other action. -# -# Always exits 0 so the GE-Enforce "last run result" stays clean. - -param( - # Override for a one-off run; normally read from the sibling config file. - [string]$CollectorKey, - [string]$BaseUrl -) - -$ErrorActionPreference = 'Continue' - -$SHOPDBREG = 'HKLM:\SOFTWARE\GE\ShopDB' -$KEYCONFIG = Join-Path $PSScriptRoot '..\configs\shopdb-collector.txt' -$LOGDIR = 'C:\Logs\Shopfloor' -$LOGFILE = Join-Path $LOGDIR 'shopdb-collector-key.log' - -if (-not (Test-Path $LOGDIR)) { - New-Item -ItemType Directory -Path $LOGDIR -Force -EA SilentlyContinue | Out-Null -} - -function Log { - param([string]$Message) - $line = '[{0}] {1}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Message - Add-Content -Path $LOGFILE -Value $line -EA SilentlyContinue - Write-Host $line -} - -function Read-KeyConfig { - <# - LABELLED lines only: - baseurl=https://host/shopdb - collector= - A bare line is ignored rather than guessed at - a fetch token landing in - the collector slot would leave reporting broken while looking configured. - #> - $result = @{ BaseUrl = ''; CollectorKey = '' } - if (-not (Test-Path $KEYCONFIG)) { return $result } - foreach ($line in (Get-Content $KEYCONFIG -EA SilentlyContinue)) { - $t = $line.Trim() - if (-not $t -or $t.StartsWith('#')) { continue } - if ($t -match '^(?i)collector\s*=\s*(.+)$') { $result.CollectorKey = $Matches[1].Trim() } - elseif ($t -match '^(?i)baseurl\s*=\s*(.+)$') { $result.BaseUrl = $Matches[1].Trim().TrimEnd('/') } - else { Log " ignoring unlabelled line in $(Split-Path $KEYCONFIG -Leaf)" } - } - return $result -} - -Log '=== Set-ShopdbCollectorKey start ===' - -$cfg = Read-KeyConfig -if (-not $CollectorKey) { $CollectorKey = $cfg.CollectorKey } -if (-not $BaseUrl) { $BaseUrl = $cfg.BaseUrl } - -if (-not $CollectorKey) { - # Not an error: an unconfigured share is the normal state before a site - # issues its token. Say exactly what to do rather than failing silently. - Log "No collector key configured. Put a 'collector=' line in:" - Log " $KEYCONFIG" - Log "Nothing written." - exit 0 -} - -# --- compare before writing ------------------------------------------------ -$current = $null -try { $current = Get-ItemProperty -Path $SHOPDBREG -EA Stop } catch { } - -$needKey = (-not $current) -or ($current.CollectorKey -ne $CollectorKey) -$needUrl = $BaseUrl -and ((-not $current) -or ($current.BaseUrl -ne $BaseUrl)) - -if (-not $needKey -and -not $needUrl) { - Log 'Registry already matches - nothing to do.' - Log '=== Set-ShopdbCollectorKey end ===' - exit 0 -} - -try { - if (-not (Test-Path $SHOPDBREG)) { New-Item -Path $SHOPDBREG -Force | Out-Null } - - if ($needUrl) { - New-ItemProperty -Path $SHOPDBREG -Name BaseUrl -Value $BaseUrl ` - -PropertyType String -Force -EA Stop | Out-Null - Log "Set BaseUrl = $BaseUrl" - } - if ($needKey) { - New-ItemProperty -Path $SHOPDBREG -Name CollectorKey -Value $CollectorKey ` - -PropertyType String -Force -EA Stop | Out-Null - Log "Set CollectorKey (length $($CollectorKey.Length)) - value not logged" - } - - # Lock the key down to SYSTEM + Administrators, matching what - # Install-ShopdbKiosk does on displays. Without this the value is readable - # by any interactive user, and a shopfloor PC is a shared login. - try { - $acl = Get-Acl $SHOPDBREG - $acl.SetAccessRuleProtection($true, $false) - foreach ($who in 'SYSTEM', 'Administrators') { - $acl.AddAccessRule((New-Object Security.AccessControl.RegistryAccessRule( - $who, 'FullControl', 'ContainerInherit,ObjectInherit', 'None', 'Allow'))) - } - Set-Acl -Path $SHOPDBREG -AclObject $acl -EA Stop - Log 'ACL set: SYSTEM + Administrators only.' - } catch { - Log "WARNING - could not tighten the ACL: $_" - } -} catch { - Log "FAILED to write ${SHOPDBREG}: $_" -} - -Log '=== Set-ShopdbCollectorKey end ===' -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Setup-OpenText.cmd b/playbook/shopfloor-setup/common/scripts/Setup-OpenText.cmd deleted file mode 100755 index b2eac8f..0000000 --- a/playbook/shopfloor-setup/common/scripts/Setup-OpenText.cmd +++ /dev/null @@ -1,15 +0,0 @@ -@echo off -REM Setup-OpenText.cmd - launcher for Setup-OpenText.ps1. -REM -REM Lives in /scripts/. Setup-OpenText.ps1 expects to find the four -REM OpenText binaries (OpenTextHostExplorer15x64.msi/.cab/.msp + ShopFloorx64.mst) -REM plus version.txt in $SourceDir. We pass ..\apps\opentext\ explicitly so the -REM script doesn't fall back to its $PSScriptRoot default (which would be the -REM scripts/ dir, where the binaries don't live). -REM -REM Mirrors the Install-AcroReader.cmd / Install-Oracle11r2.cmd pattern of -REM script-in-scripts, payload-in-apps. Called by Install-FromManifest.ps1 -REM (Type=CMD); exit code surfaces back to the enforcer. - -powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0Setup-OpenText.ps1" -SourceDir "%~dp0..\apps\opentext" -exit /b %errorlevel% diff --git a/playbook/shopfloor-setup/common/scripts/Setup-OpenText.ps1 b/playbook/shopfloor-setup/common/scripts/Setup-OpenText.ps1 deleted file mode 100755 index 1dbd8f4..0000000 --- a/playbook/shopfloor-setup/common/scripts/Setup-OpenText.ps1 +++ /dev/null @@ -1,361 +0,0 @@ -#!/usr/bin/env pwsh -# Setup-OpenText.ps1 - OpenText HostExplorer 15 SP1 ShopFloor installer + profile -# deployment, callable from both PXE PreInstall and Intune DSC paths. -# -# WHY THIS EXISTS: -# The vendor-supplied OpenText.exe (Inno Setup wrapper built by WJDT) bundles -# the install steps but its [Files] section deploys per-user content to -# {userappdata} - which resolves to SYSTEM's profile under DSC and to a single -# user under PreInstall. As a result the operator (logging in via Azure AD) -# never sees the profiles, keymaps, menus, or macros - only the installed -# binaries. This script replaces OpenText.exe entirely, doing the same install -# steps via direct msiexec calls AND fanning the per-user content out to: -# - %ProgramData%\Hummingbird\Connectivity\15.00\Shared\ -# - C:\Users\Default\AppData\Roaming\Hummingbird\Connectivity\15.00\ -# - Each existing user profile under C:\Users\ -# -# INVOKED BY: -# - PreInstall: Setup-OpenText.cmd wrapper (because the runner only knows MSI/EXE) -# - DSC: Install-OpenText.ps1 downloads the bundled tree from blob, then -# invokes this script with -SourceDir -# -# DETECTION: -# Skips if HKLM:\SOFTWARE\GE\OpenText\Installed = $expectedVersion. Marker is -# written at the end of a successful run, so the runner / DSC wrapper can -# no-op on subsequent invocations. - -[CmdletBinding()] -param( - # Override when invoked from a temp dir (DSC path) where the bundled files were - # just downloaded. Defaults to $PSScriptRoot, but resolved INSIDE the script body - # below - PowerShell evaluates `param([string]$X = $PSScriptRoot)` at parameter- - # binding time, when $PSScriptRoot may not yet be populated, so the default winds - # up as an empty string. Setting it in the body works because $PSScriptRoot is - # reliably populated by then. - [string]$SourceDir -) - -$ErrorActionPreference = 'Stop' - -if (-not $SourceDir) { - $SourceDir = $PSScriptRoot -} - -# Normalize $SourceDir to a canonical absolute path. The CMD shim passes -# "%~dp0..\apps\opentext" which embeds a literal "..". msiexec / the Windows -# Installer service fail to open the package with that unresolved segment -# (exit 1619, ERROR_INSTALL_PACKAGE_OPEN_FAILED), even though every other -# .NET / PowerShell API resolves it fine. Resolve-Path collapses ".." into -# a clean drive-rooted path before any msiexec invocation. -if (Test-Path -LiteralPath $SourceDir) { - try { $SourceDir = (Resolve-Path -LiteralPath $SourceDir).ProviderPath } catch {} -} - -# --- Inline site-config reader (this script runs from C:\PreInstall\installers\opentext\, -# NOT from C:\Enrollment\shopfloor-setup\, so it can't dot-source Get-PCProfile.ps1) --- -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path $configPath)) { return $null } - try { - return Get-Content $configPath -Raw | ConvertFrom-Json - } catch { - return $null - } -} - -# --- Logging (set up FIRST so any startup error - missing version.txt, broken -# bundled file, etc. - lands in the log file instead of disappearing into the -# runner's stdout void) --- -$logDir = 'C:\Logs\PreInstall' -$logFile = Join-Path $logDir 'Setup-OpenText.log' -$msiLog = Join-Path $logDir 'Setup-OpenText-msi.log' -$mspLog = Join-Path $logDir 'Setup-OpenText-msp.log' - -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -function Write-SetupLog { - param([string]$Message) - $line = "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] $Message" - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Write-SetupLog "================================================================" -Write-SetupLog "=== Setup-OpenText.ps1 starting ===" -Write-SetupLog "================================================================" -Write-SetupLog "SourceDir: $SourceDir" -Write-SetupLog "PSScriptRoot: $PSScriptRoot" -Write-SetupLog "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -# --- Config --- -# Version is read from version.txt next to this script. ONE source of truth: bumping -# version.txt is the only edit needed when shipping a new OpenText build. Setup- -# OpenText.ps1 itself, Install-OpenText.ps1 (DSC wrapper), and the registry marker -# all derive their notion of "expected version" from this file. -$versionFile = Join-Path $SourceDir 'version.txt' -Write-SetupLog "Looking for version.txt at: $versionFile" -if (-not (Test-Path $versionFile)) { - Write-SetupLog "ERROR: version.txt not found in $SourceDir - cannot determine expected version." - Write-SetupLog "Directory listing of $SourceDir :" - if (Test-Path $SourceDir) { - Get-ChildItem $SourceDir -ErrorAction SilentlyContinue | ForEach-Object { - Write-SetupLog " $($_.Name) $($_.Length) bytes" - } - } else { - Write-SetupLog " (SourceDir does not exist)" - } - exit 1 -} -$expectedVersion = (Get-Content -Path $versionFile -Raw -ErrorAction Stop).Trim() -if (-not $expectedVersion) { - Write-SetupLog "ERROR: version.txt at $versionFile is empty." - exit 1 -} -Write-SetupLog "Expected version (from version.txt): $expectedVersion" - -# --- Detection: skip if already deployed at expected version --- -$markerKey = 'HKLM:\SOFTWARE\GE\OpenText' -$markerVal = 'Installed' -if (Test-Path $markerKey) { - $installed = (Get-ItemProperty -Path $markerKey -Name $markerVal -ErrorAction SilentlyContinue).$markerVal - if ($installed -eq $expectedVersion) { - Write-SetupLog "OpenText $expectedVersion already deployed (marker present) - skipping." - exit 0 - } - Write-SetupLog "OpenText marker mismatch (found '$installed', expected '$expectedVersion') - re-deploying." -} -else { - Write-SetupLog "OpenText marker not present - first install." -} - -# --- Verify bundled files are where we expect --- -$msiPath = Join-Path $SourceDir 'OpenTextHostExplorer15x64.msi' -$cabPath = Join-Path $SourceDir 'OpenTextHostExplorer15x64.cab' -$mspPath = Join-Path $SourceDir 'OpenTextHostExplorer15x64_ServicePack1.msp' -$mstPath = Join-Path $SourceDir 'ShopFloorx64.mst' - -foreach ($f in @($msiPath, $cabPath, $mspPath, $mstPath)) { - if (-not (Test-Path $f)) { - Write-SetupLog "ERROR: required file not found: $f" - exit 1 - } -} - -# --- Step 1: Install the base MSI with the ShopFloor transform --- -# NOTE: We deliberately do NOT pass REBOOT=ReallySuppress here even though we do -# for the VC++ MSIs. OpenText HostExplorer installs shell extensions that hook -# explorer.exe, and the MSI uses Restart Manager to ask explorer to close so the -# in-use shell DLLs can be replaced. With REBOOT=ReallySuppress, RM closes -# explorer.exe but interprets "restart explorer" as a reboot action and refuses -# to relaunch it - leaving the user without a desktop. /norestart on its own -# prevents the actual Windows reboot but lets RM cleanly close-and-relaunch -# explorer mid-install. msiexec still returns 3010 ("reboot would be needed"), -# which we treat as success below. -Write-SetupLog "" -Write-SetupLog "Step 1: Installing OpenTextHostExplorer15x64.msi with ShopFloorx64.mst..." -if (Test-Path $msiLog) { Remove-Item $msiLog -Force -ErrorAction SilentlyContinue } - -$msiArgs = "/i `"$msiPath`" TRANSFORMS=`"$mstPath`" /qn /norestart /L*v `"$msiLog`"" -Write-SetupLog " msiexec.exe $msiArgs" - -$psi = New-Object System.Diagnostics.ProcessStartInfo -$psi.FileName = 'msiexec.exe' -$psi.Arguments = $msiArgs -$psi.UseShellExecute = $false -$psi.CreateNoWindow = $true -$proc = [System.Diagnostics.Process]::Start($psi) -$proc.WaitForExit() -$msiExit = $proc.ExitCode -Write-SetupLog " msiexec exit code: $msiExit" - -if ($msiExit -ne 0 -and $msiExit -ne 3010) { - Write-SetupLog "ERROR: base MSI install failed (exit $msiExit). See $msiLog" - exit 1 -} -if ($msiExit -eq 3010) { - Write-SetupLog " (3010 = reboot needed but suppressed)" -} - -# --- Step 2: Apply Service Pack 1 patch --- -# Same Restart Manager rationale as Step 1 - skip REBOOT=ReallySuppress so RM -# can relaunch explorer.exe after replacing the patched shell extension DLLs. -Write-SetupLog "" -Write-SetupLog "Step 2: Applying SP1 patch..." -if (Test-Path $mspLog) { Remove-Item $mspLog -Force -ErrorAction SilentlyContinue } - -$mspArgs = "/p `"$mspPath`" /qn /norestart /L*v `"$mspLog`"" -Write-SetupLog " msiexec.exe $mspArgs" - -$psi.Arguments = $mspArgs -$proc = [System.Diagnostics.Process]::Start($psi) -$proc.WaitForExit() -$mspExit = $proc.ExitCode -Write-SetupLog " msiexec exit code: $mspExit" - -if ($mspExit -ne 0 -and $mspExit -ne 3010) { - Write-SetupLog "ERROR: SP1 patch failed (exit $mspExit). See $mspLog" - exit 1 -} - -# --- Step 3: Deploy profiles, keymaps, menus, accessories --- -# Source layout (bundled with this script): -# $SourceDir\Profile\*.hep -# $SourceDir\Accessories\EB\*.eb* -# $SourceDir\HostExplorer\Keymap\*.kmv -# $SourceDir\HostExplorer\Menu\*.hmv -# -# Target layouts (Hummingbird-canonical): -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\Profile\ -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\Accessories\EB\ -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\HostExplorer\Keymap\ -# %ProgramData%\Hummingbird\Connectivity\15.00\Shared\HostExplorer\Menu\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\Profile\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\Accessories\EB\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\HostExplorer\Keymap\ -# \AppData\Roaming\Hummingbird\Connectivity\15.00\HostExplorer\Menu\ -# -# We deploy to ProgramData\Shared (system-wide fallback), Default User (template -# inherited by every NEW user profile), and every existing user profile (so -# already-created accounts like SupportUser get them immediately). - -Write-SetupLog "" -Write-SetupLog "Step 3: Deploying profiles/keymaps/menus/macros..." - -# --- Resolve exclude lists from site-config.json (falls back to West Jefferson defaults) --- -$siteConfig = Get-SiteConfig -$profileExcludes = if ($siteConfig -and $siteConfig.opentext -and $siteConfig.opentext.excludeProfiles) { - @($siteConfig.opentext.excludeProfiles) -} else { - @('WJ_Office.hep', 'IBM_qks.hep', 'mmcs.hep') # West Jefferson defaults -} -$shortcutExcludes = if ($siteConfig -and $siteConfig.opentext -and $siteConfig.opentext.excludeShortcuts) { - @($siteConfig.opentext.excludeShortcuts) -} else { - @('WJ_Office.lnk', 'IBM_qks.lnk', 'mmcs.lnk') -} -if ($siteConfig) { - Write-SetupLog "Site config loaded - profile excludes: $($profileExcludes -join ', ')" - Write-SetupLog "Site config loaded - shortcut excludes: $($shortcutExcludes -join ', ')" -} else { - Write-SetupLog "No site-config.json found - using West Jefferson defaults for excludes" -} - -# Map of source subdir -> destination subdir relative to the Hummingbird root. -# Optional Exclude list drops specific filenames from both the source-to-dest -# copy AND from the destination if they were left over from a prior install. -$contentMap = @( - @{ - Src = 'Profile' - Dst = 'Profile' - Exclude = $profileExcludes - } - @{ Src = 'Accessories\EB'; Dst = 'Accessories\EB' } - @{ Src = 'HostExplorer\Keymap'; Dst = 'HostExplorer\Keymap' } - @{ Src = 'HostExplorer\Menu'; Dst = 'HostExplorer\Menu' } -) - -function Copy-HummingbirdContent { - param( - [string]$RootDst, # Hummingbird root, e.g. C:\ProgramData\Hummingbird\Connectivity\15.00\Shared - [string]$Label - ) - foreach ($entry in $contentMap) { - $srcPath = Join-Path $SourceDir $entry.Src - if (-not (Test-Path $srcPath)) { continue } - $dstPath = Join-Path $RootDst $entry.Dst - New-Item -Path $dstPath -ItemType Directory -Force | Out-Null - - # Remove any previously-deployed excluded files from the destination - # - handles the case where a PC got them from an older install. - if ($entry.Exclude) { - foreach ($name in $entry.Exclude) { - $stale = Join-Path $dstPath $name - if (Test-Path -LiteralPath $stale) { - try { - Remove-Item -LiteralPath $stale -Force -ErrorAction Stop - Write-SetupLog " $Label : removed stale $name" - } catch { - Write-SetupLog " $Label : failed to remove $stale : $_" - } - } - } - } - - $files = Get-ChildItem -Path $srcPath -File -ErrorAction SilentlyContinue - if ($entry.Exclude) { - $files = @($files | Where-Object { $entry.Exclude -notcontains $_.Name }) - } - foreach ($f in $files) { - Copy-Item -Path $f.FullName -Destination $dstPath -Force - } - Write-SetupLog " $Label : $($entry.Src) -> $dstPath ($($files.Count) files)" - } -} - -# 3a. ProgramData Shared -$sharedRoot = Join-Path $env:ProgramData 'Hummingbird\Connectivity\15.00\Shared' -Copy-HummingbirdContent -RootDst $sharedRoot -Label 'Shared' - -# 3b. Default User (template for new user profiles) -$defaultUserRoot = 'C:\Users\Default\AppData\Roaming\Hummingbird\Connectivity\15.00' -Copy-HummingbirdContent -RootDst $defaultUserRoot -Label 'Default User' - -# 3c. Every existing user profile under C:\Users\ -$skipNames = @('Default', 'Default User', 'Public', 'defaultuser0', 'All Users', 'WDAGUtilityAccount') -$userDirs = Get-ChildItem 'C:\Users' -Directory -ErrorAction SilentlyContinue | - Where-Object { $skipNames -notcontains $_.Name -and (Test-Path "$($_.FullName)\AppData\Roaming") } - -foreach ($u in $userDirs) { - $userRoot = Join-Path $u.FullName 'AppData\Roaming\Hummingbird\Connectivity\15.00' - Copy-HummingbirdContent -RootDst $userRoot -Label $u.Name -} - -# --- Step 4: Public Desktop shortcuts --- -# Uses $shortcutExcludes (resolved from site-config.json above) to skip -# deploying unwanted .lnk files AND remove any a prior install left behind. -Write-SetupLog "" -Write-SetupLog "Step 4: Deploying public desktop shortcuts..." -$shortcutSrc = Join-Path $SourceDir 'W10shortcuts' -$publicDesktop = 'C:\Users\Public\Desktop' - -# Clean up stale copies from prior installs first -foreach ($name in $shortcutExcludes) { - $stale = Join-Path $publicDesktop $name - if (Test-Path -LiteralPath $stale) { - try { - Remove-Item -LiteralPath $stale -Force -ErrorAction Stop - Write-SetupLog " removed stale desktop shortcut: $name" - } catch { - Write-SetupLog " failed to remove stale $stale : $_" - } - } -} - -if (Test-Path $shortcutSrc) { - $lnkFiles = Get-ChildItem -Path $shortcutSrc -Filter '*.lnk' -File -ErrorAction SilentlyContinue - foreach ($l in $lnkFiles) { - if ($shortcutExcludes -contains $l.Name) { - Write-SetupLog " skip (excluded): $($l.Name)" - continue - } - Copy-Item -Path $l.FullName -Destination $publicDesktop -Force - Write-SetupLog " $($l.Name) -> $publicDesktop" - } -} - -# --- Step 5: Write registry marker --- -Write-SetupLog "" -Write-SetupLog "Step 5: Writing registry marker..." -if (-not (Test-Path $markerKey)) { - New-Item -Path $markerKey -Force | Out-Null -} -Set-ItemProperty -Path $markerKey -Name $markerVal -Value $expectedVersion -Force -Set-ItemProperty -Path $markerKey -Name 'InstalledAt' -Value (Get-Date -Format 'o') -Force - -Write-SetupLog "" -Write-SetupLog "================================================================" -Write-SetupLog "=== OpenText HostExplorer ShopFloor $expectedVersion deployed ===" -Write-SetupLog "================================================================" -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/Test-RegExport.ps1 b/playbook/shopfloor-setup/common/scripts/Test-RegExport.ps1 deleted file mode 100644 index a37c884..0000000 --- a/playbook/shopfloor-setup/common/scripts/Test-RegExport.ps1 +++ /dev/null @@ -1,82 +0,0 @@ -# Test-RegExport.ps1 -# -# Exercises Backup-NtlarsSettings.ps1's Export-DncToReg against MOCK registry -# keys, so the formatting can be verified on a machine with no registry (a -# Linux dev box running PowerShell Core, for instance). -# -# Why this exists: bad escaping or a wrong dword format produces a .reg that -# looks fine, imports without complaint, and only reveals itself when a tech -# restores a machine and the settings are subtly wrong. That failure is far too -# late and far too expensive, so the formatting gets tested away from the bay. -# -# Writes the generated .reg to -OutFile so the ShopDB-side Python codec can -# parse it in the same run and confirm both ends agree. -# -# pwsh -NoProfile -File Test-RegExport.ps1 -OutFile /tmp/mock.reg - -param( - [string]$OutFile = './mock-export.reg' -) - -$ErrorActionPreference = 'Stop' - -. (Join-Path $PSScriptRoot 'Backup-NtlarsSettings.ps1') - -function New-MockKey { - <# - A stand-in for a Microsoft.Win32.RegistryKey. PowerShell is duck-typed, - so Export-DncToReg only needs .Name, .GetValueNames(), .GetValueKind() - and .GetValue(). - #> - param( - [Parameter(Mandatory)][string]$Name, - [Parameter(Mandatory)][hashtable]$Values # name -> @{ Kind; Data } - ) - $key = [pscustomobject]@{ Name = $Name; _values = $Values } - $key | Add-Member ScriptMethod GetValueNames { $this._values.Keys } -Force - $key | Add-Member ScriptMethod GetValueKind { - param($n) $this._values[$n].Kind } -Force - $key | Add-Member ScriptMethod GetValue { - param($n) $this._values[$n].Data } -Force - return $key -} - -$root = 'HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC' - -$keys = @( - New-MockKey -Name $root -Values @{ - 'COMPUTERNAME' = @{ Kind = 'String'; Data = 'GGBX0NH3ESF' } - } - New-MockKey -Name "$root\General" -Values @{ - 'MachineNo' = @{ Kind = 'String'; Data = '3204' } - 'Cnc' = @{ Kind = 'String'; Data = 'OKUMA' } - 'HostType' = @{ Kind = 'String'; Data = 'WILM' } - } - New-MockKey -Name "$root\Btr" -Values @{ - 'BTR Rate' = @{ Kind = 'String'; Data = '300' } - 'Auto Rewind' = @{ Kind = 'String'; Data = 'YES' } - 'CmntLag' = @{ Kind = 'DWord'; Data = 0 } - 'BigCount' = @{ Kind = 'DWord'; Data = 4294967295 } - } - # The nasty cases: characters that must be escaped, and the wide/binary - # value kinds that do not occur in the current corpus but are legal. - New-MockKey -Name "$root\EdgeCases" -Values @{ - 'Path With Backslash' = @{ Kind = 'String'; Data = 'C:\Program Files\GE' } - 'Has "Quotes"' = @{ Kind = 'String'; Data = 'say "hi"' } - 'Empty' = @{ Kind = 'String'; Data = '' } - 'Expanded' = @{ Kind = 'ExpandString'; Data = '%SystemRoot%\dnc' } - 'Multi' = @{ Kind = 'MultiString'; Data = @('one','two') } - 'Blob' = @{ Kind = 'Binary'; Data = [byte[]](1,2,255) } - 'Big' = @{ Kind = 'QWord'; Data = [uint64]1234567890123 } - } -) - -$text = Export-DncToReg -Keys $keys - -# UTF-16LE + BOM, matching what the real script posts. -$bytes = [byte[]](0xFF, 0xFE) + [Text.Encoding]::Unicode.GetBytes($text) -[IO.File]::WriteAllBytes($OutFile, $bytes) - -Write-Host "Wrote $OutFile ($($bytes.Length) bytes)" -Write-Host '--- first lines ---' -($text -split "`r`n" | Select-Object -First 12) | ForEach-Object { Write-Host " $_" } diff --git a/playbook/shopfloor-setup/common/scripts/Test-ShareAccess.ps1 b/playbook/shopfloor-setup/common/scripts/Test-ShareAccess.ps1 deleted file mode 100644 index c4b7902..0000000 --- a/playbook/shopfloor-setup/common/scripts/Test-ShareAccess.ps1 +++ /dev/null @@ -1,249 +0,0 @@ -# Test-ShareAccess.ps1 - why can this PC not reach the share? -# -# READ-ONLY. It maps nothing, deletes nothing, stores no credential and prints -# no password. Safe to run on a production bay while somebody is working. -# -# THE PROBLEM IT EXISTS FOR -# -# Shopfloor PCs intermittently lose S: - it prompts for credentials - while -# navigating the identical UNC path in Explorer works fine. That combination has -# several possible causes which look identical from the desk, and the fix -# differs for each: -# -# 1. Persistent reconnect raced the network. The mapping is restored early in -# logon, before wifi/802.1X is up, so it comes back dead. A manual UNC -# visit minutes later works because by then the server is reachable. -# 2. The stored credential does not cover the name form in use. Credential -# Manager matches by STRING: an entry for "server" does not serve -# "server.domain.com". One path finds the account, the other does not. -# 3. Two identities for one server. Windows allows ONE SMB session per server -# per logon session, so if the drive wants a shared account and something -# already opened that server as the logged-on user (or by a second name -# form), the loser gets a credential prompt rather than a clear error. -# 4. Genuinely stale password, after a rotation. -# -# This collects the evidence that separates them, and says which it looks like. -# -# CONTEXT MATTERS: drive mappings and SMB sessions are PER LOGON SESSION. Run it -# as the logged-on user to diagnose S:. Run it as SYSTEM (psexec -s, or a -# GE-Enforce manifest entry) to diagnose W: and the backup scripts. The two see -# different worlds, and a mapping visible in one is genuinely absent in the -# other - that is not a bug. -# -# Log: C:\Logs\Shopfloor\share-access-.log - -param( - # Server to test. Both the short and fully-qualified forms are exercised, - # because a mismatch between them is one of the causes. - [string]$Server = 'tsgwp00525.wjs.geaerospace.net', - # Share to probe on that server. - [string]$Share = 'shared', - # Drive letters to report on. S: is the user's shopfloor mapping, W: is the - # one GE-Enforce makes as SYSTEM for the duration of its cycle. - [string[]]$Drives = @('S:', 'W:') -) - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\Shopfloor' -if (-not (Test-Path $logDir)) { - try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$logFile = Join-Path $logDir ('share-access-{0}.log' -f (Get-Date -Format 'yyyyMMdd-HHmmss')) - -function Say { - param([string]$Text = '') - Write-Host $Text - Add-Content -Path $logFile -Value $Text -ErrorAction SilentlyContinue -} - -function Section { - param([string]$Title) - Say '' - Say ('=== {0} ' -f $Title).PadRight(70, '=') -} - -$short = ($Server -split '\.')[0] -$forms = @($Server, $short) | Select-Object -Unique -$findings = New-Object System.Collections.Generic.List[string] - -Say ('Test-ShareAccess {0}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss')) -Say ('Log: {0}' -f $logFile) - -# --------------------------------------------------------------------------- -Section 'Who is running this' -# Everything below is scoped to this identity and this logon session. A drive -# absent here may be perfectly healthy in another session. -$me = [Security.Principal.WindowsIdentity]::GetCurrent() -$isSystem = $me.IsSystem -Say ('User : {0}{1}' -f $me.Name, $(if ($isSystem) { ' (SYSTEM - sees W:, NOT the user''s S:)' } else { '' })) -Say ('Computer : {0}' -f $env:COMPUTERNAME) -if (-not $isSystem) { - Say 'Note : run this again as SYSTEM (psexec -s) to see what GE-Enforce sees.' -} - -# --------------------------------------------------------------------------- -Section 'Name resolution and reachability' -# A dead mapping with a healthy UNC path is often just timing: if the server is -# unreachable at logon the persistent reconnect fails, and by the time anyone -# looks the network is fine. -foreach ($form in $forms) { - $ip = '' - try { - $ip = ([Net.Dns]::GetHostAddresses($form) | - Where-Object { $_.AddressFamily -eq 'InterNetwork' } | - Select-Object -First 1).IPAddressToString - } catch { $ip = 'DNS FAILED' } - - $port = 'no' - try { - $client = New-Object Net.Sockets.TcpClient - $async = $client.BeginConnect($form, 445, $null, $null) - if ($async.AsyncWaitHandle.WaitOne(3000) -and $client.Connected) { $port = 'yes' } - $client.Close() - } catch { } - Say ('{0,-45} -> {1,-16} SMB/445 reachable: {2}' -f $form, $ip, $port) - if ($port -ne 'yes') { - $findings.Add("Cannot reach $form on 445 right now. If the mapping failed at logon for the same reason, that is cause 1 - a reconnect that raced the network.") - } -} - -# --------------------------------------------------------------------------- -Section 'Drive mappings in THIS session' -# The 'user' column is the point: a drive remembering an account other than the -# one running this is what makes a credential prompt possible at all. -$netuse = & net use 2>&1 | Out-String -Say $netuse.TrimEnd() -foreach ($drive in $Drives) { - $line = ($netuse -split "`r?`n" | Where-Object { $_ -match [regex]::Escape($drive) } | Select-Object -First 1) - if (-not $line) { - Say ('{0} not present in this session.' -f $drive) - } elseif ($line -match 'Unavailable|Disconnected') { - Say ('{0} present but NOT connected.' -f $drive) - $findings.Add("$drive exists but is not connected - the classic dead persistent reconnect (cause 1).") - } -} - -# --------------------------------------------------------------------------- -Section 'Stored credentials' -# cmdkey matches by STRING, so the exact Target text decides whether a mapping -# finds its account. This prints targets and usernames only - never a password, -# and cmdkey cannot reveal one anyway. -$cmdkey = & cmdkey /list 2>&1 | Out-String -$targets = [regex]::Matches($cmdkey, 'Target:\s*(\S+)') | ForEach-Object { $_.Groups[1].Value } -if ($targets) { - Say 'Targets stored for this user:' - foreach ($t in $targets) { Say (' {0}' -f $t) } -} else { - Say 'No stored credentials for this user.' -} - -foreach ($form in $forms) { - $covered = @($targets | Where-Object { - $_ -match [regex]::Escape($form) -or - ($_ -match '^\*' -and $form -like ($_ -replace '^Domain:target=', '')) - }) - if ($covered.Count -eq 0) { - Say ('NO stored credential matches "{0}"' -f $form) - $findings.Add("No credential entry matches '$form'. If the mapping uses that form, it has no account to reconnect with (cause 2). Add an entry for every name form in use, or a wildcard.") - } else { - Say ('Credential covers "{0}": {1}' -f $form, ($covered -join ', ')) - } -} - -# --------------------------------------------------------------------------- -Section 'Kerberos tickets' -# A cifs/ ticket for the server means this identity can reach it on its own. -# On a shopfloor bay the logon usually CANNOT, which is why a stored account is -# mandatory - and that is what makes two-identities-one-server possible. -$klist = & klist 2>&1 | Out-String -$cifs = [regex]::Matches($klist, 'cifs/[^\s@]+') | ForEach-Object { $_.Value } | Select-Object -Unique -if ($cifs) { Say ('cifs tickets: {0}' -f ($cifs -join ', ')) } else { Say 'No cifs tickets for this identity.' } - -# --------------------------------------------------------------------------- -Section 'Live SMB sessions to this server' -# ONE session per server per logon session. Two name forms count as two servers -# - which is how a single share ends up wanting two identities at once. -$connections = @() -try { - $connections = @(Get-SmbConnection -ErrorAction Stop | - Where-Object { $_.ServerName -match [regex]::Escape($short) }) -} catch { } -if ($connections.Count) { - foreach ($c in $connections) { - Say ('{0,-45} share {1,-14} as {2}' -f $c.ServerName, $c.ShareName, $c.UserName) - } - $identities = @($connections | Select-Object -ExpandProperty UserName -Unique) - $servers = @($connections | Select-Object -ExpandProperty ServerName -Unique) - if ($identities.Count -gt 1) { - $findings.Add("More than one identity is connected to this server in this session ($($identities -join ', ')). That is cause 3, and whichever connected first wins - the other gets a credential prompt.") - } - if ($servers.Count -gt 1) { - $findings.Add("This server is connected under more than one NAME ($($servers -join ', ')). Windows treats those as different servers, so they get separate sessions and separate credential lookups.") - } -} else { - Say 'No live SMB session to this server in this logon session.' -} - -# --------------------------------------------------------------------------- -Section 'Can this identity read the share right now' -# Test-Path is deliberately not trusted on its own: a SYSTEM process denied -# access to a UNC path gets a "not found", so a permissions problem reads as a -# missing directory. -foreach ($form in $forms) { - $path = '\\{0}\{1}' -f $form, $Share - $ok = $false - try { $ok = Test-Path -LiteralPath $path -ErrorAction Stop } catch { } - Say ('{0,-55} readable: {1}' -f $path, $ok) - if (-not $ok -and $isSystem) { - Say ' (as SYSTEM a denial reports as "not found" - do not read this as a missing path)' - } -} - -# --------------------------------------------------------------------------- -Section 'SFLD credential provisioning (GE-Enforce)' -# Username and presence only. The password is never printed - it is a fleet -# credential and this log is written to a directory techs read. -$sfldBase = 'HKLM:\SOFTWARE\GE\SFLD\Credentials' -if (Test-Path $sfldBase) { - foreach ($key in Get-ChildItem $sfldBase -ErrorAction SilentlyContinue) { - $props = Get-ItemProperty -Path $key.PSPath -ErrorAction SilentlyContinue - $names = @($props.PSObject.Properties.Name) - $user = if ($names -contains 'Username') { $props.Username } else { '(none)' } - $hasPassword = ($names -contains 'Password') -and $props.Password - Say ('{0,-30} user {1,-28} password present: {2}' -f $key.PSChildName, $user, [bool]$hasPassword) - } -} else { - Say 'No SFLD credentials provisioned (Azure DSC has not run, or this is not a fleet PC).' - if ($isSystem) { - $findings.Add('No SFLD credential in the registry, so GE-Enforce cannot mount the share at all this cycle.') - } -} - -# --------------------------------------------------------------------------- -Section 'Recent SMB client errors' -try { - $events = Get-WinEvent -FilterHashtable @{ - LogName = 'Microsoft-Windows-SMBClient/Connectivity'; StartTime = (Get-Date).AddDays(-3) - } -MaxEvents 8 -ErrorAction Stop - foreach ($e in $events) { - Say ('{0} id {1} {2}' -f $e.TimeCreated.ToString('MM-dd HH:mm'), $e.Id, - (($e.Message -split "`r?`n")[0])) - } -} catch { - Say 'No SMBClient/Connectivity events in the last 3 days (or the log is not enabled).' -} - -# --------------------------------------------------------------------------- -Section 'What this looks like' -if ($findings.Count -eq 0) { - Say 'Nothing conclusive. If the drive is failing only at logon, run this again' - Say 'IMMEDIATELY after a failure - several of these signals are transient and' - Say 'a working session masks the state that caused the prompt.' -} else { - $n = 0 - foreach ($f in $findings) { $n++; Say ('{0}. {1}' -f $n, $f) } -} -Say '' -Say ('Full log: {0}' -f $logFile) -exit 0 diff --git a/playbook/shopfloor-setup/common/scripts/ensure-vnc-firewall.ps1 b/playbook/shopfloor-setup/common/scripts/ensure-vnc-firewall.ps1 deleted file mode 100755 index d3153ee..0000000 --- a/playbook/shopfloor-setup/common/scripts/ensure-vnc-firewall.ps1 +++ /dev/null @@ -1,37 +0,0 @@ -# ensure-vnc-firewall.ps1 -# Idempotent inbound firewall rules for VNC port 5900 on all network profiles. -# Called by Install-FromManifest with Type=PS1, DetectionMethod=Always (runs -# every enforcement cycle; the Remove + New pattern makes repeat runs cheap -# and always end in a known-good state). -# -# Exit 0 on success, 1 on failure. SYSTEM context. - -$ErrorActionPreference = 'Continue' - -$rules = @( - @{ Name = 'GE Shopfloor VNC 5900 TCP'; Protocol = 'TCP'; LocalPort = 5900 } - @{ Name = 'GE Shopfloor VNC 5900 UDP'; Protocol = 'UDP'; LocalPort = 5900 } -) - -$failed = 0 -foreach ($r in $rules) { - try { - Remove-NetFirewallRule -DisplayName $r.Name -ErrorAction SilentlyContinue - New-NetFirewallRule ` - -DisplayName $r.Name ` - -Direction Inbound ` - -Protocol $r.Protocol ` - -LocalPort $r.LocalPort ` - -Action Allow ` - -Profile Domain,Private,Public ` - -Description 'VNC remote access for shopfloor ops (5900). Managed by GE Shopfloor Enforce.' ` - -ErrorAction Stop | Out-Null - Write-Host "[OK] $($r.Name) ($($r.Protocol) $($r.LocalPort))" - } catch { - Write-Host "[FAIL] $($r.Name): $_" - $failed++ - } -} - -if ($failed -gt 0) { exit 1 } -exit 0 diff --git a/playbook/shopfloor-setup/common/test/A-imaging/run.sh b/playbook/shopfloor-setup/common/test/A-imaging/run.sh deleted file mode 100755 index fa15f65..0000000 --- a/playbook/shopfloor-setup/common/test/A-imaging/run.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env bash -# A-imaging/run.sh - exercise the shopfloor-setup imaging chain on the win11 -# VM (Shopfloor baseline + per-PC-type stage scripts), stopping before -# PPKG / Intune handoff. Skips actual binary installs by default; orchestration- -# only test. Path B exercises the per-app installs. -# -# Usage: -# ./run.sh # Standard / Machine -# ./run.sh CMM # CMM (no subtype) -# ./run.sh Standard Timeclock # explicit -# -# Env: -# VM_DOMAIN override VM name (default win11) -# SKIP_REVERT=1 skip blank-slate snapshot revert (faster iteration) -# PREINSTALL_PATH UNC to a preinstall payload tree (default unset = skip 00-PreInstall installs) - -set -euo pipefail - -PCTYPE="${1:-Standard}" -PCSUBTYPE="${2:-Machine}" - -HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -TEST_ROOT="$(cd "$HERE/.." && pwd)" -REPO_ROOT="$(cd "$TEST_ROOT/../../../.." && pwd)" - -source "$TEST_ROOT/lib/qga.sh" - -if [[ -t 1 ]]; then - G='\033[32m'; R='\033[31m'; Y='\033[33m'; D='\033[0m' -else - G=''; R=''; Y=''; D='' -fi - -phase() { printf "\n${Y}=== %s ===${D}\n" "$*"; } -ok() { printf "${G}[ OK ]${D} %s\n" "$*"; } -fail() { printf "${R}[FAIL]${D} %s\n" "$*"; FAILED=1; } - -FAILED=0 - -phase "A-imaging.run for PCType=$PCTYPE PCSubType=$PCSUBTYPE" - -if [[ "${SKIP_REVERT:-}" != "1" ]]; then - vm_revert_to_blank_slate -else - log "skipping snapshot revert (SKIP_REVERT=1)" - vm_start_if_needed -fi - -phase "1. stage shopfloor-setup tree on samba share" -# Stage from the live repo into a host-samba-accessible location so the VM -# can robocopy across. -SETUP_STAGE="/home/camp/pxe-images/test-stage-A/shopfloor-setup" -rm -rf "/home/camp/pxe-images/test-stage-A" -mkdir -p "$SETUP_STAGE" -cp -r "$REPO_ROOT/playbook/shopfloor-setup/." "$SETUP_STAGE/" -log "staged $(du -sh "$SETUP_STAGE" | cut -f1) at $SETUP_STAGE" - -# Also stage the A-imaging chain runner (the PS1 we just wrote) so the VM -# can invoke it with parameters. -cp "$HERE/stage-image.ps1" "/home/camp/pxe-images/test-stage-A/stage-image.ps1" -# matrix.json + verify-state.ps1 for post-run state check -cp "$TEST_ROOT/matrix.json" "/home/camp/pxe-images/test-stage-A/matrix.json" -cp "$TEST_ROOT/lib/verify-state.ps1" "/home/camp/pxe-images/test-stage-A/verify-state.ps1" - -vm_mount_share - -phase "2. run imaging chain on VM" -qga_run_ps < C:\Enrollment\shopfloor-setup" -New-Item -ItemType Directory -Force -Path 'C:\Enrollment\shopfloor-setup' | Out-Null -robocopy $SetupSrcPath 'C:\Enrollment\shopfloor-setup' /E /R:2 /W:2 /NFL /NDL /NJH /NJS /NC /NS | Out-Null - -# --- Drop pc-type / pc-subtype / site-config --- -$PCType | Set-Content -Path 'C:\Enrollment\pc-type.txt' -Encoding ascii -$PCSubType | Set-Content -Path 'C:\Enrollment\pc-subtype.txt' -Encoding ascii -@{ - siteName = 'WJ (A-imaging test)' - shopfloorShareRoot = '\\192.168.122.1\pxe-images\tsgwp00525-v2\shared\dt\shopfloor' - common = @{ commonAppsSharePath = '\\192.168.122.1\pxe-images\tsgwp00525-v2\shared\dt\shopfloor\common\apps' } -} | ConvertTo-Json -Depth 5 | Set-Content -Path 'C:\Enrollment\site-config.json' -Encoding ascii - -# --- Stage PreInstall payload if provided --- -if ($PreInstallSrcPath -and (Test-Path $PreInstallSrcPath)) { - Log "copying $PreInstallSrcPath -> C:\PreInstall" - New-Item -ItemType Directory -Force -Path 'C:\PreInstall' | Out-Null - robocopy $PreInstallSrcPath 'C:\PreInstall' /E /R:2 /W:2 /NFL /NDL /NJH /NJS /NC /NS | Out-Null -} else { - Log "no PreInstall payload provided - 00-PreInstall step will skip" -} - -# --- Run stage scripts in order: Shopfloor baseline first, then per-PC-type --- -$setupDir = 'C:\Enrollment\shopfloor-setup' -$stageRan = @() - -function Run-StageScripts { - param([string]$Dir) - if (-not (Test-Path $Dir)) { return } - $scripts = Get-ChildItem $Dir -Filter '*.ps1' -File -ErrorAction SilentlyContinue | - Where-Object { $_.Name -match '^[0-9]{2}-' } | - Sort-Object Name - foreach ($s in $scripts) { - Log "==> $($s.FullName)" - $rc = 0 - & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $s.FullName 2>&1 | ForEach-Object { Write-Host " $_" } - if ($LASTEXITCODE) { $rc = $LASTEXITCODE } - Log " exit $rc" - $script:stageRan += [pscustomobject]@{ Path = $s.FullName; ExitCode = $rc } - } -} - -# 1. Shopfloor baseline scripts (run for every PC type, including Standard) -Run-StageScripts (Join-Path $setupDir 'Shopfloor') - -# 2. Per-PC-type stage scripts. Standard / CMM / Keyence / etc each have their -# own subdir with numbered scripts. Skip "Shopfloor" since that's PCType==Shopfloor. -if ($PCType -ne 'Shopfloor') { - $typeDir = Join-Path $setupDir $PCType - Run-StageScripts $typeDir -} - -# --- Summary --- -Log "=== chain summary ===" -foreach ($r in $stageRan) { - $tag = if ($r.ExitCode -eq 0) { '[ OK ]' } else { '[FAIL]' } - Log " $tag rc=$($r.ExitCode) $($r.Path)" -} - -$failedCount = ($stageRan | Where-Object { $_.ExitCode -ne 0 }).Count -$totalCount = $stageRan.Count -Log "=== A-imaging summary: $($totalCount - $failedCount)/$totalCount stage scripts exited 0 ===" -if ($failedCount -gt 0) { exit 1 } -exit 0 diff --git a/playbook/shopfloor-setup/common/test/B-enforce/run.sh b/playbook/shopfloor-setup/common/test/B-enforce/run.sh deleted file mode 100755 index 7196a1b..0000000 --- a/playbook/shopfloor-setup/common/test/B-enforce/run.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash -# B-enforce/run.sh - exercise the manifest engine (GE-Enforce + Install-FromManifest) -# end-to-end on the win11 VM as a synthetic shopfloor PC. -# -# Phases: -# 1. stage: copy enforcer + lib + matrix into the VM, mount the v2 share -# 2. baseline: run dispatcher once, verify expected state -# 3. tamper: apply driftScenarios from matrix.json -# 4. heal: re-run dispatcher, verify drift went away -# 5. idempotent:re-run dispatcher, verify still clean (every entry skipped) -# -# Usage: -# ./run.sh # defaults to Standard / Machine -# ./run.sh CMM "" # CMM (no subtype) -# ./run.sh Standard Timeclock # explicit -# -# Environment: -# VM_DOMAIN override VM name (default win11) -# SKIP_REVERT set to skip blank-slate snapshot revert (faster iteration) - -set -euo pipefail - -PCTYPE="${1:-gea-shopfloor-collections}" -# Empty string (no subtype) is the new default. The legacy two-arg form -# ("Standard Machine") still works thanks to alias maps. To explicitly -# pass an empty subtype use a single arg: ./run.sh gea-shopfloor-cmm -PCSUBTYPE="${2-}" - -HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -TEST_ROOT="$(cd "$HERE/.." && pwd)" -REPO_ROOT="$(cd "$TEST_ROOT/../../../.." && pwd)" - -source "$TEST_ROOT/lib/qga.sh" - -# ANSI color (auto-disable if not on a tty) -if [[ -t 1 ]]; then - G='\033[32m'; R='\033[31m'; Y='\033[33m'; D='\033[0m' -else - G=''; R=''; Y=''; D='' -fi - -phase() { printf "\n${Y}=== %s ===${D}\n" "$*"; } -ok() { printf "${G}[ OK ]${D} %s\n" "$*"; } -fail() { printf "${R}[FAIL]${D} %s\n" "$*"; FAILED=1; } - -FAILED=0 - -phase "B-enforce.run for PCType=$PCTYPE PCSubType=$PCSUBTYPE" - -if [[ "${SKIP_REVERT:-}" != "1" ]]; then - vm_revert_to_blank_slate -else - log "skipping snapshot revert (SKIP_REVERT=1)" - vm_start_if_needed -fi - -phase "1. stage enforcer + lib + matrix into VM" - -# Stage the enforcer + lib in a host samba-accessible dir so the VM can pull -# them across via Z:. /home/camp/pxe-images/ is mapped to the share. -ENFORCER_STAGE="/home/camp/pxe-images/test-stage" -mkdir -p "$ENFORCER_STAGE/lib" "$ENFORCER_STAGE/test/B-enforce" -cp "$REPO_ROOT/playbook/shopfloor-setup/common/GE-Enforce.ps1" "$ENFORCER_STAGE/" -cp "$REPO_ROOT/playbook/shopfloor-setup/common/lib/Install-FromManifest.ps1" "$ENFORCER_STAGE/lib/" -cp "$TEST_ROOT/matrix.json" "$ENFORCER_STAGE/test/" -cp "$TEST_ROOT/lib/verify-state.ps1" "$ENFORCER_STAGE/test/" -cp "$HERE/tamper.ps1" "$ENFORCER_STAGE/test/B-enforce/" - -vm_mount_share - -# Inside VM: copy from share to local C:\Tools\, prep enrollment stubs + -# fake SFLD creds in HKLM, point shopfloorShareRoot at the v2 mirror. -qga_run_ps <&1 | tail -30 -& 'C:\Program Files\GE\Shopfloor\GE-Enforce.ps1' 2>&1 | Out-Null -"--- last 25 enforce log lines ---" -$f = Get-ChildItem 'C:\Logs\Shopfloor\enforce-*.log' -ErrorAction SilentlyContinue | Sort-Object LastWriteTime -Descending | Select-Object -First 1 -if ($f) { Get-Content $f.FullName -Tail 25 } else { "no enforce log" } -EOF -} - -# Verify wrapper: capture output, parse summary line. PS verify returns -# rc=1 when any check fails - capture that without aborting the harness. -do_verify() { - local phase_label="$1" expect_pass="$2" - log "verify ($phase_label, expect_pass=$expect_pass)" - local out rc=0 - out=$(qga_run_ps < remove a registry value -# RegSet -> set a registry value to a wrong value -# FileDelete -> delete a file -# FileOverwrite -> rewrite a file with bogus content -# FileGrepDelete -> drop matching lines from a text file (e.g. hosts) - -[CmdletBinding()] -param( - [Parameter(Mandatory=$true)] [string]$MatrixPath, - [Parameter(Mandatory=$true)] [string]$PCType, - [string]$PCSubType -) - -$ErrorActionPreference = 'Continue' -$matrix = Get-Content -LiteralPath $MatrixPath -Raw | ConvertFrom-Json - -# Same alias map as verify-state.ps1 so harness invocations with the new -# gea-shopfloor-* names find the correct matrix row even when that row's -# PCType field is still the legacy "Standard"+"Machine" form. -$pcTypeAliasGroups = @( - @('Standard-Machine','gea-shopfloor-collections'), - @('Standard-Machine-NoCollections','gea-shopfloor-nocollections'), - @('Standard-Timeclock','Lab','gea-shopfloor-common'), - @('CMM','gea-shopfloor-cmm'), - @('Keyence','gea-shopfloor-keyence'), - @('WaxAndTrace','gea-shopfloor-waxtrace'), - @('Genspect','gea-shopfloor-genspect'), - @('Display','gea-shopfloor-display'), - @('Heattreat','gea-shopfloor-heattreat'), - @('Shopfloor') -) -function Test-MatrixEntryMatches { - param($Entry, [string]$Type, [string]$SubType) - $entryKey = if ($Entry.PCSubType) { "$($Entry.PCType)-$($Entry.PCSubType)" } else { $Entry.PCType } - $requestKey = if ($SubType) { "$Type-$SubType" } else { $Type } - if ($entryKey -ieq $requestKey) { return $true } - foreach ($g in $pcTypeAliasGroups) { - if ($g -icontains $entryKey -and $g -icontains $requestKey) { return $true } - } - return $false -} - -$entry = $matrix.pcTypes | Where-Object { Test-MatrixEntryMatches -Entry $_ -Type $PCType -SubType $PCSubType } | Select-Object -First 1 -if (-not $entry) { Write-Host "[FAIL] no matrix entry for $PCType/$PCSubType"; exit 1 } - -foreach ($d in $entry.driftScenarios) { - $t = $d.tamper - try { - switch ($t.method) { - 'RegRemove' { - if (Test-Path -LiteralPath $t.path) { - Remove-ItemProperty -LiteralPath $t.path -Name $t.regName -Force -ErrorAction Stop - } - Write-Host "[TAMPER] $($d.name) - removed reg $($t.path)\$($t.regName)" - } - 'RegSet' { - if (-not (Test-Path -LiteralPath $t.path)) { - New-Item -Path $t.path -Force | Out-Null - } - Set-ItemProperty -LiteralPath $t.path -Name $t.regName -Value $t.value -Force - Write-Host "[TAMPER] $($d.name) - set reg $($t.path)\$($t.regName) = $($t.value)" - } - 'FileDelete' { - if (Test-Path -LiteralPath $t.path) { Remove-Item -LiteralPath $t.path -Force -ErrorAction Stop } - Write-Host "[TAMPER] $($d.name) - deleted $($t.path)" - } - 'FileOverwrite' { - Set-Content -LiteralPath $t.path -Value $t.content -Encoding ascii -Force - Write-Host "[TAMPER] $($d.name) - overwrote $($t.path)" - } - 'FileGrepDelete' { - $kept = Get-Content -LiteralPath $t.path | Where-Object { $_ -notmatch $t.pattern } - Set-Content -LiteralPath $t.path -Value $kept -Encoding ascii -Force - Write-Host "[TAMPER] $($d.name) - dropped lines matching $($t.pattern) from $($t.path)" - } - default { Write-Host "[WARN] unknown tamper method: $($t.method)" } - } - } catch { - Write-Host "[WARN] tamper failed for $($d.name): $_" - } -} diff --git a/playbook/shopfloor-setup/common/test/README.md b/playbook/shopfloor-setup/common/test/README.md deleted file mode 100644 index 97e6c07..0000000 --- a/playbook/shopfloor-setup/common/test/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# Shopfloor enforcer regression tests - -Lightweight harness for end-to-end validation of `GE-Enforce.ps1` + -`Install-FromManifest.ps1` against the v2 staging tree, using the Win11 -analyzer VM as a synthetic shopfloor PC. - -## Files - -- `vm-test-harness.ps1` — setup + invocation of GE-Enforce inside the VM. - Accepts `-PCType` and `-PCSubType` parameters. Creates - `C:\Enrollment\` stubs (pc-type.txt, pc-subtype.txt, site-config.json), - stages the enforcer runtime from `\\192.168.122.1\pxe-images\enforcer-stage\`, - injects a fake SFLD credential in `HKLM:\SOFTWARE\GE\SFLD\Credentials\samba` - pointing at the host's samba share as if it were tsgwp00525, then runs - `GE-Enforce.ps1` with output captured. - -## Prereqs - -- `win11` libvirt VM running, IP reachable at 192.168.122.210 -- qemu-guest-agent exec path available (`/tmp/guest-exec.sh`) -- host samba shares `pxe-images` + `windows-projects` writable by `camp` user -- enforcer staged at `/home/camp/pxe-images/enforcer-stage/` (via - `cp /common/GE-Enforce.ps1 /common/lib/Install-FromManifest.ps1 - /home/camp/pxe-images/enforcer-stage/`) -- v2 share staging at `/home/camp/pxe-images/tsgwp00525-v2/...` - -## Usage - -From the repo root on the host: - -```bash -# Round 1: Shopfloor scope (exercises common manifest, PCTypes filter for Oracle) -B64=$(iconv -f UTF-8 -t UTF-16LE common/test/vm-test-harness.ps1 | base64 -w0) -/tmp/guest-exec.sh powershell.exe "[\"-NoProfile\",\"-EncodedCommand\",\"$B64\"]" -``` - -Or with non-default pcType (wrap in a tiny outer script that sets parameters): - -```bash -cat > /tmp/round.ps1 <<'EOF' -$PCType = 'Standard' -$PCSubType = 'Machine' -EOF -sed -n '/^param(/,/^)/!p' common/test/vm-test-harness.ps1 >> /tmp/round.ps1 -B64=$(iconv -f UTF-8 -t UTF-16LE /tmp/round.ps1 | base64 -w0) -/tmp/guest-exec.sh powershell.exe "[\"-NoProfile\",\"-EncodedCommand\",\"$B64\"]" -``` - -## What each round validates - -| Round | pcType / pcSubType | Exercises | -|---|---|---| -| 1 | Shopfloor / — | common manifest only, PCTypes filter (Oracle skips) | -| 2 | Standard / Machine | common + standard-machine manifests, eDNC upgrade detection, UDC skip, eMxInfo cmd | -| 3 | Keyence / — | common + keyence manifest, VR-6000 MSI detection, pnputil INF detection | -| 4 | Display / — | common + display manifest, kiosk-setup CMD wrapper | -| 5 (composite) | Shopfloor with a corrupted manifest / bad SFLD creds / tampered local XML | graceful-degradation paths + upgrade/rollback via hash mismatch | - -See the main repo enforcer design doc (TBD) for scenario details. - -## Known cleanup after test runs - -- The harness intentionally leaves installed apps in place (Acrobat Reader DC, - WJF Defect Tracker, 3OF9 font, Edge site-list XML, Firefox if tested). - To reset to a clean baseline, revert the VM to the `clean-base` libvirt - snapshot: `virsh snapshot-revert win11 clean-base`. - -- Orphan `msiexec.exe` workers from long-running installs (UDC_Setup, - PC-DMIS) can leave the MSI mutex held, blocking the next install with - 1619/1618. Between rounds if you hit this: - - ```powershell - Get-Process -Name msiexec -ErrorAction SilentlyContinue | Stop-Process -Force - ``` - - Note: a Stage 2b lib improvement is planned to retry once on 1618 after - killing stale msiexec processes. diff --git a/playbook/shopfloor-setup/common/test/SCOPE.md b/playbook/shopfloor-setup/common/test/SCOPE.md deleted file mode 100644 index 3386d2c..0000000 --- a/playbook/shopfloor-setup/common/test/SCOPE.md +++ /dev/null @@ -1,135 +0,0 @@ -# Shopfloor test scope - -Two test paths against the win11 analyzer VM as a synthetic shopfloor PC. - -> **Note (2026-05-04):** PC-type rename reorg in progress. This doc still uses -> the legacy names ("Standard-Machine", "CMM", "Lab", etc.) as primary keys -> for now. New names ("gea-shopfloor-collections", "gea-shopfloor-nocollections", -> "gea-shopfloor-common", "gea-shopfloor-cmm", etc.) are accepted via alias maps -> in Install-FromManifest.ps1, GE-Enforce.ps1, Get-PCProfile.ps1, and the -> harness verify-state.ps1. See `project-shopfloor-rename-reorg` memory for -> the full plan + which phases are deferred. - -## Path A: Imaging-time install (one-shot) - -Simulates full PXE-deployed-and-first-booted PC. Verifies the imaging chain -(preinstall.json + Run-ShopfloorSetup.ps1 + per-PC-type stage scripts) lands -the expected end state for each PC type. - -**Per-round flow:** -1. Revert VM to `blank-slate` snapshot (clean Win11 baseline + qemu-ga + WinRM). -2. Stage `C:\PreInstall\` from `playbook/preinstall/` (preinstall.json + payloads). -3. Run preinstall runner with `PCType`/`PCSubType` arguments. -4. Stage `C:\Enrollment\shopfloor-setup\` from `playbook/shopfloor-setup/`. -5. Drop `C:\Enrollment\pc-type.txt` + `pc-subtype.txt` + `site-config.json`. -6. Run `Run-ShopfloorSetup.ps1`. -7. Verify expected install state per PC type (table below). -8. Capture verification report. - -## Path B: Manifest-engine ongoing enforcement - -Simulates a steady-state PC discovering drift. Verifies GE-Enforce idempotence, -drift heal, InUseCheck behavior. - -**Per-round flow:** -1. Start from a post-imaging state (either via Path A first, or revert to a - pre-installed snapshot we'll capture once). -2. Stage GE-Enforce.ps1 + Install-FromManifest.ps1 to `C:\Program Files\GE\Shopfloor\`. -3. Inject SFLD creds in HKLM pointing at the v2 share via samba. -4. Phase 1 (clean cycle): run GE-Enforce. Verify "all skipped" (no-op). -5. Phase 2 (drift): tamper specific entries (delete file, reset reg value, kill marker). -6. Phase 3 (heal): re-run GE-Enforce. Verify each tampered entry re-fires and end state matches. -7. Phase 4 (idempotent): re-run GE-Enforce. Verify back to "all skipped". - -## PC-type matrix - -| PCType | PCSubType | A applies | B applies | Manifest scopes (B) | -|--------|-----------|-----------|-----------|---------------------| -| Standard | Machine | yes | yes | common, standard, standard-machine | -| Standard | Timeclock | yes | yes | common, standard, standard-timeclock | -| CMM | - | yes | yes | common, cmm | -| Keyence | - | yes | yes | common, keyence | -| Lab | - | yes | yes | common, lab | -| WaxAndTrace | - | yes | yes | common, waxandtrace | -| Genspect | - | yes | yes | common, genspect | -| Display | - | yes | yes | common, display | -| Shopfloor | - | yes (baseline only) | yes | common only (PCTypes filter excludes most apps) | - -## Expected install state per PC type (post-A) - -Sourced from preinstall.json's PCTypes filter + per-PC-type Stage-Dispatcher -flow. Detection methods match what GE-Enforce uses for re-enforcement, so -verification logic is shared between A and B. - -### Common (all PC types) - -| App | Detection | Detection value | -|-----|-----------|-----------------| -| VC++ 2008 x86 | Reg | `HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{...}` | -| VC++ 2010 x86 / x64 | Reg | (vendor-version) | -| VC++ 2012 x86 (Min+Add) / x64 | Reg | | -| VC++ 2013 x86 (Min+Add) / x64 (Min+Add) | Reg | | -| VC++ 2022 x86 (Min+Add) | Reg | | -| Adobe Acrobat Reader DC | Reg | DisplayVersion = 25.001.20531 | -| WJF Defect Tracker | File | C:\Program Files (x86)\WJF_Defect_Tracker\Defect_Tracker.exe | - -### + Standard / Standard-Machine - -| App | Detection | -|-----|-----------| -| Oracle Client 11.2 | Reg ORACLE_HOME_NAME | -| OpenText HostExplorer | Reg HKLM\SOFTWARE\GE\OpenText\Installed = 15.0.SP1.2 | -| Shopfloor Serial Drivers | Driver pnputil enum | -| eDNC + NTLARS (bundled) | FileVersion DncMain.exe = 6.4.5.0 | -| eMxInfo.txt | Hash content match | -| UDC (Standard-Machine only) | Reg DisplayVersion = 1.0.34 | -| FMSHostPrimary reg | ValueMatches = wjfms3.ae.ge.com | -| FMSHostSecondary reg | ValueMatches = 10.233.112.158 | -| Hosts pin | grep file for `10.233.112.158\twjfms3.ae.ge.com` | - -### CMM/Keyence/Genspect/WaxAndTrace/Lab/Display - -(Each adds its own per-type apps - see playbook/shopfloor-setup// -stage scripts and v2 share `/manifest.json`.) - -## Drift scenarios for Path B (per app) - -| App | Drift action | Heal expected | -|-----|--------------|---------------| -| OpenText | `Remove-ItemProperty HKLM:\SOFTWARE\GE\OpenText -Name Installed` | Re-fires Setup-OpenText.cmd, marker re-written | -| eMxInfo.txt | Truncate/overwrite the txt file | Hash mismatch -> Install-eMxInfo.cmd re-runs | -| FMSHostPrimary | `reg add ... /d "WJFMS3" /f` | ValueMatches -> Type=Registry re-asserts wjfms3.ae.ge.com | -| FMSHostSecondary | `reg add ... /d "WJFMS4" /f` | ValueMatches -> re-asserts 10.233.112.158 | -| Hosts pin | Remove the FMS line from hosts | Always -> Set-FmsHostsEntry.ps1 re-adds | -| Edge IE-Mode site list | Overwrite XML with junk | Hash -> file re-copied from share | -| 3OF9 font reg | Delete reg value | ValueMatches -> Type=Registry re-asserts | -| eDNC | `msiexec /x` to uninstall | FileVersion miss -> MSI re-installs | -| InUseCheck (eDNC) | Spawn placeholder DncMain process before run | CloseAndReopen -> graceful close / kill / install / restart | - -## Out of scope (initial) - -- Display Kiosk App content matrix (per-site config). -- Display lobby vs dashboard variants. -- Per-bay machine-number-driven ACL setup (requires real bay number + AD context). -- Intune device QR / DSC handoff (Azure-side, can't simulate locally). - -## Deliverables - -``` -playbook/shopfloor-setup/common/test/ - SCOPE.md (this file) - README.md (operator how-to) - lib/ - vm-base.sh (host: revert, qga, share mount) - verify-state.ps1 (VM: detection per app, returns JSON report) - A-imaging/ - run.sh (host orchestrator, takes -PCType/-PCSubType) - stage-image.ps1 (VM: copy preinstall + shopfloor-setup, run them) - B-enforce/ - run.sh (host orchestrator, drives 4-phase cycle) - tamper.ps1 (VM: drift injection per app, JSON-driven) - matrix.json (PC-type list + expected apps + drift scenarios) -``` - -Each `run.sh` returns 0 on full pass, non-zero on any failure; emits per-app -pass/fail to stdout + a JSON report to stderr for CI. diff --git a/playbook/shopfloor-setup/common/test/lib/qga-run.py b/playbook/shopfloor-setup/common/test/lib/qga-run.py deleted file mode 100644 index e229a22..0000000 --- a/playbook/shopfloor-setup/common/test/lib/qga-run.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 -# qga-run.py - run a PowerShell snippet inside the win11 VM via qemu-guest-agent. -# Stdin = PS snippet. Stdout = combined stdout, then optional STDERR block, -# then "--- exit N ---". Exit code 0 on PS rc 0, 1 otherwise. -import base64, json, os, subprocess, sys, time - -DOMAIN = os.environ.get('VM_DOMAIN', 'win11') -TIMEOUT = int(os.environ.get('QGA_TIMEOUT', '300')) - -def virsh(cmd): - p = subprocess.run( - ['virsh', '-c', 'qemu:///system', 'qemu-agent-command', DOMAIN, json.dumps(cmd)], - capture_output=True, text=True, timeout=120, - ) - if p.returncode != 0: - sys.exit(f"virsh err: {p.stderr.strip()}") - return json.loads(p.stdout)['return'] - -snippet = sys.stdin.read() -if not snippet.strip(): - sys.exit("qga-run.py: empty PowerShell snippet on stdin") - -args = ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-Command', snippet] -pid = virsh({'execute': 'guest-exec', - 'arguments': {'path': 'powershell.exe', 'arg': args, 'capture-output': True}})['pid'] - -deadline = time.time() + TIMEOUT -while time.time() < deadline: - st = virsh({'execute': 'guest-exec-status', 'arguments': {'pid': pid}}) - if st.get('exited'): - out = base64.b64decode(st.get('out-data', '')).decode('utf-8', 'replace') - err = base64.b64decode(st.get('err-data', '')).decode('utf-8', 'replace') - rc = st.get('exitcode') - sys.stdout.write(out) - if err: - sys.stdout.write('\n--- STDERR ---\n') - sys.stdout.write(err) - sys.stdout.write(f'\n--- exit {rc} ---\n') - sys.exit(0 if rc == 0 else 1) - time.sleep(0.5) - -sys.exit(f"timeout waiting for pid {pid}") diff --git a/playbook/shopfloor-setup/common/test/lib/qga.sh b/playbook/shopfloor-setup/common/test/lib/qga.sh deleted file mode 100755 index b77d087..0000000 --- a/playbook/shopfloor-setup/common/test/lib/qga.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env bash -# qga.sh - host-side helpers for driving the win11 VM via qemu-guest-agent. -# -# Source this from harness scripts: `source "$(dirname "$0")/../lib/qga.sh"` -# -# All commands run as NT AUTHORITY\SYSTEM inside the VM (qemu-ga's service -# context). See reference-vm-qga-as-system memory note for why this is -# preferred over WinRM for dispatcher / manifest-engine tests. -# -# Sourced by harness scripts. Deliberately does NOT enable set -e because -# qga_run_ps returns non-zero whenever the inner PowerShell exits non-zero -# (expected during drift/verify phases), and a sourced set -e would silently -# abort the calling shell on every $(qga_run_ps ...) capture of a failing run. -# Callers that want strict mode should set it themselves AND wrap qga_run_ps -# captures with `|| rc=$?` so the non-zero exit does not propagate. - -VM_DOMAIN="${VM_DOMAIN:-win11}" -VM_IP="${VM_IP:-192.168.122.225}" -HOST_SAMBA_USER="${HOST_SAMBA_USER:-camp}" -HOST_SAMBA_PASS="${HOST_SAMBA_PASS:-vos313}" -HOST_SAMBA_HOST="${HOST_SAMBA_HOST:-192.168.122.1}" - -# Helper: fail loud -die() { echo "[ERROR] $*" >&2; exit 1; } -log() { printf '[%s] %s\n' "$(date +%H:%M:%S)" "$*"; } - -# Send a JSON command to qemu-ga, return parsed return field -qga() { - local payload="$1" - virsh -c qemu:///system qemu-agent-command "$VM_DOMAIN" "$payload" 2>/dev/null \ - || die "qga call failed: $payload" -} - -# Run a PowerShell snippet inside the VM as SYSTEM. Stdin = snippet. -# Stdout = combined PS stdout, then optional "--- STDERR ---" block, -# then "--- exit N ---". Returns 0 iff the PS process returned 0. -# -# Implementation note: keep the python script in a sibling file rather -# than inlined via heredoc. An inline `python3 - </dev/null 2>&1; do - ((i++)) - if (( i > max )); then die "VM never became ready ($max attempts)"; fi - sleep 1 - done -} - -# Make sure VM is up and qga is alive. Start if not. -vm_start_if_needed() { - local state - state=$(virsh -c qemu:///system domstate "$VM_DOMAIN" 2>/dev/null || echo unknown) - if [[ "$state" != "running" ]]; then - log "VM is $state - starting" - virsh -c qemu:///system start "$VM_DOMAIN" >/dev/null - fi - vm_wait_for_ready 90 -} - -# Mount the host samba share inside the VM as SYSTEM. Idempotent. -# After this call Z:\ inside the VM points at /home/camp/pxe-images/. -vm_mount_share() { - qga_run_ps <&1 | Out-Null -"Z reachable: \$(Test-Path 'Z:\\')" -PS -} - -# Upload a single file from host to VM by reading it into VM via WriteAllBytes. -# Best for tiny files (config, single ps1). For bigger files use vm_mount_share + Copy-Item. -vm_put_file() { - local local_path="$1" remote_path="$2" - [[ -f "$local_path" ]] || die "no such file: $local_path" - local b64 - b64=$(base64 -w0 < "$local_path") - qga_run_ps < Get-ItemProperty $path[$name] -eq $value -# File -> Test-Path $path -# FileVersion -> (Get-Item $path).VersionInfo.FileVersion -eq $value -# Hash -> Get-FileHash SHA256 -eq $value -# FileGrep -> Get-Content $path -match $pattern (regex) - -[CmdletBinding()] -param( - [Parameter(Mandatory=$true)] [string]$MatrixPath, - [Parameter(Mandatory=$true)] [string]$PCType, - [string]$PCSubType -) - -$ErrorActionPreference = 'Continue' - -if (-not (Test-Path -LiteralPath $MatrixPath)) { - Write-Host "[FAIL] matrix not found at $MatrixPath" - exit 1 -} -$matrix = Get-Content -LiteralPath $MatrixPath -Raw | ConvertFrom-Json - -# Alias resolution mirrors the GE-Enforce + Get-PCProfile alias maps so -# the harness can be invoked with either legacy ("Standard","CMM",...) -# or new ("gea-shopfloor-collections","gea-shopfloor-cmm",...) names -# and find the right matrix row. -$pcTypeAliasGroups = @( - @{ keys = @('Standard-Machine','gea-shopfloor-collections') }, - @{ keys = @('Standard-Machine-NoCollections','gea-shopfloor-nocollections') }, - @{ keys = @('Standard-Timeclock','Lab','gea-shopfloor-common') }, - @{ keys = @('CMM','gea-shopfloor-cmm') }, - @{ keys = @('Keyence','gea-shopfloor-keyence') }, - @{ keys = @('WaxAndTrace','gea-shopfloor-waxtrace') }, - @{ keys = @('Genspect','gea-shopfloor-genspect') }, - @{ keys = @('Display','gea-shopfloor-display') }, - @{ keys = @('Heattreat','gea-shopfloor-heattreat') }, - @{ keys = @('Shopfloor') } -) -function Test-MatrixEntryMatches { - param($Entry, [string]$Type, [string]$SubType) - $entryKey = if ($Entry.PCSubType) { "$($Entry.PCType)-$($Entry.PCSubType)" } else { $Entry.PCType } - $requestKey = if ($SubType) { "$Type-$SubType" } else { $Type } - if ($entryKey -ieq $requestKey) { return $true } - foreach ($g in $pcTypeAliasGroups) { - if ($g.keys -icontains $entryKey -and $g.keys -icontains $requestKey) { return $true } - } - return $false -} - -$entry = $matrix.pcTypes | Where-Object { Test-MatrixEntryMatches -Entry $_ -Type $PCType -SubType $PCSubType } | Select-Object -First 1 -if (-not $entry) { - Write-Host "[FAIL] no matrix entry for PCType=$PCType PCSubType=$PCSubType" - exit 1 -} - -# Resolve `{ "$ref": "common." }` entries: matrix.json uses $ref to dedup -# common app lists (e.g. "common.all", "common.fmsResolver") so per-PC-type -# rows can compose without copy/paste. Walk the apps list, expand each ref -# inline, drop the ref placeholder. -$resolvedApps = @() -foreach ($a in $entry.apps) { - $refVal = $a.PSObject.Properties['$ref'] - if ($refVal) { - $parts = $refVal.Value -split '\.' - if ($parts.Count -eq 2 -and $parts[0] -eq 'common') { - $key = $parts[1] - $list = $matrix.common.$key - if ($list) { - foreach ($x in $list) { $resolvedApps += $x } - continue - } - Write-Host "[WARN] unresolved `$ref: $($refVal.Value)" - continue - } - Write-Host "[WARN] unsupported `$ref form: $($refVal.Value)" - continue - } - $resolvedApps += $a -} - -function Test-AppState { - param($app) - $v = $app.verify - switch ($v.method) { - 'Registry' { - if (-not (Test-Path -LiteralPath $v.path)) { return @{ pass=$false; detail="reg path missing: $($v.path)" } } - # No DetectionName/value -> key existence is enough (e.g. Protect Viewer entry) - if (-not $v.name) { - return @{ pass=$true; detail="reg key exists: $($v.path)" } - } - $val = (Get-ItemProperty -LiteralPath $v.path -Name $v.name -ErrorAction SilentlyContinue).$($v.name) - if ($null -eq $val) { return @{ pass=$false; detail="reg name $($v.name) not present" } } - if ($v.value -and $val -ne $v.value) { - return @{ pass=$false; detail="reg $($v.name) = '$val' (expected '$($v.value)')" } - } - return @{ pass=$true; detail="reg $($v.name) = '$val'" } - } - 'File' { - if (Test-Path -LiteralPath $v.path) { return @{ pass=$true; detail="exists: $($v.path)" } } - return @{ pass=$false; detail="missing: $($v.path)" } - } - 'FileVersion' { - if (-not (Test-Path -LiteralPath $v.path)) { return @{ pass=$false; detail="missing: $($v.path)" } } - $ver = (Get-Item -LiteralPath $v.path).VersionInfo.FileVersion - if ($v.value -and $ver -ne $v.value) { - return @{ pass=$false; detail="version $ver (expected $($v.value))" } - } - return @{ pass=$true; detail="version $ver" } - } - 'Hash' { - if (-not (Test-Path -LiteralPath $v.path)) { return @{ pass=$false; detail="missing: $($v.path)" } } - $h = (Get-FileHash -LiteralPath $v.path -Algorithm SHA256).Hash - if ($v.value -and $h -ne $v.value) { - return @{ pass=$false; detail="hash $h (expected $($v.value))" } - } - return @{ pass=$true; detail="hash matches" } - } - 'FileGrep' { - if (-not (Test-Path -LiteralPath $v.path)) { return @{ pass=$false; detail="missing: $($v.path)" } } - $hit = Get-Content -LiteralPath $v.path | Select-String -Pattern $v.pattern -Quiet - if ($hit) { return @{ pass=$true; detail="pattern matched: $($v.pattern)" } } - return @{ pass=$false; detail="pattern not found: $($v.pattern)" } - } - 'PnpUtilGrep' { - $drivers = & pnputil /enum-drivers 2>&1 | Out-String - if ($drivers -match $v.pattern) { - return @{ pass=$true; detail="pnputil match: $($v.pattern)" } - } - return @{ pass=$false; detail="pnputil no match for: $($v.pattern)" } - } - default { return @{ pass=$false; detail="unknown method: $($v.method)" } } - } -} - -$total = 0; $passed = 0; $failed = @() -foreach ($app in $resolvedApps) { - $total++ - $r = Test-AppState -app $app - if ($r.pass) { - Write-Host " [PASS] $($app.name) - $($r.detail)" - $passed++ - } else { - Write-Host " [FAIL] $($app.name) - $($r.detail)" - $failed += $app.name - } -} - -Write-Host "" -Write-Host "=== verify summary: $passed/$total passed ===" -if ($failed.Count -gt 0) { - Write-Host "failed: $($failed -join ', ')" - exit 1 -} -exit 0 diff --git a/playbook/shopfloor-setup/common/test/matrix.json b/playbook/shopfloor-setup/common/test/matrix.json deleted file mode 100644 index 5d6f3eb..0000000 --- a/playbook/shopfloor-setup/common/test/matrix.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "_comment": "Test matrix for shopfloor harness. Each PC-type entry lists apps to verify + drift scenarios for Path B's tamper+heal phase. Verify methods mirror the v2 manifest's DetectionMethod so harness == GE-Enforce detection. Apps requiring binary installers staged on share but not in repo: see paths in apps/ entries. Without staged payload, verify will FAIL for those - that surfaces 'payload missing' as actionable signal.", - - "common": { - "_comment": "Shared app list referenced by per-PC-type entries via 'includeCommon: '. Filter mimics the manifest's PCTypes gating so each PC-type test only verifies apps that SHOULD be installed for that type.", - "all": [ - { "name": "Adobe Acrobat Reader DC", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{AC76BA86-7AD7-1033-7B44-AC0F074E4100}", "name": "DisplayVersion", "value": "25.001.20531" } }, - { "name": "WJF Defect Tracker", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{CC1B4D32-1606-4A3F-8F24-31312F723D5C}", "name": "DisplayVersion", "value": "01.00.0102" } }, - { "name": "3OF9 barcode font", "verify": { "method": "File", "path": "C:\\Windows\\Fonts\\3OF9.ttf" } }, - { "name": "Edge IE-Mode site list", "verify": { "method": "Hash", "path": "C:\\ProgramData\\Edge\\enterprise-mode-site-list.xml", "value": "E13073B2D89E120560AF638F08519E94CC1DC880FFEF5D6A4C7011430E21E4EA" } } - ], - "fmsResolver": [ - { "name": "FMS hosts pin", "verify": { "method": "FileGrep", "path": "C:\\Windows\\System32\\drivers\\etc\\hosts", "pattern": "10\\.233\\.112\\.158\\s+wjfms3\\.ae\\.ge\\.com" } } - ], - "oracle": [ - { "name": "Oracle Client 11.2", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\Oracle\\KEY_OraClient11g_home1", "name": "ORACLE_HOME_NAME", "value": "OraClient11g_home1" } } - ], - "openText": [ - { "name": "OpenText HostExplorer", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\GE\\OpenText", "name": "Installed", "value": "15.0.SP1.2" } } - ] - }, - - "pcTypes": [ - { - "PCType": "Standard", "PCSubType": "Machine", - "scopes": ["common", "standard-machine"], - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" }, - { "name": "UDC", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\UDC", "name": "DisplayVersion", "value": "1.0.34" } }, - { "name": "FMS Primary host", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\GE Aircraft Engines\\Dnc\\FMS", "name": "FMSHostPrimary", "value": "wjfms3.ae.ge.com" } }, - { "name": "FMS Secondary host", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\GE Aircraft Engines\\Dnc\\FMS", "name": "FMSHostSecondary", "value": "10.233.112.158" } }, - { "name": "eDNC bundles NTLARS", "verify": { "method": "FileVersion", "path": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe", "value": "6.4.5.0" } } - ], - "driftScenarios": [ - { "name": "OpenText marker reset", "tamper": { "method": "RegRemove", "path": "HKLM:\\SOFTWARE\\GE\\OpenText", "regName": "Installed" }, "expectedHeal": "OpenText HostExplorer" }, - { "name": "Hosts pin removed", "tamper": { "method": "FileGrepDelete", "path": "C:\\Windows\\System32\\drivers\\etc\\hosts", "pattern": "wjfms3\\.ae\\.ge\\.com" }, "expectedHeal": "FMS hosts pin" }, - { "name": "FMS Primary clobbered", "tamper": { "method": "RegSet", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\GE Aircraft Engines\\Dnc\\FMS", "regName": "FMSHostPrimary", "value": "WJFMS3" }, "expectedHeal": "FMS Primary host" }, - { "name": "FMS Secondary clobbered", "tamper": { "method": "RegSet", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\GE Aircraft Engines\\Dnc\\FMS", "regName": "FMSHostSecondary", "value": "WJFMS4" }, "expectedHeal": "FMS Secondary host" }, - { "name": "Edge IE site list overwrite", "tamper": { "method": "FileOverwrite", "path": "C:\\ProgramData\\Edge\\enterprise-mode-site-list.xml", "content": "" }, "expectedHeal": "Edge IE-Mode site list" }, - { "name": "3OF9 font deleted", "tamper": { "method": "FileDelete", "path": "C:\\Windows\\Fonts\\3OF9.ttf" }, "expectedHeal": "3OF9 barcode font" } - ] - }, - - { - "PCType": "Standard", "PCSubType": "Timeclock", - "scopes": ["common"], - "_comment": "Standard-Timeclock has NO standard-timeclock/manifest.json on the v2 share. Common-scope FMS hosts pin still applies (PCTypes filter includes Standard for either subtype). Standard-machine scope (FMS reg, eDNC, UDC, eMxInfo) is gated to subtype=Machine and is NOT enforced on Timeclock - those apps are correctly absent here.", - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" } - ], - "driftScenarios": [] - }, - - { - "PCType": "gea-shopfloor-nocollections", "PCSubType": "", - "scopes": ["common", "gea-shopfloor-nocollections"], - "_comment": "Variant of Machine-with-collections that omits UDC. Manifest is identical to gea-shopfloor-collections minus the UDC application + UDC Webserver Settings + UDC Data Restore entries (3 dropped). Verifies eDNC + eMxInfo + FMS reg drift-catchers same as collections.", - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" }, - { "name": "FMS Primary host", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\GE Aircraft Engines\\Dnc\\FMS", "name": "FMSHostPrimary", "value": "wjfms3.ae.ge.com" } }, - { "name": "FMS Secondary host", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\WOW6432Node\\GE Aircraft Engines\\Dnc\\FMS", "name": "FMSHostSecondary", "value": "10.233.112.158" } }, - { "name": "eDNC bundles NTLARS", "verify": { "method": "FileVersion", "path": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe", "value": "6.4.5.0" } } - ], - "driftScenarios": [] - }, - - { - "PCType": "gea-shopfloor-common", "PCSubType": "", - "scopes": ["common", "gea-shopfloor-common"], - "_comment": "Merged Timeclock+Lab type. Common-scope FMS hosts pin applies (PCTypes filter includes Standard, which aliases to common via the rename map). No machine-specific stack (no eDNC, UDC, FMS reg). Differences between Timeclock and Lab originally - now handled per-PC via Configure-PC.ps1's pcProfiles.gea-shopfloor-common.startupItems lookup.", - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" } - ], - "driftScenarios": [] - }, - - { - "PCType": "gea-shopfloor-heattreat", "PCSubType": "", - "scopes": ["common", "gea-shopfloor-heattreat"], - "_comment": "Placeholder - empty Applications array on the share manifest. Common-scope apps still apply per their PCTypes filters (most are *). When heattreat-specific apps are identified, drop them in apps/ and add Applications + matrix rows.", - "apps": [ - { "$ref": "common.all" } - ], - "driftScenarios": [] - }, - - { - "PCType": "CMM", "PCSubType": "", - "scopes": ["common", "cmm"], - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" }, - { "name": "PC-DMIS 2016", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5389B196-81F0-44A9-A073-4C1D72041F09}", "name": "DisplayVersion", "value": "11.0.1179.0" } }, - { "name": "PC-DMIS 2019 R2", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{49DBE7F9-228A-4E66-8BB5-DB5A446DCAE7}", "name": "DisplayVersion", "value": "14.2.728.0" } }, - { "name": "Protect Viewer", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{7DE6B8AF-F580-4CDE-845F-FBE46C1FCF69}" } }, - { "name": "CLM 1.8.73", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{a55fecde-0776-474e-a5b3-d57ea93d6a9f}", "name": "DisplayVersion", "value": "1.8.73.0" } }, - { "name": "goCMM", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{94f02b85-bbca-422e-9b8b-0c16a769eced}", "name": "DisplayVersion", "value": "1.1.6710.18601" } } - ], - "driftScenarios": [] - }, - - { - "PCType": "Keyence", "PCSubType": "", - "scopes": ["common", "keyence"], - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" }, - { "name": "VR-6000 Series Software", "verify": { "method": "Registry", "path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{058E7194-BDF8-4FA2-9D69-978BB0F25214}", "name": "DisplayVersion", "value": "4.3.7" } }, - { "name": "KEYENCE VR Series USB Driver", "verify": { "method": "PnpUtilGrep", "pattern": "keyence_vr_series\\.inf" } } - ], - "driftScenarios": [] - }, - - { - "PCType": "Lab", "PCSubType": "", - "scopes": ["common"], - "_comment": "lab/manifest.json on v2 share has empty Applications array - Lab gets only common apps. OpenText applies (PCTypes=*). FMS hosts pin and Oracle do NOT (Lab is excluded from those PCTypes filters).", - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.openText" } - ], - "driftScenarios": [] - }, - - { - "PCType": "WaxAndTrace", "PCSubType": "", - "scopes": ["common", "waxandtrace"], - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" } - ], - "driftScenarios": [] - }, - - { - "PCType": "Genspect", "PCSubType": "", - "scopes": ["common", "genspect"], - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.fmsResolver" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" } - ], - "driftScenarios": [] - }, - - { - "PCType": "Display", "PCSubType": "", - "scopes": ["common", "display"], - "_comment": "Display gets Oracle (PCTypes filter includes it) but NOT FMS hosts pin. Display kiosk shortcut at the well-known Start Menu path is the marker for the kiosk setup CMD.", - "apps": [ - { "$ref": "common.all" }, - { "$ref": "common.oracle" }, - { "$ref": "common.openText" }, - { "name": "GE Aerospace Display kiosk setup", "verify": { "method": "File", "path": "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\GE Aerospace\\GE Aerospace Dashboard.lnk" } } - ], - "driftScenarios": [] - }, - - { - "PCType": "Shopfloor", "PCSubType": "", - "scopes": ["common"], - "_comment": "Shopfloor is the bare baseline image (no per-type apps). Most common apps with PCTypes=* still install. FMS hosts pin and Oracle are gated by PCTypes filters that exclude Shopfloor. OpenText also gated (PCTypes excludes Shopfloor).", - "apps": [ - { "$ref": "common.all" } - ], - "driftScenarios": [] - } - ] -} diff --git a/playbook/shopfloor-setup/common/test/vm-test-harness.ps1 b/playbook/shopfloor-setup/common/test/vm-test-harness.ps1 deleted file mode 100644 index 2a55a4d..0000000 --- a/playbook/shopfloor-setup/common/test/vm-test-harness.ps1 +++ /dev/null @@ -1,62 +0,0 @@ -param( - [string]$PCType = 'Shopfloor', - [string]$PCSubType = '' -) - -$ErrorActionPreference = 'Continue' - -Write-Host '================================================================' -Write-Host "=== VM test harness: pcType=$PCType subType=$PCSubType ===" -Write-Host '================================================================' - -& net use '\\192.168.122.1\pxe-images' /user:camp vos313 2>&1 | Out-Null -Write-Host "SMB mount status: $LASTEXITCODE" - -Write-Host '' -Write-Host '[setup] cleaning prior test state' -Remove-Item -Recurse -Force 'C:\Enrollment' -ErrorAction SilentlyContinue -Remove-Item -Recurse -Force 'C:\Program Files\GE\Shopfloor' -ErrorAction SilentlyContinue -Remove-Item -Recurse -Force 'C:\Logs\Shopfloor' -ErrorAction SilentlyContinue -Remove-Item -Path 'HKLM:\SOFTWARE\GE\SFLD\Credentials\samba' -Recurse -Force -ErrorAction SilentlyContinue - -Write-Host '[setup] staging enforcer runtime' -New-Item -Path 'C:\Program Files\GE\Shopfloor\lib' -ItemType Directory -Force | Out-Null -Copy-Item '\\192.168.122.1\pxe-images\enforcer-stage\GE-Enforce.ps1' 'C:\Program Files\GE\Shopfloor\GE-Enforce.ps1' -Force -Copy-Item '\\192.168.122.1\pxe-images\enforcer-stage\lib\Install-FromManifest.ps1' 'C:\Program Files\GE\Shopfloor\lib\Install-FromManifest.ps1' -Force - -Write-Host "[setup] creating enrollment stubs (pcType=$PCType subType=$PCSubType)" -New-Item -Path 'C:\Enrollment' -ItemType Directory -Force | Out-Null -$PCType | Set-Content -Path 'C:\Enrollment\pc-type.txt' -Encoding ascii -$PCSubType | Set-Content -Path 'C:\Enrollment\pc-subtype.txt' -Encoding ascii -$siteConfig = @{ - shopfloorShareRoot = '\\192.168.122.1\pxe-images\tsgwp00525-v2\shared\dt\shopfloor' - siteName = 'West Jefferson (VM test)' -} | ConvertTo-Json -Depth 5 -$siteConfig | Set-Content -Path 'C:\Enrollment\site-config.json' -Encoding ascii - -Write-Host '[setup] injecting fake SFLD creds' -$credKey = 'HKLM:\SOFTWARE\GE\SFLD\Credentials\samba' -New-Item -Path $credKey -Force | Out-Null -New-ItemProperty -Path $credKey -Name TargetHost -Value '192.168.122.1' -PropertyType String -Force | Out-Null -New-ItemProperty -Path $credKey -Name Username -Value 'camp' -PropertyType String -Force | Out-Null -New-ItemProperty -Path $credKey -Name Password -Value 'vos313' -PropertyType String -Force | Out-Null - -Write-Host '' -Write-Host '================================================================' -Write-Host '=== Running GE-Enforce.ps1 ===' -Write-Host '================================================================' - -$stdoutFile = [System.IO.Path]::GetTempFileName() -$stderrFile = [System.IO.Path]::GetTempFileName() -$argString = '-NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\GE\Shopfloor\GE-Enforce.ps1"' -$proc = Start-Process -FilePath 'powershell.exe' -ArgumentList $argString ` - -NoNewWindow -Wait -PassThru ` - -RedirectStandardOutput $stdoutFile -RedirectStandardError $stderrFile -$rc = $proc.ExitCode -Write-Host "--- GE-Enforce stdout ---" -Get-Content -Path $stdoutFile -ErrorAction SilentlyContinue -Write-Host "--- GE-Enforce stderr ---" -Get-Content -Path $stderrFile -ErrorAction SilentlyContinue -Remove-Item $stdoutFile, $stderrFile -Force -ErrorAction SilentlyContinue -Write-Host '' -Write-Host "GE-Enforce exited $rc" diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/09-Setup-CMM.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/09-Setup-CMM.ps1 deleted file mode 100644 index bb7c442..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/09-Setup-CMM.ps1 +++ /dev/null @@ -1,431 +0,0 @@ -# 09-Setup-CMM.ps1 - CMM type setup (runs during shopfloor-setup phase). -# -# At imaging time the tsgwp00525 SFLD share is NOT yet reachable - Azure DSC -# has not provisioned the share credentials that early. So we install from a -# WinPE-staged local copy at C:\CMM-Install (put there by startnet.cmd when -# the tech picks pc-type=CMM). Ongoing enforcement is handled by GE-Enforce -# (registered separately in Run-ShopfloorSetup.ps1) reading cmm/manifest.json -# from the tsgwp00525 share. -# -# Sequence: -# 1. Enable .NET Framework 3.5 (PC-DMIS 2016 prereq on Win10/11 where 3.5 -# is an off-by-default optional feature). -# 2. Run Install-FromManifest against C:\CMM-Install\cmm-manifest.json. -# 2.5. Grant BUILTIN\Users Modify on PC-DMIS install dirs (Hexagon-documented -# approach for non-admin runtime). -# 3. Delete C:\CMM-Install to reclaim the ~2 GB of bootstrap installers. -# -# Library lookup: the imaging-time install uses the common Install-FromManifest -# library at ..\common\lib\Install-FromManifest.ps1 (relative to $PSScriptRoot). -# -# Log: C:\Logs\CMM\09-Setup-CMM.log (stdout from this script) plus the -# install-time log at C:\Logs\CMM\install.log written by Install-FromManifest. - -$ErrorActionPreference = 'Continue' - -$stagingRoot = 'C:\CMM-Install' -$stagingMani = Join-Path $stagingRoot 'cmm-manifest.json' -$libSource = Join-Path $PSScriptRoot '..\common\lib\Install-FromManifest.ps1' - -$logDir = 'C:\Logs\CMM' -$logFile = Join-Path $logDir 'install.log' -$transcriptLog = Join-Path $logDir '09-Setup-CMM.log' - -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -# Independent transcript in addition to whatever Run-ShopfloorSetup.ps1 is -# capturing at the top level. Lets a tech open C:\Logs\CMM\09-Setup-CMM.log -# and see the entire CMM-type setup run without scrolling through the -# monolithic shopfloor-setup.log. -try { Start-Transcript -Path $transcriptLog -Append -Force | Out-Null } catch {} - -function Write-CMMLog { - param([string]$Message, [string]$Level = 'INFO') - $stamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" - Write-Host "[$stamp] [$Level] $Message" -} - -Write-CMMLog "================================================================" -Write-CMMLog "=== CMM Setup (imaging-time) session start (PID $PID) ===" -Write-CMMLog "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" -Write-CMMLog "================================================================" - -# Status push to PXE webapp - best-effort, never blocks imaging. -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-CMM: starting' -StageIndex 3 -StageTotal 8 } catch { } -} - -# Diagnostic dump - knowing WHY the script took a branch is half the battle. -Write-CMMLog "Script root: $PSScriptRoot" -foreach ($file in @('pc-type.txt','pc-subtype.txt','machine-number.txt')) { - $path = "C:\Enrollment\$file" - if (Test-Path -LiteralPath $path) { - $content = (Get-Content -LiteralPath $path -First 1 -ErrorAction SilentlyContinue).Trim() - Write-CMMLog " $file = $content" - } else { - Write-CMMLog " $file = (not present)" - } -} -if (Test-Path $stagingRoot) { - $bootstrapFiles = @(Get-ChildItem -LiteralPath $stagingRoot -File -ErrorAction SilentlyContinue) - Write-CMMLog "Bootstrap staging: $stagingRoot ($($bootstrapFiles.Count) files)" - foreach ($f in $bootstrapFiles) { - Write-CMMLog " - $($f.Name) ($([math]::Round($f.Length/1MB)) MB)" - } -} else { - Write-CMMLog "Bootstrap staging: $stagingRoot (DOES NOT EXIST - startnet.cmd did not stage it)" "ERROR" -} - -# ============================================================================ -# Step 1: Enable .NET Framework 3.5 -# ============================================================================ -# PC-DMIS 2016 lists .NET 3.5 as a prereq for some older components. On Win10/ -# Win11 it's an optional Windows feature that is OFF by default. Enable- -# WindowsOptionalFeature pulls the payload from Windows Update when the PC -# has internet; sources from the installed Windows image otherwise. Idempotent -# (no-op if already enabled). We swallow failures because if internet and -# media are both unavailable this becomes a known gap rather than an imaging -# blocker - we'd still rather try to install PC-DMIS and surface the real -# failure in its log. -Write-CMMLog "Checking .NET Framework 3.5 state..." -try { - $netfx = Get-WindowsOptionalFeature -Online -FeatureName 'NetFx3' -ErrorAction Stop - if ($netfx.State -eq 'Enabled') { - Write-CMMLog " .NET 3.5 already enabled" - } else { - Write-CMMLog " .NET 3.5 state is $($netfx.State) - enabling now (may take a minute)..." - $result = Enable-WindowsOptionalFeature -Online -FeatureName 'NetFx3' -All -NoRestart -ErrorAction Stop - Write-CMMLog " Enable-WindowsOptionalFeature RestartNeeded=$($result.RestartNeeded)" - } -} catch { - Write-CMMLog " Failed to enable .NET 3.5: $_" "WARN" - Write-CMMLog " Continuing anyway - PC-DMIS installers will surface any hard dependency." -} - -# ============================================================================ -# Step 2: Install apps from the WinPE-staged bootstrap at C:\CMM-Install -# ============================================================================ -if (-not (Test-Path $stagingRoot)) { - Write-CMMLog "$stagingRoot does not exist - startnet.cmd did not stage CMM installers" "ERROR" - Write-CMMLog "Skipping install. The logon enforcer will pick up from the share when SFLD creds are available." -} -elseif (-not (Test-Path $stagingMani)) { - Write-CMMLog "$stagingMani missing - staging directory is incomplete" "ERROR" -} -elseif (-not (Test-Path $libSource)) { - Write-CMMLog "Shared library not found at $libSource" "ERROR" -} -else { - $pcType = '' - $pcSubType = '' - if (Test-Path 'C:\Enrollment\pc-type.txt') { $pcType = (Get-Content 'C:\Enrollment\pc-type.txt' -First 1 -EA 0).Trim() } - if (Test-Path 'C:\Enrollment\pc-subtype.txt') { $pcSubType = (Get-Content 'C:\Enrollment\pc-subtype.txt' -First 1 -EA 0).Trim() } - - # PC-DMIS version gating (drop entries whose _CmmVersion does not match the - # bay's C:\Enrollment\cmm\version.txt) is now owned by the shared lib - # Install-FromManifest.ps1 (>= 2.6). Both this imaging path and the runtime - # GE-Enforce path call that lib, so the gate is applied identically in one - # place and the two paths cannot drift. We pass the full manifest unfiltered - # and let the lib filter per entry. The bug this prevents: enforce lacked - # the gate and reinstalled the wrong PC-DMIS version on an already-imaged bay. - Write-CMMLog "Running Install-FromManifest against $stagingRoot (PCType=$pcType, PCSubType=$pcSubType)" - & $libSource -ManifestPath $stagingMani -InstallerRoot $stagingRoot -LogFile $logFile -PCType $pcType -PCSubType $pcSubType - $rc = $LASTEXITCODE - Write-CMMLog "Install-FromManifest returned $rc" -} - -# ============================================================================ -# Step 2.5: Grant Users write access to PC-DMIS install directories -# ============================================================================ -# PC-DMIS writes settings, probe configs, and measurement data to its own -# install directory at runtime. Without Modify permission for BUILTIN\Users, -# non-admin accounts get a UAC elevation prompt on every launch. Granting -# the ACL here is the Hexagon-documented approach for non-admin deployment. -# Step 2.6 below handles the required first-run-as-admin initialization. -$pcdmisDirs = @( - 'C:\Program Files\Hexagon\PC-DMIS 2016.0 64-bit', - 'C:\Program Files\Hexagon\PC-DMIS 2019 R2 64-bit', - 'C:\Program Files\Hexagon\PC-DMIS 2026.1 64-bit', - 'C:\ProgramData\Hexagon', - 'C:\Program Files (x86)\General Electric\goCMM', - 'C:\Apps\DODA' -) -foreach ($dir in $pcdmisDirs) { - if (-not (Test-Path -LiteralPath $dir)) { - Write-CMMLog "PC-DMIS dir not found: $dir - skipping ACL" - continue - } - try { - $acl = Get-Acl -LiteralPath $dir - $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( - 'BUILTIN\Users', - 'Modify', - 'ContainerInherit,ObjectInherit', - 'None', - 'Allow' - ) - $acl.AddAccessRule($rule) - Set-Acl -LiteralPath $dir -AclObject $acl -ErrorAction Stop - Write-CMMLog "Granted BUILTIN\Users Modify on $dir" - } catch { - Write-CMMLog "Failed to set ACL on $dir : $_" "WARN" - } -} - -# ============================================================================ -# Step 2.5b: GE PC-DMIS FRONT END dir (PCDToIGES.exe error-log path) -# ============================================================================ -# PCDToIGES.exe (in every bay's C:\geaofi\Scripts) writes its error log to -# C:\GE PC-DMIS FRONT END\PCDToIGES.ERR inside its catch block. The legacy -# "GE PC-DMIS FRONT END" front-end setup that created this dir is not part of -# imaging, so on a fresh bay it is absent - and then ANY PCDToIGES failure -# becomes an unhandled DirectoryNotFoundException that crashes the export and -# MASKS the real error. Create it + grant the operator Modify so errors log. -$frontEnd = 'C:\GE PC-DMIS FRONT END' -try { - if (-not (Test-Path -LiteralPath $frontEnd)) { New-Item -ItemType Directory -Path $frontEnd -Force | Out-Null; Write-CMMLog "Created $frontEnd" } - foreach ($sid in '*S-1-5-32-545','*S-1-5-11') { # BUILTIN\Users, NT AUTHORITY\Authenticated Users - & icacls "$frontEnd" /grant "${sid}:(OI)(CI)M" /T /C 2>&1 | Out-Null - } - Write-CMMLog "Granted Users + Authenticated Users Modify on $frontEnd" -} catch { Write-CMMLog "Failed to ensure ${frontEnd}: $_" "WARN" } - -# ============================================================================ -# Step 2.5c: Active Setup - seed goCMM 2.12 DataFolder per-user for ALL users -# ============================================================================ -# goCMM 2.12 stores its shared-data-dir in HKCU\Software\General Electric\goCMM -# \DataFolder (decompiled: RegistrySettings uses Registry.CurrentUser - PER USER, -# not HKLM). Setting it at imaging only touches the imaging user (SupportUser); -# the ShopFloor operator's HKCU would be empty -> goCMM prompts them to pick the -# folder on first launch. Active Setup runs StubPath once in EACH user's context -# at first logon, so every user (SupportUser, ShopFloor, future) gets -# DataFolder=C:\geaofi\. Bump Version to re-push. (Uses Set-ItemProperty in the -# stub, not reg.exe, to avoid the trailing-backslash quoting trap.) -$asKey = 'HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{8F3B2A10-7C4D-4E9A-B1F6-0A9C5D2E7B43}' -try { - New-Item -Path $asKey -Force | Out-Null - Set-ItemProperty -Path $asKey -Name '(default)' -Value 'goCMM DataFolder (per-user)' - Set-ItemProperty -Path $asKey -Name 'Version' -Value '1' - $stub = 'powershell.exe -NoProfile -WindowStyle Hidden -Command "New-Item -Path ''HKCU:\SOFTWARE\General Electric\goCMM'' -Force | Out-Null; Set-ItemProperty -Path ''HKCU:\SOFTWARE\General Electric\goCMM'' -Name DataFolder -Value ''C:\geaofi\''"' - Set-ItemProperty -Path $asKey -Name 'StubPath' -Value $stub - Write-CMMLog "Seeded Active Setup: goCMM DataFolder=C:\geaofi\ (per-user, all users)" -} catch { Write-CMMLog "Failed to seed Active Setup goCMM DataFolder: $_" 'WARN' } - -# ============================================================================ -# Step 2.6: First-run-as-admin for each installed PC-DMIS version -# ============================================================================ -# PC-DMIS performs one-time initialization on first launch (COM registration, -# config file creation, internal setup). This must happen with admin rights -# before the PPKG locks the machine down. Launch each installed version, -# wait for it to initialize, then kill it. -$pcdmisExes = @( - 'C:\Program Files\Hexagon\PC-DMIS 2016.0 64-bit\PCDLRN.exe', - 'C:\Program Files\Hexagon\PC-DMIS 2019 R2 64-bit\PCDLRN.exe', - 'C:\Program Files\Hexagon\PC-DMIS 2026.1 64-bit\PCDLRN.exe' -) -foreach ($exe in $pcdmisExes) { - if (-not (Test-Path -LiteralPath $exe)) { continue } - $ver = Split-Path (Split-Path $exe -Parent) -Leaf - Write-CMMLog "First-run init: launching $ver" - try { - $proc = Start-Process -FilePath $exe -PassThru -ErrorAction Stop - $initTimeout = 45 - Write-CMMLog " PID $($proc.Id) started, waiting ${initTimeout}s for initialization..." - Start-Sleep -Seconds $initTimeout - if (-not $proc.HasExited) { - $proc.Kill() - $proc.WaitForExit(10000) - Write-CMMLog " Killed after ${initTimeout}s (first-run init complete)" - } else { - Write-CMMLog " Exited on its own (exit $($proc.ExitCode))" - } - } catch { - Write-CMMLog " First-run launch failed: $_" 'WARN' - } -} - -# ============================================================================ -# Step 2.7: Seed goCMM registry path values + grant Users write on the key -# ============================================================================ -# goCMM (.NET x86 WPF app) stores its config in the registry at -# HKLM\SOFTWARE\WOW6432Node\General Electric\goCMM (32-bit MSI / 32-bit -# process, so install seed and runtime reads both land in the WOW6432Node -# view). A capture from a working CMM4 bay shows the two values that matter: -# Shared Data Directory = C:\geaofi\ (constant) -# Selected Part Group = \\tsgwp00525.wjs.geaerospace.net\SHARED\CMM\CMM4\Spool (per-bay UNC) -# i.e. the PER-BAY program path is "Selected Part Group" (a UNC to the -# tsgwp00525 SHARED share), and "Shared Data Directory" is the constant local -# C:\geaofi\. Both live in HKLM, so a non-admin shopfloor user cannot set -# them (nor save a part-group switch) without elevation. So in admin context -# we: seed both values, and grant BUILTIN\Users write on the key so runtime -# switches succeed without UAC. Mirrors Step 2.5 (install-dir ACL grant). -$goCmmKey = 'HKLM:\SOFTWARE\WOW6432Node\General Electric\goCMM' - -# Constant local data dir on every bay. -$goCmmDataDir = 'C:\geaofi\' - -# Host that S: maps to. Selected Part Group is stored as a UNC to this host's -# SHARED share. Kept in one place so a domain/host change is a one-line edit. -$partGroupShareRoot = '\\tsgwp00525.wjs.geaerospace.net\SHARED' - -# Per-bay part group, resolved by resolve-cmm-bay-config.ps1 into -# C:\Enrollment\cmm\partgroup.txt as a friendly S:\... path. Convert the S: -# drive prefix to the UNC share root. Get-Content + Trim keeps internal spaces -# (e.g. CMM8 "Venture CMM8"); the value is passed as a single -Value arg, -# never through a command line, so the space cannot split the path. -$partGroup = '' -$pgFile = 'C:\Enrollment\cmm\partgroup.txt' -if (Test-Path -LiteralPath $pgFile) { - $raw = (Get-Content -LiteralPath $pgFile -First 1 -EA 0).Trim() - if ($raw) { - # ^S:\ -> \\host\SHARED\ (case-insensitive). Leave non-S: values as-is. - $partGroup = $raw -replace '(?i)^S:\\', "$partGroupShareRoot\" - } -} - -if (-not (Test-Path $goCmmKey)) { - Write-CMMLog "goCMM key absent ($goCmmKey) - goCMM not installed or install failed; creating key so the seed/ACL still land" 'WARN' - try { New-Item -Path $goCmmKey -Force | Out-Null } catch { Write-CMMLog "Could not create $goCmmKey : $_" 'WARN' } -} - -# Shared Data Directory (constant) -try { - New-ItemProperty -Path $goCmmKey -Name 'Shared Data Directory' -Value $goCmmDataDir -PropertyType String -Force | Out-Null - Write-CMMLog "Set goCMM 'Shared Data Directory' = $goCmmDataDir" -} catch { - Write-CMMLog "Failed to set goCMM 'Shared Data Directory': $_" 'WARN' -} - -# Selected Part Group (per-bay UNC) -if ($partGroup) { - try { - New-ItemProperty -Path $goCmmKey -Name 'Selected Part Group' -Value $partGroup -PropertyType String -Force | Out-Null - Write-CMMLog "Set goCMM 'Selected Part Group' = $partGroup" - } catch { - Write-CMMLog "Failed to set goCMM 'Selected Part Group': $_" 'WARN' - } -} else { - Write-CMMLog "No partgroup.txt (bay not in bay-config, or manual CMM ID) - leaving 'Selected Part Group' unset" 'WARN' -} - -# Grant BUILTIN\Users ReadKey+WriteKey (WriteKey = SetValue + CreateSubKey). -# Registry ACEs use ContainerInherit only (no leaf objects in the registry). -if (Test-Path $goCmmKey) { - try { - $racl = Get-Acl -Path $goCmmKey - $rrule = New-Object System.Security.AccessControl.RegistryAccessRule( - 'BUILTIN\Users', - 'ReadKey,WriteKey', - 'ContainerInherit', - 'None', - 'Allow' - ) - $racl.AddAccessRule($rrule) - Set-Acl -Path $goCmmKey -AclObject $racl -ErrorAction Stop - Write-CMMLog "Granted BUILTIN\Users write on $goCmmKey" - } catch { - Write-CMMLog "Failed to set ACL on $goCmmKey : $_" 'WARN' - } -} - -# ============================================================================ -# Step 2.8: Restore this bay's PC-DMIS + goCMM settings from its backup -# ============================================================================ -# Runs AFTER app install + first-run-init (so a restored config is not clobbered -# by PC-DMIS's first-launch defaults) and BEFORE the Step 3 cleanup (the backup -# set lives under $stagingRoot\backups\, deleted by cleanup). Restore-CMM -# self-gates: it skips DODA bays and bays with no staged backup, and restores -# ONLY the config-version PC-DMIS zip. Same-bay restore -> no CommPort clobber. -# Best-effort: Restore-CMM always exits 0, so imaging never fails on a restore. -$restoreScript = Join-Path $PSScriptRoot 'scripts\Restore-CMM.ps1' -if (Test-Path -LiteralPath $restoreScript) { - Write-CMMLog "Running per-bay settings restore (Restore-CMM.ps1)" - try { - & $restoreScript -BackupRoot (Join-Path $stagingRoot 'backups') *>&1 | ForEach-Object { Write-CMMLog " $_" } - Write-CMMLog "Restore-CMM returned $LASTEXITCODE" - } catch { - Write-CMMLog "Restore-CMM threw (non-fatal): $_" 'WARN' - } -} else { - Write-CMMLog "Restore-CMM.ps1 not found at $restoreScript - skipping settings restore" 'WARN' -} - -# ============================================================================ -# Step 2.5: drop Register-PCDMIS-COM.bat on the Public desktop -# ============================================================================ -# PC-DMIS COM must be registered for goCMM to connect, but /regserver no-ops -# until PC-DMIS is licensed - which happens manually post-image (clmadmin.exe). -# So we cannot register at imaging time; instead leave a one-click helper the -# tech runs AFTER activating the license. Public Desktop so it is visible to -# whoever logs in (operator or SupportUser). NOTE: 06-OrganizeDesktop sweeps the -# Public Desktop root into category subfolders, so it may end up under -# "Shopfloor Tools" rather than the bare desktop - still on the Public desktop. -$regBat = Join-Path $stagingRoot 'Register-PCDMIS-COM.bat' -if (Test-Path -LiteralPath $regBat) { - $d = 'C:\Users\Public\Desktop' - try { - if (-not (Test-Path $d)) { New-Item -Path $d -ItemType Directory -Force | Out-Null } - Copy-Item -LiteralPath $regBat -Destination (Join-Path $d 'Register-PCDMIS-COM.bat') -Force - Write-CMMLog "Staged Register-PCDMIS-COM.bat -> $d" - } catch { Write-CMMLog "Failed to stage Register-PCDMIS-COM.bat to ${d}: $_" 'WARN' } -} else { - Write-CMMLog "Register-PCDMIS-COM.bat not in staging ($regBat) - desktop helper NOT placed" 'WARN' -} - -# ============================================================================ -# Step 3: Conditional cleanup of the bootstrap staging dir -# ============================================================================ -# Only delete C:\CMM-Install when EVERY manifest entry detected as installed. -# A vendor installer that forces an unplanned mid-install reboot would -# otherwise leave us with no recovery path on the self-resumed re-run -# (Run-ShopfloorSetup's new RunOnce would fire, but Step 2 would log -# "$stagingRoot does not exist" and bail). Leaving the staging dir in -# place until the manifest fully converges means a re-fire just re-runs -# the partial installs and completes. -$allDetected = $true -if (Test-Path $stagingMani) { - try { - $cfg = Get-Content $stagingMani -Raw | ConvertFrom-Json - foreach ($app in $cfg.Applications) { - if (-not $app.DetectionMethod -or -not $app.DetectionPath) { continue } - # Honor PCTypes filter when checking detection. - if ($app.PCTypes -and $app.PCTypes.Count -gt 0) { - $myNames = @($pcType) - if ($pcSubType) { $myNames += "$pcType-$pcSubType" } - $match = $false - foreach ($t in $app.PCTypes) { if ($myNames -contains $t) { $match = $true; break } } - if (-not $match) { continue } # not applicable to this PC, skip detection - } - if (-not (Test-Path $app.DetectionPath)) { $allDetected = $false; Write-CMMLog "Not installed: $($app.Name)"; break } - if ($app.DetectionName) { - $val = (Get-ItemProperty -Path $app.DetectionPath -Name $app.DetectionName -EA 0).$($app.DetectionName) - if (-not $val) { $allDetected = $false; Write-CMMLog "Not installed (no value): $($app.Name)"; break } - if ($app.DetectionValue -and $val -ne $app.DetectionValue) { $allDetected = $false; Write-CMMLog "Wrong version: $($app.Name) got $val expected $($app.DetectionValue)"; break } - } - } - } catch { - Write-CMMLog "Could not parse manifest for cleanup-gate check: $_" 'WARN' - $allDetected = $false - } -} - -if ($allDetected -and (Test-Path $stagingRoot)) { - Write-CMMLog "All manifest entries installed. Deleting bootstrap staging at $stagingRoot" - try { - Remove-Item -LiteralPath $stagingRoot -Recurse -Force -ErrorAction Stop - Write-CMMLog "Bootstrap cleanup complete" - } catch { - Write-CMMLog "Failed to delete $stagingRoot : $_" "WARN" - } -} elseif (Test-Path $stagingRoot) { - Write-CMMLog "Bootstrap staging retained at $stagingRoot (not all entries installed yet - will retry on next self-resumed run)" -} - -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '09-Setup-CMM: complete' -StageIndex 4 -StageTotal 8 -} -Write-CMMLog "=== CMM Setup Complete ===" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/Install-DODA.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/Install-DODA.ps1 deleted file mode 100644 index 95d1bf1..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/Install-DODA.ps1 +++ /dev/null @@ -1,165 +0,0 @@ -# Install-DODA.ps1 - full unattended DODA install (runtimes + app + config + ACLs). -# -# The vendor GE_DODA_build5_Installer.exe is a multi-app NSIS bundler. Its /S -# silent mode is BROKEN (a nested sub-install gets a bad package path -> MSI -# error 1619), so it cannot be used for imaging. Each bundled component installs -# cleanly on its own, so we drive them directly here. (VM-validated 2026-06-17.) -# -# Components staged in C:\CMM-Install (robocopied from the SFLD/enrollment share -# by startnet.cmd), all installed SILENTLY: -# python-2.7.16.amd64.msi -> C:\Python27 (msiexec /qn) -# java-1.8.0-openjdk-*.msi -> C:\Program Files\RedHat (msiexec /qn) -# gs927w64.exe -> C:\Program Files\gs\gs9.27 (/S) -# vc_redist.x64.exe -> VC++ runtime (/quiet) -# doda_build*.zip -> C:\Apps\DODA (app files) -# -# DODA at runtime is DovetailAnalysis.exe -> JVM (OpenJDK) + C:\Python27 python + -# Ghostscript (PS->PDF). .settings (NOT in the zip - the NSIS installer wrote it) -# hardcodes those paths; we write it here. -# -# LOCKDOWN: DovetailAnalysis.exe runs as the locked-down OPERATOR (not admin) and -# writes throughout C:\Apps\DODA (.pyc, PreProcess) + $TMP. We (a) grant Users + -# Authenticated Users Full on C:\Apps\DODA and (b) PRECOMPILE the .py to .pyc as -# admin so the operator never needs to write bytecode into a protected path. -# -# Run as administrator / SYSTEM (imaging or GE-Enforce). Idempotent: each step -# detects-and-skips if already present, and ACL/.settings/env re-assert every run -# (so a post-lockdown re-run repairs a stripped ACE). - -$ErrorActionPreference = 'Continue' -# The doda zip + runtime installers are staged ALONGSIDE this script (same dir). -# When the manifest runs it, that dir is C:\CMM-Install (= $PSScriptRoot). -$stagingRoot = $PSScriptRoot -if (-not $stagingRoot -or -not (Test-Path $stagingRoot)) { $stagingRoot = 'C:\CMM-Install' } -$installDir = 'C:\Apps\DODA' -$python27 = 'C:\Python27\python.exe' -$gsExe = 'C:\Program Files\gs\gs9.27\bin\gswin64c.exe' - -$logDir = 'C:\Logs\CMM' -New-Item -ItemType Directory -Path $logDir -Force -EA SilentlyContinue | Out-Null -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$log = Join-Path $logDir "doda-install-$ts.log" -function Log($m){ $line = "[{0}] {1}" -f (Get-Date -Format 'HH:mm:ss'), $m; Write-Host $line; Add-Content -Path $log -Value $line -EA SilentlyContinue } - -function Find-One($pattern) { - Get-ChildItem -Path $stagingRoot -Filter $pattern -File -EA SilentlyContinue | Select-Object -First 1 -} - -Log "==== DODA install on $env:COMPUTERNAME (staging=$stagingRoot) ====" - -# --- 1. Python 2.7 ---------------------------------------------------------- -if (Test-Path $python27) { - Log "Python 2.7 already present - skip" -} else { - $msi = Find-One 'python-2.7*.msi' - if ($msi) { - Log "Installing Python: $($msi.Name)" - $p = Start-Process msiexec.exe -Wait -PassThru -ArgumentList @('/i', "`"$($msi.FullName)`"", '/qn', '/norestart', 'ADDLOCAL=ALL') - Log " Python msiexec exit $($p.ExitCode)" - } else { Log "WARN: python-2.7*.msi not found in $stagingRoot" } -} - -# --- 2. OpenJDK 8 ----------------------------------------------------------- -$jdk = Get-ChildItem 'C:\Program Files\RedHat','C:\Program Files\Java' -Directory -EA SilentlyContinue | - Where-Object Name -match 'openjdk|jdk|jre' | Select-Object -First 1 -if ($jdk) { - Log "OpenJDK already present ($($jdk.Name)) - skip" -} else { - $msi = Find-One 'java-*openjdk*.msi' - if ($msi) { - Log "Installing OpenJDK: $($msi.Name)" - $p = Start-Process msiexec.exe -Wait -PassThru -ArgumentList @('/i', "`"$($msi.FullName)`"", '/qn', '/norestart') - Log " OpenJDK msiexec exit $($p.ExitCode)" - $jdk = Get-ChildItem 'C:\Program Files\RedHat','C:\Program Files\Java' -Directory -EA SilentlyContinue | - Where-Object Name -match 'openjdk|jdk|jre' | Select-Object -First 1 - } else { Log "WARN: java-*openjdk*.msi not found in $stagingRoot" } -} - -# --- 3. Ghostscript 9.27 ---------------------------------------------------- -if (Test-Path $gsExe) { - Log "Ghostscript 9.27 already present - skip" -} else { - $gs = Find-One 'gs927w64.exe' - if ($gs) { - Log "Installing Ghostscript: $($gs.Name)" - $p = Start-Process $gs.FullName -Wait -PassThru -ArgumentList '/S' - Log " Ghostscript exit $($p.ExitCode)" - } else { Log "WARN: gs927w64.exe not found in $stagingRoot" } -} - -# --- 4. VC++ redist (best-effort) ------------------------------------------ -$vc = Find-One 'vc_redist.x64.exe' -if ($vc) { - Log "Installing VC++ redist: $($vc.Name)" - $p = Start-Process $vc.FullName -Wait -PassThru -ArgumentList @('/quiet', '/norestart') - Log " VC++ exit $($p.ExitCode) (1638/3010 = already-present/ok)" -} else { Log "VC++ redist not staged - skipping (usually already present)" } - -# --- 5. DODA app files ------------------------------------------------------ -$zip = Find-One 'doda_build*.zip' -if (-not $zip) { - Log "ERROR: doda_build*.zip not found in $stagingRoot - cannot place DODA app" -} else { - New-Item -ItemType Directory -Path $installDir -Force -EA SilentlyContinue | Out-Null - Log "Extracting $($zip.Name) -> $installDir" - try { Expand-Archive -LiteralPath $zip.FullName -DestinationPath $installDir -Force -EA Stop } - catch { Log "ERROR: extract failed - $_" } -} - -# --- 6. .settings (the NSIS installer wrote this; the zip does NOT contain it) --- -$settings = Join-Path $installDir '.settings' -$settingsBody = @' -WORKING_DIR=$TMP -PYTHONEXE=C:\Python27\python.exe -OPTIONS_FILE="$WORKING_DIR/dvt_run_options.py" -RPT_GUI=$PYTHONEXE $AFDA_INSTALL_DIR/dvtRptGui.py -file=$OPTIONS_FILE -OUTPUT_PROCESSOR=$PYTHONEXE $AFDA_INSTALL_DIR/processOutput.py $OPTIONS_FILE -PS2PDF="C:\Program Files\gs\gs9.27\bin\gswin64c.exe" -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$$out $$in -'@ -if (Test-Path $installDir) { - Set-Content -Path $settings -Value $settingsBody -Encoding ascii -Force - Log "Wrote $settings" -} - -# --- 7. PreProcess dir (MergeFiles GetDoDAFolder reads it) ------------------ -$preProcess = Join-Path $installDir 'PreProcess' -if (-not (Test-Path $preProcess)) { New-Item -ItemType Directory -Path $preProcess -Force | Out-Null; Log "Created $preProcess" } - -# --- 8. Env: AFDA_INSTALL_DIR + Java on PATH (machine scope) ---------------- -[Environment]::SetEnvironmentVariable('AFDA_INSTALL_DIR', $installDir, 'Machine') -Log "Set AFDA_INSTALL_DIR=$installDir (Machine)" -if ($jdk) { - $machPath = [Environment]::GetEnvironmentVariable('PATH','Machine') - foreach ($add in @((Join-Path $jdk.FullName 'bin'), (Join-Path $jdk.FullName 'jre\bin'))) { - if (Test-Path $add) { - $parts = $machPath -split ';' - if ($parts -notcontains $add) { $machPath = "$machPath;$add"; Log "PATH += $add" } - } - } - [Environment]::SetEnvironmentVariable('PATH', $machPath, 'Machine') -} - -# --- 9. Precompile .py -> .pyc as admin (so the locked-down operator never -# needs write access to compile bytecode at runtime) ------------------ -if ((Test-Path $python27) -and (Test-Path $installDir)) { - Log "Precompiling DODA .py with $python27" - $p = Start-Process $python27 -Wait -PassThru -ArgumentList @('-m','compileall', "`"$installDir`"") -WindowStyle Hidden - Log " compileall exit $($p.ExitCode)" -} - -# --- 10. ACLs: Users + Authenticated Users Full on C:\Apps\DODA so the -# locked-down operator can run DODA (writes .pyc/PreProcess/output) --- -if (Test-Path $installDir) { - foreach ($sid in '*S-1-5-32-545','*S-1-5-11') { # BUILTIN\Users, NT AUTHORITY\Authenticated Users - & icacls $installDir /grant "${sid}:(OI)(CI)F" /T /C 2>&1 | Out-Null - } - Log "Granted Users + Authenticated Users Full on $installDir (recursive)" -} - -# --- Verify ----------------------------------------------------------------- -$ok = (Test-Path (Join-Path $installDir 'DovetailAnalysis.exe')) -and (Test-Path $python27) -and (Test-Path $gsExe) -and $jdk -if ($ok) { Log "==== DODA install OK (DovetailAnalysis + Python27 + Ghostscript + OpenJDK present) ===="; exit 0 } -else { - Log "==== DODA install INCOMPLETE - DovetailAnalysis=$([bool](Test-Path (Join-Path $installDir 'DovetailAnalysis.exe'))) Python=$([bool](Test-Path $python27)) GS=$([bool](Test-Path $gsExe)) JDK=$([bool]$jdk) ====" - exit 1 -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/Install-PCDMISPDFConverter.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/Install-PCDMISPDFConverter.ps1 deleted file mode 100644 index e4d92d1..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/Install-PCDMISPDFConverter.ps1 +++ /dev/null @@ -1,141 +0,0 @@ -<# -Install-PCDMISPDFConverter.ps1 - -Installs the PC-DMIS PDF converter (Amyuni Document Converter 500, printer name -"PC-DMIS 50 Converter"). - -Why this exists: our CMM image installs PC-DMIS from a patched STANDALONE MSI, -bypassing Hexagon's Burn bundle. The Amyuni PDF converter is NOT a custom action -in the main MSI (INSTALLPDFCONVERTER is a bundle property the MSI never reads). -The bundle would have run the Amyuni install as a separate chained step - which -we skip. The MSI does lay the installer down on disk at: - C:\Program Files\Hexagon\PC-DMIS 64-bit\PDFDriverInstallFiles\BatFileInstallPDF50.zip -but nothing ever executes it. This script does. - -The zip ships InstallPDF50.exe + the Amyuni driver (amyuni.inf, acfpdf*.dll, -cdintf*.dll, atpdf500.cat) + InstallPDF50.bat. We do NOT run the .bat (it ends in -`pause` and hangs under /qn) - we parse its InstallPDF50.exe invocation (printer -name + Wilcox licensee + license code) and run that directly from the extracted -folder so the sibling DLLs resolve. - -The converter is ONE system printer shared by every PC-DMIS version, so we install -from the first PDFDriverInstallFiles we find and stop once the printer exists. - -Idempotent: if the "PC-DMIS 50 Converter" printer already exists, exits 0 without -reinstalling. Run as administrator / SYSTEM (driver install needs it). - -Exit: 0 = printer present (installed or already there), 1 = failed. -#> -param( - [string]$PrinterName = 'PC-DMIS 50 Converter', - [string]$OutDir = 'C:\Logs\CMM' -) -$ErrorActionPreference = 'Continue' -New-Item -ItemType Directory -Path $OutDir -Force -ErrorAction SilentlyContinue | Out-Null -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$log = Join-Path $OutDir "pdfconverter-$ts.log" -function Log($m){ $line = "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] $m"; Write-Host $line; $line | Out-File -FilePath $log -Append -Encoding ascii } - -function Test-ConverterPresent { - # Get-Printer is the authoritative check. Fall back to the printer-name key - # in the registry for old hosts where the Printing cmdlets are absent. - try { if (Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue) { return $true } } catch {} - $k = 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Printers\' + $PrinterName - return (Test-Path $k) -} - -Log "==== PC-DMIS PDF converter install on $env:COMPUTERNAME ====" - -if (Test-ConverterPresent) { - Log "Printer '$PrinterName' already present - nothing to do." - exit 0 -} - -# Find the Amyuni installer the MSI laid down. PC-DMIS 2016 (vendor Wai) and -# 2019/2026 (vendor Hexagon) all install under Program Files\Hexagon, but scan -# both Hexagon and Wai trees to be safe. -$zips = @() -foreach ($root in @("$env:ProgramFiles\Hexagon","$env:ProgramFiles\Wai","${env:ProgramFiles(x86)}\Hexagon","${env:ProgramFiles(x86)}\Wai")) { - if (-not (Test-Path $root)) { continue } - $zips += Get-ChildItem -Path $root -Recurse -Filter 'BatFileInstallPDF50.zip' -ErrorAction SilentlyContinue -} -$zips = $zips | Sort-Object FullName -Unique -if (-not $zips) { - Log "ERROR: no BatFileInstallPDF50.zip found under any PC-DMIS install dir." - Log " PC-DMIS may not be installed yet, or PDFDriverInstallFiles is missing." - exit 1 -} -Log ("Found {0} Amyuni installer zip(s):" -f $zips.Count) -$zips | ForEach-Object { Log " $($_.FullName)" } - -Add-Type -AssemblyName System.IO.Compression.FileSystem - -foreach ($zip in $zips) { - $stage = Join-Path $env:TEMP ("amyuni-pdf-" + $ts + "-" + [Guid]::NewGuid().ToString('N').Substring(0,6)) - try { - New-Item -ItemType Directory -Path $stage -Force | Out-Null - [System.IO.Compression.ZipFile]::ExtractToDirectory($zip.FullName, $stage) - Log "Extracted $($zip.Name) -> $stage" - - $exe = Join-Path $stage 'InstallPDF50.exe' - $bat = Join-Path $stage 'InstallPDF50.bat' - if (-not (Test-Path $exe)) { Log " no InstallPDF50.exe in zip - skipping"; continue } - - # Parse InstallPDF50.bat for the exact InstallPDF50.exe arguments (printer - # name + Wilcox licensee + license code). License code can differ per - # version, so read it rather than hardcode. Strip the leading exe token. - $args = $null - if (Test-Path $bat) { - $cmd = (Get-Content $bat | Where-Object { $_ -match 'InstallPDF50\.exe' } | Select-Object -First 1) - if ($cmd) { $args = ($cmd -replace '(?i)^\s*[^"]*InstallPDF50\.exe\s*','').Trim() } - } - if (-not $args) { - # Fallback to the known-good invocation if the bat is missing/odd. - $args = '"' + $PrinterName + '" -n "Wilcox Associates, Inc."' - Log " WARN: could not parse args from bat - using fallback (no license code): $args" - } else { - Log " parsed install args from bat" - } - - $psi = New-Object System.Diagnostics.ProcessStartInfo - $psi.FileName = $exe - $psi.Arguments = $args - $psi.WorkingDirectory = $stage # sibling DLLs (cdintf64.dll, acfpdf*, amyuni.inf, atpdf500.cat) must resolve - $psi.UseShellExecute = $false - $psi.CreateNoWindow = $true - $psi.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden - Log " running: InstallPDF50.exe $args (cwd=$stage)" - $proc = [System.Diagnostics.Process]::Start($psi) - # InstallPDF50.exe creates the printer in a few seconds but then hangs - # (does not self-exit, same as Hexagon's Burn bundle). Poll for the - # printer instead of blocking; once it appears, kill the hung exe and - # move on. Hard cap at 90s as a backstop for a genuinely stuck install. - $deadline = (Get-Date).AddSeconds(90) - $appeared = $false - while ((Get-Date) -lt $deadline) { - if ($proc.HasExited) { Log " InstallPDF50.exe exited on its own (code $($proc.ExitCode))"; break } - if (Test-ConverterPresent) { $appeared = $true; break } - Start-Sleep -Seconds 2 - } - if (-not $proc.HasExited) { - Log (" printer {0} - killing InstallPDF50.exe (it does not self-exit)" -f $(if ($appeared) { 'present' } else { 'NOT present after 90s' })) - try { $proc.Kill() } catch {} - } - - Start-Sleep -Seconds 2 - if (Test-ConverterPresent) { - Log "SUCCESS: printer '$PrinterName' is now present." - Remove-Item $stage -Recurse -Force -ErrorAction SilentlyContinue - exit 0 - } - Log " printer not present after this attempt - trying next zip if any." - } catch { - Log " ERROR during install from $($zip.Name): $($_.Exception.Message)" - } finally { - Remove-Item $stage -Recurse -Force -ErrorAction SilentlyContinue - } -} - -if (Test-ConverterPresent) { Log "Printer '$PrinterName' present."; exit 0 } -Log "ERROR: printer '$PrinterName' still not present after all attempts." -exit 1 diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/Register-PCDMIS-COM.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/Register-PCDMIS-COM.bat deleted file mode 100644 index 11b8180..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/Register-PCDMIS-COM.bat +++ /dev/null @@ -1,57 +0,0 @@ -@echo off -REM ============================================================================ -REM Register-PCDMIS-COM.bat - register the PC-DMIS COM / automation server. -REM -REM WHY: goCMM connects to PC-DMIS over COM. If the COM server is not -REM registered, goCMM throws "Object reference not set to an instance of an -REM object" at startup (it calls Type.GetTypeFromProgID on the PC-DMIS ProgID, -REM gets null, then Activator.CreateInstance(null) -> ArgumentNullException). -REM -REM IMPORTANT: PC-DMIS must be LICENSED FIRST. /regserver does NOT register the -REM COM server until a valid license is present. Activate the license with -REM clmadmin.exe, THEN run this. Safe to re-run any time goCMM stops connecting. -REM -REM Needs admin - this script self-elevates via UAC. -REM ============================================================================ - -REM --- self-elevate if not already running as admin --- -net session >nul 2>&1 -if %errorlevel% neq 0 ( - echo Requesting administrator rights... - powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs" - exit /b -) - -echo ================================================================ -echo Register PC-DMIS COM server (run AFTER licensing PC-DMIS) -echo ================================================================ -echo. - -setlocal enabledelayedexpansion -set "FOUND=" -for %%D in ( - "C:\Program Files\Hexagon" - "C:\Program Files (x86)\Hexagon" - "C:\Program Files\WAI" - "C:\Program Files (x86)\WAI" -) do ( - if exist %%~D ( - for /f "delims=" %%F in ('dir /b /s "%%~D\Pcdlrn.exe" 2^>nul') do ( - set "FOUND=1" - echo Registering: %%F - "%%F" /regserver - if !errorlevel! equ 0 (echo OK) else (echo regserver returned !errorlevel!) - ) - ) -) - -echo. -if not defined FOUND ( - echo ERROR: Pcdlrn.exe not found. Is PC-DMIS installed? -) else ( - echo Done. - echo If goCMM still errors, confirm PC-DMIS is LICENSED ^(clmadmin.exe^) and - echo that you ran this AFTER activating the license, then re-run. -) -echo. -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/cmm-bay-config.csv b/playbook/shopfloor-setup/gea-shopfloor-cmm/cmm-bay-config.csv deleted file mode 100644 index 9f666b9..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/cmm-bay-config.csv +++ /dev/null @@ -1,13 +0,0 @@ -cmm_id,pcdmis_version,doda,part_group -CMM1,2019,no,S:\CMM\CMM1\HPTCMM1 -CMM2,2019,no,S:\CMM\CMM2\HPT -CMM3,2019,no,S:\CMM\CMM3\VENTURE_CMM3 -CMM4,2016,yes,S:\CMM\CMM4\Spool -CMM5,2019,no,S:\CMM\CMM5\BLISKCMM5 -CMM6,2019,no,S:\CMM\CMM6\BLISKCMM6 -CMM7,2019,no,S:\CMM\CMM7\VENTURE_CMM7 -CMM8,2019,no,S:\CMM\CMM8\Venture CMM8 -CMM9,2019,no,S:\CMM\CMM9\BLISKCMM9 -CMM10,2016,yes,S:\CMM\CMM10\Spool -CMM11,2026,yes,S:\CMM\CMM11\Spool -CMM12,2026,yes,S:\CMM\CMM12\Spool diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/cmm-manifest.json b/playbook/shopfloor-setup/gea-shopfloor-cmm/cmm-manifest.json deleted file mode 100644 index f5764b0..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/cmm-manifest.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "Version": "2.0", - "_comment": "CMM machine-app manifest, imaging-time only. Consumed by 09-Setup-CMM.ps1 reading from C:\\CMM-Install\\. 09-Setup reads C:\\Enrollment\\cmm\\version.txt (written by resolve-cmm-bay-config.ps1) and filters PC-DMIS entries by the _CmmVersion tag before passing to Install-FromManifest. Entries without _CmmVersion are always installed (CLM, goCMM, DODA). Ongoing enforcement is handled separately by GE-Enforce reading cmm/manifest.json from the tsgwp00525 share. Patched-MSI install strategy: we bypass Hexagon's Burn bundle entirely. The main PC-DMIS MSIs have been patched via COM SQL UPDATE to force the Condition column to '0' for licensing custom actions (ProcessLicensingFromBundle, IsLicenseDateValid, IsLicenseExpired, IsLmsLicenseServerConnectionError, IsLmsLicenseError). With CAs disabled, the MSI installs cleanly with no license present; the tech activates a real license via clmadmin.exe after imaging.", - "Applications": [ - { - "Name": "PC-DMIS 2016", - "_CmmVersion": "2016", - "Installer": "pcdmis2016-main-patched.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 INSTALLFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2016.0 64-bit\" APPLICATIONFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2016.0 64-bit\" USINGWPFINSTALLER=1 HEIP=0 INSTALLPDFCONVERTER=0 REBOOT=ReallySuppress LICENSETYPE=LMSEntitlement", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5389B196-81F0-44A9-A073-4C1D72041F09}" - }, - { - "Name": "PC-DMIS 2019 R2", - "_CmmVersion": "2019", - "Installer": "pcdmis2019-main-patched.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 INSTALLFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2019 R2 64-bit\" APPLICATIONFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2019 R2 64-bit\" USINGWPFINSTALLER=1 HEIP=0 INSTALLPDFCONVERTER=0 INSTALLOFFLINEHELP=0 INSTALLUNIVERSALUPDATER=0 REBOOT=ReallySuppress LICENSETYPE=LMSEntitlement", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{49DBE7F9-228A-4E66-8BB5-DB5A446DCAE7}" - }, - { - "Name": "PC-DMIS 2026.1", - "_CmmVersion": "2026", - "Installer": "pcdmis2026-main-patched.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 INSTALLFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2026.1 64-bit\" APPLICATIONFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2026.1 64-bit\" USINGWPFINSTALLER=1 HEIP=0 INSTALLPDFCONVERTER=0 INSTALLOFFLINEHELP=0 INSTALLUNIVERSALUPDATER=0 REBOOT=ReallySuppress LICENSETYPE=LMSEntitlement", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{81BACE1B-FB08-4DCF-8100-79911AD3EC1E}" - }, - { - "_comment": "PC-DMIS PDF converter (Amyuni Document Converter 500; system printer 'PC-DMIS 50 Converter'). NOT installed by the PC-DMIS MSI: INSTALLPDFCONVERTER is a Burn-bundle property the standalone MSI never reads (0 of 153 custom actions reference it), and our patched-MSI strategy bypasses the bundle that would have chained the Amyuni install. The MSI only lays the installer down at \\PDFDriverInstallFiles\\BatFileInstallPDF50.zip; this entry runs it (InstallPDF50.exe directly - the shipped .bat ends in `pause` and hangs under /qn). MUST stay AFTER the PC-DMIS entries so the files exist on disk. One shared printer covers every installed version; script is idempotent and scans Program Files\\Hexagon (and Wai). MarkerFile keeps it one-shot at imaging.", - "Name": "PC-DMIS PDF Converter", - "Type": "PS1", - "Script": "Install-PCDMISPDFConverter.ps1", - "DetectionMethod": "MarkerFile", - "DetectionPath": "C:\\Logs\\CMM\\pdfconverter.installed" - }, - { - "_comment": "Protect Viewer - companion tool. Install for all versions.", - "Name": "Protect Viewer", - "Installer": "ProtectViewer.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 REBOOT=ReallySuppress", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{7DE6B8AF-F580-4CDE-845F-FBE46C1FCF69}" - }, - { - "_comment": "CLM 1.8.73 standalone - provides clmadmin.exe for license activation. Install for all versions.", - "Name": "CLM 1.8.73", - "Installer": "CLM_1.8.73.0_x64.exe", - "Type": "EXE", - "InstallArgs": "/quiet /norestart /log \"C:\\Logs\\CMM\\CLM.log\"", - "LogFile": "C:\\Logs\\CMM\\CLM.log", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{a55fecde-0776-474e-a5b3-d57ea93d6a9f}" - }, - { - "_comment": "goCMM 2.17.0.0 (was 2.12.3 until 2026-10-13) - Hexagon/Renishaw CMM job launcher. NSIS installer; silent switch is /S (NOT /quiet - that was the WiX 1.1 bundle). Installs to C:\\Program Files\\goCMM and runs no-admin. FileVersion detection so an older 2.x does not satisfy it. The 2.x installer prompts (unanswerable under /S) when HKLM WOW6432Node General Electric\\goCMM 'Installation Directory' is set; a fresh image has none, and Install-goCMMSettings.ps1 drops the 1.1 value it restores (28cd977). This is the IMAGING manifest only; existing bays are upgraded through the SFLD enforce manifest. Install for all versions.", - "Name": "goCMM 2.17.0.0", - "Installer": "goCMM_2.17.0.0_Release.exe", - "Type": "EXE", - "InstallArgs": "/S", - "DetectionMethod": "FileVersion", - "DetectionPath": "C:\\Program Files\\goCMM\\goCMM.exe", - "DetectionValue": "2.17.0.0" - }, - { - "_comment": "DODA - Dovetail Digital Analysis. Deployed as a flat file extract to C:\\Apps\\DODA\\. Only installed when doda.txt=yes -> startnet writes pc-subtype.txt=doda -> 09-Setup passes PCType=gea-shopfloor-cmm + PCSubType=doda -> matcher builds 'gea-shopfloor-cmm-doda'. PCTypes MUST be that exact Type-SubType string ('cmm-doda' never matched - the alias of gea-shopfloor-cmm is bare 'CMM', no subtype variant).", - "Name": "DODA", - "PCTypes": ["gea-shopfloor-cmm-doda"], - "Type": "PS1", - "Script": "Install-DODA.ps1", - "DetectionMethod": "File", - "DetectionPath": "C:\\Apps\\DODA\\DovetailAnalysis.exe" - } - ] -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/resolve-cmm-bay-config.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/resolve-cmm-bay-config.ps1 deleted file mode 100644 index 3d0e7df..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/resolve-cmm-bay-config.ps1 +++ /dev/null @@ -1,65 +0,0 @@ -# resolve-cmm-bay-config.ps1 - Resolve CMM bay config from cmm-bay-config.csv. -# -# Called by startnet.cmd after the bay picker. Reads the CSV from the PXE -# enrollment share, looks up the selected CMM ID, and writes: -# W:\Enrollment\cmm\version.txt (e.g. "2019") -# W:\Enrollment\cmm\doda.txt (e.g. "yes" or "no") -# -# 09-Setup-CMM.ps1 reads these at install time to gate which PC-DMIS -# version gets installed and whether DODA is deployed. - -param( - [Parameter(Mandatory=$true)][string]$ConfigPath, - [Parameter(Mandatory=$true)][string]$CmmId, - [Parameter(Mandatory=$true)][string]$OutDir -) - -$ErrorActionPreference = 'Continue' - -if (-not (Test-Path -LiteralPath $ConfigPath)) { - Write-Host "ERROR: CSV not found at $ConfigPath" - exit 1 -} - -try { - $bays = Import-Csv -LiteralPath $ConfigPath -} catch { - Write-Host "ERROR: Failed to parse $ConfigPath - $_" - exit 1 -} - -$match = $bays | Where-Object { $_.cmm_id -ieq $CmmId } -if (-not $match) { - Write-Host "WARNING: $CmmId not found in bay-config. No version/doda resolution." - exit 0 -} - -if (-not (Test-Path $OutDir)) { - New-Item -Path $OutDir -ItemType Directory -Force | Out-Null -} - -$version = $match.pcdmis_version.Trim() -$doda = $match.doda.Trim().ToLower() -# part_group is the goCMM "Selected Part Group" path. It may legitimately -# contain spaces (e.g. CMM8 "Venture CMM8"); Trim() strips only leading/ -# trailing whitespace, never internal spaces. Stored in the friendly S:\ -# form; 09-Setup-CMM converts it to the tsgwp00525 UNC at apply time. -$partGroup = '' -if ($match.PSObject.Properties['part_group'] -and $match.part_group) { - $partGroup = $match.part_group.Trim() -} - -[System.IO.File]::WriteAllText((Join-Path $OutDir 'version.txt'), $version) -[System.IO.File]::WriteAllText((Join-Path $OutDir 'doda.txt'), $doda) -# cmmid.txt: the resolved CMM id, so 09-Setup-CMM can locate this bay's staged -# backup set (installers-post\cmm\backups\\) for restore-by-machine-#. -[System.IO.File]::WriteAllText((Join-Path $OutDir 'cmmid.txt'), $CmmId) -if ($partGroup) { - [System.IO.File]::WriteAllText((Join-Path $OutDir 'partgroup.txt'), $partGroup) -} - -Write-Host "Resolved $CmmId -> PC-DMIS $version, DODA=$doda, PartGroup=$(if ($partGroup) { $partGroup } else { '(none)' })" -Write-Host " version.txt -> $OutDir\version.txt" -Write-Host " doda.txt -> $OutDir\doda.txt" -if ($partGroup) { Write-Host " partgroup.txt -> $OutDir\partgroup.txt" } -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.bat deleted file mode 100644 index f4d5e64..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -REM Backup-CMM.bat - ONE backup for a whole CMM bay (goCMM + PC-DMIS, all versions). -REM -REM Run AS ADMINISTRATOR on the live CMM. Do NOT run on DODA bays. -REM -REM Backup-CMM.bat -CmmId CMM3 (names the folder by CMM #) -REM Backup-CMM.bat (uses the computer name) -REM -REM Output: C:\Logs\CMM\cmm-backup\\ (gocmm + pcdmis zips + index) -REM Copy that whole folder to the PXE staging area for restore-by-machine-#. - -setlocal -set "HERE=%~dp0" -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%Backup-CMM.ps1" %* -echo. -echo --------------------------------------------------------------- -echo Backup folder is under C:\Logs\CMM\cmm-backup\ -echo --------------------------------------------------------------- -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.ps1 deleted file mode 100644 index adde916..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.ps1 +++ /dev/null @@ -1,107 +0,0 @@ -<# -Backup-CMM.ps1 - -ONE backup for a whole CMM bay - runs both: - - Backup-goCMMSettings.ps1 (HKLM goCMM key + C:\geaofi, minus LocalProgramCopies/logs) - - Backup-PCDMISSettings.ps1 (PC-DMIS registry + data/probe/cal + interfac.dll, - every installed version; Homepage state excluded) - -All zips land together in one per-CMM folder so they can be staged on PXE and -restored by CMM machine-# at imaging. - -Run as ADMINISTRATOR on the live CMM. Do NOT run on DODA bays (handled separately). - -Output (default): S:\2 WJ Scans Record Retention\backup\cmm\\ - gocmm_backup__.zip - pcdmis_backup___.zip (one per PC-DMIS version) - cmm-backup-index.json -If S: is not mapped/reachable, falls back to C:\Logs\CMM\cmm-backup\\. - -Params: - -CmmId e.g. CMM3 - names the folder + index. If omitted, the script - PROMPTS for it. - -OutDir

base output folder (default the S: record-retention path above) -#> -param( - [string]$CmmId, - [string]$OutDir = 'S:\2 WJ Scans Record Retention\backup\cmm' -) -$ErrorActionPreference = 'Continue' -$here = Split-Path -Parent $MyInvocation.MyCommand.Path -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' - -# Prompt for the CMM number if not passed. It names the backup folder, so we -# need a real value - loop until non-empty. -if (-not $CmmId) { - while (-not $CmmId) { - $CmmId = (Read-Host "Enter the CMM number for this bay (e.g. CMM3)").Trim() - if (-not $CmmId) { Write-Host " CMM number is required." -ForegroundColor Yellow } - } -} - -# Default OutDir is on S: (record retention). If S: is not mapped or that base -# path is unreachable, fall back to a local folder so the backup still runs - -# the operator can copy it up to S: afterward. -$fallback = 'C:\Logs\CMM\cmm-backup' -$baseRoot = Split-Path -Qualifier $OutDir -ErrorAction SilentlyContinue -if ($baseRoot -and -not (Test-Path "$baseRoot\")) { - Write-Host "WARNING: $baseRoot is not reachable (S: not mapped?). Falling back to $fallback" -ForegroundColor Yellow - $OutDir = $fallback -} -$dest = Join-Path $OutDir $CmmId -New-Item -ItemType Directory -Path $dest -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $dest "cmm-backup-$ts.log" -function Log($m){ Write-Host $m; $m | Out-File -FilePath $log -Append } - -Log "================ CMM backup: $CmmId on $env:COMPUTERNAME at $(Get-Date) ================" - -foreach ($s in 'Backup-goCMMSettings.ps1','Backup-PCDMISSettings.ps1') { - $p = Join-Path $here $s - if (-not (Test-Path $p)) { Log "MISSING sibling script: $p - skipping"; continue } - Log "---- running $s ----" - try { & $p -OutDir $dest *>&1 | ForEach-Object { Log " $_" } } - 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]@{ - CmmId = $CmmId - Computer = $env:COMPUTERNAME - 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 ================" -Log "Folder: $dest" -$zips | ForEach-Object { Log (" {0} ({1} KB)" -f $_.Name, [math]::Round($_.Length/1KB)) } -Write-Host "" -Write-Host "CMM backup for $CmmId complete:" -ForegroundColor Green -Write-Host " $dest" -$zips | ForEach-Object { Write-Host " $($_.Name)" } diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-PCDMISSettings.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-PCDMISSettings.bat deleted file mode 100644 index 4f06a79..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-PCDMISSettings.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -REM Backup-PCDMISSettings.bat - capture PC-DMIS settings / probes / calibration -REM for every installed version (2016 / 2019 / 2026), headless. -REM -REM Run on a LIVE bay AS ADMINISTRATOR (reg export of HKLM + read of install dir). -REM -REM Backup-PCDMISSettings.bat (all detected versions) -REM Backup-PCDMISSettings.bat -Version 2026.1 (one version) -REM -REM Output: C:\Logs\CMM\pcdmis-backup\pcdmis_backup___.zip - -setlocal -set "HERE=%~dp0" -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%Backup-PCDMISSettings.ps1" %* -echo. -echo --------------------------------------------------------------- -echo Backups under C:\Logs\CMM\pcdmis-backup\ (one zip per version) -echo --------------------------------------------------------------- -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-PCDMISSettings.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-PCDMISSettings.ps1 deleted file mode 100644 index b06497b..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-PCDMISSettings.ps1 +++ /dev/null @@ -1,180 +0,0 @@ -<# -Backup-PCDMISSettings.ps1 - -Manual PC-DMIS settings/probe/calibration backup - replicates what the Settings -Editor captures (registry + data/probe files), but headless and scriptable, -because SettingsEditor.exe /b only works through the GUI and fails non-interactively. - -Works across PC-DMIS 2016 / 2019 / 2026 (auto-detects version + vendor hive: -'Hexagon' on 2019/2026, 'Wai' on older 2016 builds). - -Captures, per installed version, into one zip: - - registry: HKLM + HKCU \PC-DMIS\ (settings, probe search paths) - - install-dir probe/cal master files: PROBE.DAT, usrprobe.dat, comp.dat, - tool.dat, *.prb (top level + Configuration\) - - the per-version data folders under ProgramData, Public\Documents, and - per-user AppData (Roaming + Local) - -Run as administrator on a LIVE bay. One zip per installed version. -Output: C:\Logs\CMM\pcdmis-backup\pcdmis_backup___.zip - -Params: - -Version back up only this version (e.g. 2026.1). Default: every detected. - -OutDir

output folder (default C:\Logs\CMM\pcdmis-backup) -#> -param( - [string]$Version, - [string]$OutDir = 'C:\Logs\CMM\pcdmis-backup' -) -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -New-Item -ItemType Directory -Path $OutDir -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $OutDir "pcdmis-backup-$ts.log" -function Log($m){ Write-Host $m; $m | Out-File -FilePath $log -Append } - -# --- discover installed PC-DMIS versions: vendor (Hexagon/Wai), version, install dir --- -function Get-PCDMISInstalls { - $found = @() - $roots = @( - @{ Path='HKLM:\SOFTWARE\WOW6432Node\Hexagon\PC-DMIS'; Vendor='Hexagon' }, - @{ Path='HKLM:\SOFTWARE\Hexagon\PC-DMIS'; Vendor='Hexagon' }, - @{ Path='HKLM:\SOFTWARE\WOW6432Node\Wai\PC-DMIS'; Vendor='Wai' }, - @{ Path='HKLM:\SOFTWARE\Wai\PC-DMIS'; Vendor='Wai' } - ) - foreach ($r in $roots) { - if (-not (Test-Path $r.Path)) { continue } - Get-ChildItem $r.Path -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^\d' } | ForEach-Object { - $p = Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue - $ver = $_.PSChildName - $instDir = $p.Directory; if (-not $instDir) { $instDir = $p.InstallDir } - # Fallback: the registry Directory value is often blank - find the install dir on disk - if (-not $instDir) { - foreach ($pf in "$env:ProgramFiles\$($r.Vendor)","${env:ProgramFiles(x86)}\$($r.Vendor)") { - if (-not (Test-Path $pf)) { continue } - $cand = Get-ChildItem $pf -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -like "PC-DMIS*$ver*" -and (Test-Path (Join-Path $_.FullName 'PCDLRN.exe')) } | Select-Object -First 1 - if ($cand) { $instDir = $cand.FullName; break } - } - } - $found += [pscustomobject]@{ Vendor=$r.Vendor; Version=$ver; HiveRoot=$r.Path; InstallDir=$instDir } - } - } - $found -} - -function Backup-OneVersion($inst) { - $ver = $inst.Version; $vendor = $inst.Vendor - Log "==== Backing up PC-DMIS $vendor $ver ====" - $stage = Join-Path $env:TEMP "pcd-bk-$ver-$ts" - New-Item -ItemType Directory -Path $stage,"$stage\registry","$stage\install","$stage\ProgramData","$stage\PublicDocs","$stage\AppData" -Force | Out-Null - - # registry: HKLM + HKCU under both Hexagon and Wai (export whichever exists) - foreach ($hk in @('HKLM','HKCU')) { - foreach ($v in @('Hexagon','Wai')) { - $regPath = "$hk\SOFTWARE\$(if($hk -eq 'HKLM'){'WOW6432Node\'} )$v\PC-DMIS\$ver" - $regPathNative = "$hk\SOFTWARE\$v\PC-DMIS\$ver" - foreach ($rp in @($regPath,$regPathNative)) { - $test = $rp -replace '^HKLM','HKLM:' -replace '^HKCU','HKCU:' - if (Test-Path $test) { - $f = "$stage\registry\$hk-$v-$ver.reg" - reg export $rp "$f" /y 2>&1 | Out-Null - if (Test-Path $f) { Log " reg export $rp" } - } - } - } - } - - # install-dir master probe/cal files - if ($inst.InstallDir -and (Test-Path $inst.InstallDir)) { - # interfac.dll = the active controller's interface DLL, renamed to interfac.dll - # by PC-DMIS per the machine's controller. Machine-specific - capture it. - foreach ($pat in 'PROBE.DAT','usrprobe.dat','comp.dat','compens.dat','tool.dat','machine.dat','interfac.dll') { - Get-ChildItem $inst.InstallDir -Filter $pat -ErrorAction SilentlyContinue | ForEach-Object { Copy-Item $_.FullName "$stage\install\" -Force } - } - Get-ChildItem $inst.InstallDir -Filter '*.prb' -Recurse -ErrorAction SilentlyContinue | ForEach-Object { - $rel = $_.FullName.Substring($inst.InstallDir.TrimEnd('\').Length).TrimStart('\') - $dst = Join-Path "$stage\install" $rel; New-Item -ItemType Directory -Path (Split-Path $dst) -Force -EA SilentlyContinue | Out-Null - Copy-Item $_.FullName $dst -Force - } - Log " copied install-dir probe/cal files" - } - - # --- Identify the controller: which DLL became interfac.dll --- - # PC-DMIS makes the active controller's interface DLL into interfac.dll. If it - # was COPIED, an identical sibling .dll still exists -> hash match names it. If - # it was RENAMED (no copy), no sibling matches - so we also read the PE version - # resource's OriginalFilename, which survives a rename and names the source. - $controllerInfo = $null - $ifPath = if ($inst.InstallDir) { Join-Path $inst.InstallDir 'interfac.dll' } else { $null } - if ($ifPath -and (Test-Path $ifPath)) { - try { - $ifItem = Get-Item $ifPath - $ifHash = (Get-FileHash -Algorithm SHA256 -LiteralPath $ifPath).Hash - $vi = $ifItem.VersionInfo - # size pre-filter so we don't hash every DLL in the install dir - $match = Get-ChildItem $inst.InstallDir -Filter '*.dll' -ErrorAction SilentlyContinue | - Where-Object { $_.Name -ne 'interfac.dll' -and $_.Length -eq $ifItem.Length } | - Where-Object { try { (Get-FileHash -Algorithm SHA256 -LiteralPath $_.FullName).Hash -eq $ifHash } catch { $false } } | - Select-Object -First 1 - $controllerInfo = [pscustomobject]@{ - InterfacSha256 = $ifHash - MatchedSourceDll = if ($match) { $match.Name } else { $null } # null = renamed, no copy - OriginalFilename = $vi.OriginalFilename - FileDescription = $vi.FileDescription - ProductName = $vi.ProductName - FileVersion = $vi.FileVersion - } - Log (" controller: interfac.dll source=" + $(if ($match) { $match.Name } else { '(renamed, no copy)' }) + - " origName=$($vi.OriginalFilename) desc=$($vi.FileDescription)") - } catch { Log " WARN: controller identification failed: $($_.Exception.Message)" } - } else { Log " (no interfac.dll in install dir - controller not identified)" } - - # per-version data folders - $dataMap = @( - @{ Src="$env:ProgramData\$vendor\PC-DMIS\$ver"; Dst="$stage\ProgramData" }, - @{ Src="$env:PUBLIC\Documents\$vendor\PC-DMIS\$ver"; Dst="$stage\PublicDocs" }, - @{ Src="$env:APPDATA\$vendor\PC-DMIS\$ver"; Dst="$stage\AppData\Roaming" }, - @{ Src="$env:LOCALAPPDATA\$vendor\PC-DMIS\$ver"; Dst="$stage\AppData\Local" } - ) - foreach ($d in $dataMap) { - if (Test-Path $d.Src) { - New-Item -ItemType Directory -Path $d.Dst -Force | Out-Null - # Exclude bay/path-specific Homepage state. Recent + Favorites store - # absolute routine paths (S:\..., C:\geaofi\LocalProgramCopies\...). - # Restoring them onto another bay makes PC-DMIS null-ref on launch - # (RecentExecutedItem.LoadRealNode) trying to resolve missing paths. - # Exclude the whole Homepage start-screen state (Recent, Favorites, - # DetailsView) - it stores absolute routine paths (S:\..., C:\geaofi\...) - # and PC-DMIS null-refs on launch resolving them (LoadRealNode). Rebuilt - # on use. Also skip regenerable caches/logs. - robocopy $d.Src $d.Dst /E /XD Cache Caches Temp logs Logs Homepage /R:1 /W:1 /NFL /NDL /NJH /NJS | Out-Null - Log " copied $($d.Src)" - } - } - - # manifest - [pscustomobject]@{ - Computer=$env:COMPUTERNAME; Timestamp=(Get-Date -Format o) - Vendor=$vendor; Version=$ver; InstallDir=$inst.InstallDir - ControllerInterface=$controllerInfo - } | ConvertTo-Json -Depth 4 | Out-File "$stage\manifest.json" -Encoding ascii - - # zip - $zip = Join-Path $OutDir "pcdmis_backup_${env:COMPUTERNAME}_${ver}_$ts.zip" - if (Test-Path $zip) { Remove-Item $zip -Force } - Add-Type -AssemblyName System.IO.Compression.FileSystem - [System.IO.Compression.ZipFile]::CreateFromDirectory($stage,$zip) - Remove-Item $stage -Recurse -Force -ErrorAction SilentlyContinue - Log "==== DONE: $zip ====" - return $zip -} - -Log "PC-DMIS backup on $env:COMPUTERNAME at $(Get-Date)" -$installs = Get-PCDMISInstalls | Where-Object { $_.Version -match '^\d' } | Sort-Object Version -Unique -if ($Version) { $installs = $installs | Where-Object { $_.Version -eq $Version } } -if (-not $installs) { Log "No PC-DMIS installs detected (Hexagon/Wai). Nothing to back up."; return } - -$made = @() -foreach ($inst in $installs) { $made += (Backup-OneVersion $inst) } -Write-Host "" -Write-Host "PC-DMIS backups written:" -ForegroundColor Green -$made | ForEach-Object { Write-Host " $_" } diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-goCMMSettings.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-goCMMSettings.bat deleted file mode 100644 index 93b9c2b..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-goCMMSettings.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -REM Backup-goCMMSettings.bat - capture this bay's goCMM settings. -REM -REM Run on a LIVE legacy goCMM device, AS ADMINISTRATOR (reg export of HKLM + -REM read of C:\geaofi needs admin). Captures the registry pointers + the whole -REM Shared Data Directory (ApplicationSettings.xml = all 7 Settings tabs) into -REM one zip under C:\Logs\CMM\gocmm-backup\. -REM -REM Backup-goCMMSettings.bat (default output dir) -REM Backup-goCMMSettings.bat -OutDir D:\path - -setlocal -set "HERE=%~dp0" -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%Backup-goCMMSettings.ps1" %* -echo. -echo --------------------------------------------------------------- -echo Backup zip is under C:\Logs\CMM\gocmm-backup\ (gocmm_backup_*.zip) -echo --------------------------------------------------------------- -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-goCMMSettings.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-goCMMSettings.ps1 deleted file mode 100644 index d9d0d3d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-goCMMSettings.ps1 +++ /dev/null @@ -1,91 +0,0 @@ -<# -Backup-goCMMSettings.ps1 - -Capture a goCMM bay's COMPLETE settings into one zip. Run on a LIVE legacy -goCMM device. Mirrors Backup-FormtracepakSettings.ps1. - -goCMM stores settings in two places: - 1. Registry pointers: HKLM\SOFTWARE\WOW6432Node\General Electric\goCMM - Shared Data Directory, Selected Part Group, Installation Directory - 2. The Shared Data Directory (default C:\geaofi\) holds ApplicationSettings.xml - = the real content of ALL 7 Settings tabs: PC-DMIS, Quindos, Modus, - Machine Definition, User Input, Notifications, Part Groups. - -This zip captures both so a re-imaged bay can be restored to identical settings. - -Output: C:\Logs\CMM\gocmm-backup\gocmm_backup__.zip -Run as administrator (reg export of HKLM + read of the data dir). -#> -param( - [string]$OutDir = 'C:\Logs\CMM\gocmm-backup' -) -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -New-Item -ItemType Directory -Path $OutDir -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $OutDir "gocmm-backup-$ts.log" -function Log($m){ Write-Host $m; $m | Out-File -FilePath $log -Append } - -$stage = Join-Path $env:TEMP "gocmm-bk-$ts" -New-Item -ItemType Directory -Path $stage, "$stage\registry", "$stage\geaofi" -Force | Out-Null - -Log "==== goCMM backup on $env:COMPUTERNAME at $(Get-Date) ====" - -# --- Read the 3 registry pointers (32-bit / WOW6432Node view, as the 32-bit app sees them) --- -$sharedDir = 'C:\geaofi'; $partGroup = ''; $installDir = '' -try { - $base32 = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine','Registry32') - $k = $base32.OpenSubKey('SOFTWARE\General Electric\goCMM', $false) - if ($k) { - $sharedDir = ([string]$k.GetValue('Shared Data Directory','C:\geaofi')).TrimEnd('\') - $partGroup = [string]$k.GetValue('Selected Part Group','') - $installDir = [string]$k.GetValue('Installation Directory','') - $k.Close() - Log "Shared Data Directory = $sharedDir" - Log "Selected Part Group = $partGroup" - Log "Installation Directory= $installDir" - } else { Log "WARN: goCMM registry key not found - defaulting Shared Data Directory to $sharedDir" } -} catch { Log "WARN: reading goCMM registry failed: $($_.Exception.Message)" } - -# --- Export the registry key --- -reg export 'HKLM\SOFTWARE\WOW6432Node\General Electric\goCMM' "$stage\registry\goCMM.reg" /y 2>&1 | Out-Null -if (Test-Path "$stage\registry\goCMM.reg") { Log "Exported registry key" } else { Log "WARN: registry export produced no file" } - -# --- Copy the Shared Data Directory (skip transient LocalProgramCopies + logs) --- -if (Test-Path $sharedDir) { - robocopy $sharedDir "$stage\geaofi" /E /XD LocalProgramCopies logs /R:1 /W:1 /NFL /NDL /NJH /NJS | Out-Null - Log "Copied $sharedDir (excluded LocalProgramCopies, logs)" - if (Test-Path "$stage\geaofi\ApplicationSettings.xml") { - Log "ApplicationSettings.xml captured (PC-DMIS + all Settings tabs)" - } else { - Log "WARN: ApplicationSettings.xml NOT found under $sharedDir - settings tabs may be unconfigured" - } -} else { - Log "WARN: Shared Data Directory $sharedDir does not exist - only the registry key will be in this backup" -} - -# --- Manifest --- -$ver = '' -if ($installDir) { - $exe = Join-Path ($installDir.TrimEnd('\')) 'goCMM.exe' - if (Test-Path $exe) { $ver = (Get-Item $exe).VersionInfo.FileVersion } -} -[pscustomobject]@{ - Computer = $env:COMPUTERNAME - Timestamp = (Get-Date -Format o) - SharedDataDirectory = $sharedDir - SelectedPartGroup = $partGroup - InstallationDirectory = $installDir - goCMMVersion = $ver -} | ConvertTo-Json | Out-File "$stage\manifest.json" -Encoding ascii - -# --- Zip --- -$zip = Join-Path $OutDir "gocmm_backup_${env:COMPUTERNAME}_$ts.zip" -if (Test-Path $zip) { Remove-Item $zip -Force } -Add-Type -AssemblyName System.IO.Compression.FileSystem -[System.IO.Compression.ZipFile]::CreateFromDirectory($stage, $zip) -Remove-Item $stage -Recurse -Force -ErrorAction SilentlyContinue - -Log "==== DONE: $zip ====" -Write-Host "" -Write-Host "goCMM backup written:" -ForegroundColor Green -Write-Host " $zip" diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Clear-PCDMISRecent.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Clear-PCDMISRecent.bat deleted file mode 100644 index 5a3c919..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Clear-PCDMISRecent.bat +++ /dev/null @@ -1,23 +0,0 @@ -@echo off -REM Clear-PCDMISRecent.bat - fix the PC-DMIS startup crash (NullReferenceException -REM in RecentExecutedItem.LoadRealNode) caused by a stale Homepage "Recent -REM Executed Files" list pointing at routine paths that don't resolve on this bay. -REM -REM Deletes the Recent (and Favorites) Homepage state for every user + PC-DMIS -REM version; PC-DMIS rebuilds an empty list on next launch. -REM -REM Run AS ADMINISTRATOR. -REM -REM Clear-PCDMISRecent.bat (all users, Recent + Favorites) -REM Clear-PCDMISRecent.bat -RecentOnly (keep Favorites) -REM Clear-PCDMISRecent.bat -User ShopFloor - -setlocal -set "HERE=%~dp0" -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%Clear-PCDMISRecent.ps1" %* -echo. -echo --------------------------------------------------------------- -echo Done. Relaunch PC-DMIS - the recent-list crash should be gone. -echo Log: C:\Logs\CMM\pcdmis-clearrecent-*.log -echo --------------------------------------------------------------- -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Clear-PCDMISRecent.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Clear-PCDMISRecent.ps1 deleted file mode 100644 index 04c76b8..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Clear-PCDMISRecent.ps1 +++ /dev/null @@ -1,75 +0,0 @@ -<# -Clear-PCDMISRecent.ps1 - -Fixes the PC-DMIS startup crash: - System.NullReferenceException - at Adapter.Service.Recent.Models.RecentExecutedItem.LoadRealNode() - at Adapter.Service.Recent.Models.RecentExecutedFiles.LoadAllWhenReady() - -Cause: the Homepage "Recent Executed Files" list contains absolute routine -paths (S:\..., C:\geaofi\LocalProgramCopies\...). When a path does not resolve -in the running user's context (drive not visible, cache not yet rebuilt, file -gone), PC-DMIS dereferences a null while async-loading the list and crashes on -launch. A list carried over from another bay (e.g. a settings restore) is the -common trigger. - -Fix: delete the Recent (and Favorites) Homepage state for every user profile -and every PC-DMIS version. PC-DMIS rebuilds an empty list on next start. - -Run as ADMINISTRATOR (to reach all user profiles). -Output: C:\Logs\CMM\pcdmis-clearrecent--.log - -Params: - -RecentOnly only clear the Recent list, keep Favorites - -User only this user's profile (default: all profiles) -#> -param( - [switch]$RecentOnly, - [string]$User -) -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$dir = 'C:\Logs\CMM' -New-Item -ItemType Directory -Path $dir -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $dir "pcdmis-clearrecent-$env:COMPUTERNAME-$ts.log" -function Log($m){ Write-Host $m; $m | Out-File -FilePath $log -Append } - -Log "==== Clear PC-DMIS Recent/Favorites on $env:COMPUTERNAME at $(Get-Date) ====" - -# which user profiles -$userDirs = @() -if ($User) { - if (Test-Path "C:\Users\$User") { $userDirs += "C:\Users\$User" } else { Log "User profile C:\Users\$User not found" } -} else { - $userDirs = (Get-ChildItem 'C:\Users' -Directory -ErrorAction SilentlyContinue).FullName -} - -$targets = @('Homepage\Recent\RecentExecutedFiles.xml') -if (-not $RecentOnly) { $targets += 'Homepage\Favorites\Favorites.xml' } - -$deleted = 0; $scanned = 0 -foreach ($u in $userDirs) { - foreach ($vendor in 'Hexagon','WAI') { - $base = Join-Path $u "AppData\Local\$vendor\PC-DMIS" - if (-not (Test-Path $base)) { continue } - foreach ($vdir in (Get-ChildItem $base -Directory -ErrorAction SilentlyContinue)) { - $scanned++ - foreach ($rel in $targets) { - $f = Join-Path $vdir.FullName $rel - if (Test-Path $f) { - try { Remove-Item $f -Force -ErrorAction Stop; $deleted++ - Log " DELETED $f" - } catch { Log " FAILED $f : $($_.Exception.Message)" } - } - } - } - } -} - -Log "" -Log "Scanned $scanned PC-DMIS version folder(s) across $($userDirs.Count) profile(s); deleted $deleted file(s)." -Log "PC-DMIS will rebuild an empty recent list on next launch." -Write-Host "" -if ($deleted -gt 0) { Write-Host "Cleared $deleted stale Homepage file(s). Relaunch PC-DMIS - the crash should be gone." -ForegroundColor Green } -else { Write-Host "Nothing to clear (no RecentExecutedFiles.xml found). If it still crashes, the cause is elsewhere - grab the event log." -ForegroundColor Yellow } -Log "Log: $log" diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Convert-goCMMSettings.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Convert-goCMMSettings.ps1 deleted file mode 100644 index 07b8e13..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Convert-goCMMSettings.ps1 +++ /dev/null @@ -1,195 +0,0 @@ -<# -Convert-goCMMSettings.ps1 - -Convert a legacy goCMM 1.1 ApplicationSettings.xml (C:\geaofi\) to the goCMM -2.12.3 goCMMSettings.xml schema. - -The two are different SettingsModel schemas (different filename too). This is a -TEMPLATE-based converter: new-only fields get defaults, the per-bay values are -carried over from the old XML (+ optional overrides). Decisions baked in -(2026-06-19): access-control left blank, operator key normalized to "Operator", -cal intervals/restart use template defaults (old values NOT carried), Slack/Andon -/Quindos/Emx dropped. - -Program paths default to the goCMM 2.12 convention (C:\geaofi\goCMM PC-DMIS -Programs\) - override with -ResetProgram / -ProbeCalibrationProgram if the .PRG -files live elsewhere. Those .PRG files MUST exist at the path written here. - -Usage: - .\Convert-goCMMSettings.ps1 -OldXml C:\geaofi\ApplicationSettings.xml ` - -OutFile C:\geaofi\goCMMSettings.xml -PcdmisVersion 2016 -CmmId CMM10 -#> -param( - [Parameter(Mandatory=$true)][string]$OldXml, - [Parameter(Mandatory=$true)][string]$OutFile, - [string]$PcdmisVersion, # 2016 | 2019 | 2026 (or full "PC-DMIS ... 64-bit") - [string]$CmmId, # e.g. CMM10 - used for the cal-program name default - [string]$PartGroup, # optional override (friendly S:\ or UNC); else from old XML - [string]$ResetProgram, # optional override - [string]$ProbeCalibrationProgram # optional override -) -$ErrorActionPreference = 'Stop' - -if (-not (Test-Path -LiteralPath $OldXml)) { throw "Old XML not found: $OldXml" } -[xml]$old = Get-Content -LiteralPath $OldXml -Raw - -# --- part-group share canonicalization (FQDN + \SHARED, matches goCMM 2.12) --- -function Canon([string]$pg) { - if (-not $pg) { return $pg } - $pg = $pg -replace '(?i)^S:\\', '\\tsgwp00525.wjs.geaerospace.net\SHARED\' - $pg = [regex]::Replace($pg, '(?i)\\\\tsgwp00525(?:\.[A-Za-z0-9.\-]+)?\\shared(?=\\|$)', '\\tsgwp00525.wjs.geaerospace.net\SHARED') - return $pg -} - -# --- resolve per-bay values (override -> old XML -> default) --- -# NOTE: read attributes with GetAttribute() - .Name collides with XmlElement.Name. -$pg = $PartGroup -if (-not $pg) { - $pgNode = $old.SettingsModel.PartGroups.PartGroup - if ($pgNode) { $pg = $pgNode.GetAttribute('FullName'); if (-not $pg) { $pg = $pgNode.FullName } } -} -$pg = Canon $pg - -# NB: PowerShell vars are case-insensitive - do NOT name this $cmmid (collides with the $CmmId param). -$machineCmmId = $old.SettingsModel.MachineDefinition.CMMID -if (-not $machineCmmId -and $CmmId) { $machineCmmId = "WJRP/$CmmId" } - -# SelectedVersionString from -PcdmisVersion -$verMap = @{ '2016' = 'PC-DMIS 2016.0 64-bit'; '2019' = 'PC-DMIS 2019 R2 64-bit'; '2026' = 'PC-DMIS 2026.1 64-bit' } -$selVer = '' -if ($PcdmisVersion) { $selVer = if ($verMap.ContainsKey($PcdmisVersion)) { $verMap[$PcdmisVersion] } else { $PcdmisVersion } } - -# bool carryovers (old flat flags -> new IsEnabled) -function OldBool($node, $default='false') { $v = $node; if ($null -eq $v -or $v -eq '') { $default } else { ([string]$v).ToLower() } } -$pcdmisEnabled = OldBool $old.SettingsModel.UsingPcDmis 'true' -$modusEnabled = OldBool $old.SettingsModel.UsingModus 'false' -$winState = if ($old.SettingsModel.DefaultWindowState) { $old.SettingsModel.DefaultWindowState } else { 'Maximized' } -$allowSel = OldBool $old.SettingsModel.AllowOperationProgramSelection 'true' -$visExec = OldBool $old.SettingsModel.PcDmisSettings.VisibleDuringExecution 'true' -$cmmMode = if ($old.SettingsModel.PcDmisSettings.CMMMode) { $old.SettingsModel.PcDmisSettings.CMMMode } else { 'Online' } -$sizeTol = if ($old.SettingsModel.MachineDefinition.ProbeCalSizeTol) { $old.SettingsModel.MachineDefinition.ProbeCalSizeTol } else { '0.0005' } -$formTol = if ($old.SettingsModel.MachineDefinition.ProbeCalFormTol) { $old.SettingsModel.MachineDefinition.ProbeCalFormTol } else { '0.0005' } -$hasRotary = OldBool $old.SettingsModel.MachineDefinition.MachineHasRotaryTable 'false' - -# program paths (override -> goCMM 2.12 convention default) -$progDir = 'C:\geaofi\goCMM PC-DMIS Programs' -if (-not $ResetProgram) { $ResetProgram = "$progDir\MachineResetProgram.prg" } -if (-not $ProbeCalibrationProgram) { - $calName = if ($CmmId) { "${CmmId}_Cal_All_Probes_rev2.PRG" } else { 'Cal_All_Probes_rev2.PRG' } - $ProbeCalibrationProgram = "$progDir\$calName" -} - -# --- operator inputs (old KeyLabel + NonTBIInputs -> new OperatorInput; OPER -> Operator) --- -$inputs = @() -$kl = $old.SettingsModel.OperatorInputs.KeyLabel -if ($kl) { $inputs += [pscustomobject]@{ Key = $kl.GetAttribute('Name'); Display = $kl.GetAttribute('Display') } } -foreach ($oi in $old.SettingsModel.OperatorInputs.NonTBIInputs.OperatorInput) { - if ($oi -is [System.Xml.XmlElement]) { $inputs += [pscustomobject]@{ Key = $oi.GetAttribute('Name'); Display = $oi.GetAttribute('Display') } } -} -if (-not $inputs) { - $inputs = @([pscustomobject]@{Key='SERNO';Display='Serial Number'}, [pscustomobject]@{Key='Operator';Display='Operator'}) -} -$opXml = ($inputs | ForEach-Object { - $k = if ($_.Key -ieq 'OPER') { 'Operator' } else { $_.Key } # decision #4 - $d = if ($_.Key -ieq 'OPER') { 'Operator' } else { $_.Display } - " `n $k`n $d`n `n " -}) -join "`n" - -function X([string]$s){ [System.Security.SecurityElement]::Escape($s) } - -$xml = @" - - - true - PCDMIS - - - $(X $pg) - - - - -$opXml - - false - $(X $winState) - $allowSel - - - $pcdmisEnabled - $visExec - $(X $ResetProgram) - - false - false - $(X $ProbeCalibrationProgram) - - - - false - false - 1000 - true - ProgramCount - false - $(X $selVer) - 5 - 5 - 0 - false - false - - - - - $modusEnabled - true - - - false - false - - - - - -Organiser - - - $(X $machineCmmId) - - - false - $sizeTol - $formTol - - 72 - 0 - - - 24 - 0 - - $hasRotary - false - $(X $cmmMode) - - - - - - - -"@ - -$dir = Split-Path -Parent $OutFile -if ($dir -and -not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null } -# validate well-formed before writing -[void][xml]$xml -Set-Content -LiteralPath $OutFile -Value $xml -Encoding UTF8 -Write-Host "Wrote $OutFile" -Write-Host " PartGroup = $pg" -Write-Host " CMMID = $machineCmmId" -Write-Host " SelectedVersion = $selVer" -Write-Host " ResetProgram = $ResetProgram" -Write-Host " ProbeCalProgram = $ProbeCalibrationProgram" -Write-Host "NOTE: confirm those .PRG files exist at the paths above (-ResetProgram / -ProbeCalibrationProgram to override)." diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Ensure-PCDMISFrontEnd.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Ensure-PCDMISFrontEnd.bat deleted file mode 100644 index fdb42da..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Ensure-PCDMISFrontEnd.bat +++ /dev/null @@ -1,21 +0,0 @@ -@echo off -REM Ensure-PCDMISFrontEnd.bat - launcher for Ensure-PCDMISFrontEnd.ps1 -REM -REM Creates C:\GE PC-DMIS FRONT END + grants the operator write access, so -REM PCDToIGES.exe can write its error log there instead of crashing with -REM "Could not find a part of the path 'C:\GE PC-DMIS FRONT END\PCDToIGES.ERR'". -REM -REM Needs admin - self-elevates. - -net session >nul 2>&1 -if %errorlevel% neq 0 ( - echo Requesting administrator rights... - powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs" - exit /b -) - -set "HERE=%~dp0" -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%Ensure-PCDMISFrontEnd.ps1" - -echo. -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Ensure-PCDMISFrontEnd.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Ensure-PCDMISFrontEnd.ps1 deleted file mode 100644 index d959aa6..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Ensure-PCDMISFrontEnd.ps1 +++ /dev/null @@ -1,47 +0,0 @@ -# Ensure-PCDMISFrontEnd.ps1 - create C:\GE PC-DMIS FRONT END + grant operator write. -# -# WHY: PCDToIGES.exe (geaofi\Scripts) writes its error log to -# C:\GE PC-DMIS FRONT END\PCDToIGES.ERR in its catch block. If that dir does -# not exist, ANY PCDToIGES failure becomes an unhandled DirectoryNotFoundException -# that CRASHES the export and MASKS the real error (observed on freshly imaged CMM -# bays - the legacy "GE PC-DMIS FRONT END" front-end setup is not part of imaging, -# so the dir is absent). Creating it + making it operator-writable lets the real -# error log instead of crashing, and gives the front-end a working dir. -# -# Run as administrator. Idempotent - safe to re-run; re-asserts the ACL. - -$ErrorActionPreference = 'Continue' -$dir = 'C:\GE PC-DMIS FRONT END' - -$logDir = 'C:\Logs\CMM' -New-Item -ItemType Directory -Path $logDir -Force -EA SilentlyContinue | Out-Null -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$log = Join-Path $logDir "pcdmis-frontend-$ts.log" -function Log($m){ $line = "[{0}] {1}" -f (Get-Date -Format 'HH:mm:ss'), $m; Write-Host $line; Add-Content -Path $log -Value $line -EA SilentlyContinue } - -Log "==== Ensure-PCDMISFrontEnd on $env:COMPUTERNAME ====" - -if (Test-Path -LiteralPath $dir) { - Log "Dir already exists: $dir" -} else { - try { New-Item -ItemType Directory -Path $dir -Force -EA Stop | Out-Null; Log "Created $dir" } - catch { Log "ERROR: could not create $dir - $($_.Exception.Message)"; exit 1 } -} - -# Operator (locked-down, non-admin) must be able to write PCDToIGES.ERR here. -# Modify = read/write/create/delete. SIDs, not names, to stay locale-independent. -foreach ($sid in '*S-1-5-32-545','*S-1-5-11') { # BUILTIN\Users, NT AUTHORITY\Authenticated Users - & icacls "$dir" /grant "${sid}:(OI)(CI)M" /T /C 2>&1 | Out-Null -} -Log "Granted Users + Authenticated Users Modify on $dir" - -# Verify an operator-style write works -$probe = Join-Path $dir '.write-test' -try { Set-Content -LiteralPath $probe -Value 'ok' -EA Stop; Remove-Item -LiteralPath $probe -EA SilentlyContinue; Log "Write-test OK" } -catch { Log "WARN: write-test failed - $($_.Exception.Message)" } - -Log "==== DONE ====" -Write-Host "" -Write-Host "C:\GE PC-DMIS FRONT END ready. Re-run the measurement; if PCDToIGES still" -ForegroundColor Green -Write-Host "errors, the real cause now logs to $dir\PCDToIGES.ERR" -ForegroundColor Green -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Export-PCDMISCrashEvents.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Export-PCDMISCrashEvents.bat deleted file mode 100644 index 751b612..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Export-PCDMISCrashEvents.bat +++ /dev/null @@ -1,21 +0,0 @@ -@echo off -REM Export-PCDMISCrashEvents.bat - pull the Windows event-log entries that -REM explain the PC-DMIS crash (the full .NET exception + stack, which the -REM crash minidump does NOT contain). -REM -REM Run AS ADMINISTRATOR on the bay that crashed, soon after the crash. -REM -REM Export-PCDMISCrashEvents.bat (last 72 hours) -REM Export-PCDMISCrashEvents.bat -Hours 12 (narrower window) -REM -REM Output: C:\Logs\CMM\pcdmis-crash-events--.txt -REM Send that file back - the first .NET Runtime (ID 1026) event is the answer. - -setlocal -set "HERE=%~dp0" -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%Export-PCDMISCrashEvents.ps1" %* -echo. -echo --------------------------------------------------------------- -echo Wrote C:\Logs\CMM\pcdmis-crash-events-*.txt - send it back. -echo --------------------------------------------------------------- -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Export-PCDMISCrashEvents.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Export-PCDMISCrashEvents.ps1 deleted file mode 100644 index 3cf4ac3..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Export-PCDMISCrashEvents.ps1 +++ /dev/null @@ -1,77 +0,0 @@ -<# -Export-PCDMISCrashEvents.ps1 - -Pull the Windows event-log entries that explain a PC-DMIS crash. The crash -minidump has no symbols, but Windows logs the full .NET exception (type + -message + stack) in the Application log. This grabs those. - -Run as administrator on the bay that crashed, soon after the crash. - -Collects from the Application log (default last 72 hours): - - Event ID 1026 (.NET Runtime) <- the FULL managed exception + stack - - Event ID 1000 (Application Error) <- faulting module/offset for PCDLRN.exe - - Event ID 1001 (Windows Error Reporting) <- crash bucket / report path - -Output: C:\Logs\CMM\pcdmis-crash-events--.txt - -Params: - -Hours look-back window in hours (default 72) -#> -param( - [int]$Hours = 72, - [string]$OutDir = 'C:\Logs\CMM' -) -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -New-Item -ItemType Directory -Path $OutDir -Force -ErrorAction SilentlyContinue | Out-Null -$out = Join-Path $OutDir "pcdmis-crash-events-$env:COMPUTERNAME-$ts.txt" -function W($m){ $m | Out-File -FilePath $out -Append -Encoding utf8 } - -$since = (Get-Date).AddHours(-$Hours) -W "==== PC-DMIS crash events on $env:COMPUTERNAME ====" -W "Generated : $(Get-Date)" -W "Window : since $since (last $Hours h)" -W "" - -# Pull the candidate events -$events = @() -try { - $events = Get-WinEvent -FilterHashtable @{ LogName='Application'; Id=1000,1001,1026; StartTime=$since } -ErrorAction SilentlyContinue -} catch { W "Get-WinEvent failed: $($_.Exception.Message)" } - -if (-not $events) { W "No Application 1000/1001/1026 events in the window."; W "Widen with -Hours, or the crash logged elsewhere."; Write-Host "Wrote $out"; return } - -# Most relevant first: anything mentioning PCDLRN / PC-DMIS / a .NET exception -$relevant = $events | Where-Object { $_.Message -match 'PCDLRN|PC-DMIS|Hexagon|\.NET|System\.[A-Za-z.]+Exception|Qdas|QDAS|Report|Blade' } - -W "================ RELEVANT (PC-DMIS / .NET) - $($relevant.Count) event(s) ================" -foreach ($e in ($relevant | Sort-Object TimeCreated -Descending)) { - W "-------------------------------------------------------------" - W ("Time : {0}" -f $e.TimeCreated) - W ("EventID : {0} Provider: {1} Level: {2}" -f $e.Id, $e.ProviderName, $e.LevelDisplayName) - W "Message :" - W ($e.Message) - W "" -} - -W "" -W "================ ALL 1000/1001/1026 in window ($($events.Count)) - summary ================" -$events | Sort-Object TimeCreated -Descending | ForEach-Object { - $firstLine = ($_.Message -split "`r?`n" | Where-Object { $_.Trim() } | Select-Object -First 1) - W ("{0} ID={1,-4} {2,-26} {3}" -f $_.TimeCreated, $_.Id, $_.ProviderName, $firstLine) -} - -# Also note where PC-DMIS drops its own crash zips (CrashRpt) -W "" -W "================ PC-DMIS CrashRpt zips on disk ================" -foreach ($d in "$env:LOCALAPPDATA\CrashRpt","$env:TEMP","$env:ProgramData\Hexagon") { - if (Test-Path $d) { - Get-ChildItem $d -Recurse -Filter '*.zip' -ErrorAction SilentlyContinue | - Where-Object { $_.LastWriteTime -gt $since } | - ForEach-Object { W (" {0} {1}" -f $_.LastWriteTime, $_.FullName) } - } -} - -Write-Host "" -Write-Host "Wrote: $out" -ForegroundColor Green -Write-Host "Open it and look at the first RELEVANT 1026 (.NET Runtime) event - that has the exact exception + stack." diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Grant-FullControl.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Grant-FullControl.ps1 deleted file mode 100755 index 251ddbe..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Grant-FullControl.ps1 +++ /dev/null @@ -1,10 +0,0 @@ -$Folders = @( - "C:\Apps\" - "C:\BladeRunner" - "C:\Users\Public" - "C:\Program Files\Hexagon" - "C:\ProgramData\Hexagon" -) -foreach ($Folder in $Folders) { - icacls $Folder /grant "*S-1-5-32-545:(OI)(CI)F" /T -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-PCDMISSettings.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-PCDMISSettings.bat deleted file mode 100644 index 97400e9..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-PCDMISSettings.bat +++ /dev/null @@ -1,32 +0,0 @@ -@echo off -REM Install-PCDMISSettings.bat - restore a PC-DMIS backup (SAME version). -REM -REM Run AS ADMINISTRATOR / at imaging. Imports the registry hive + data/probe -REM files, grants the operator write on the data dir, and auto-applies the -REM legacy->new FQDN rewrite (rd.ds.ge.com -> wjs.geaerospace.net). -REM -REM Install-PCDMISSettings.bat "" -REM Install-PCDMISSettings.bat "" /replace -REM -REM CROSS-VERSION upgrade (e.g. 2016 backup -> 2026 bay): do NOT use this - -REM use the 2026 Settings Editor IMPORT feature, which remaps the older layout. -REM This script does a verbatim same-version restore. - -setlocal -set "HERE=%~dp0" -if "%~1"=="" ( - echo Usage: %~nx0 "^" [/replace ^ ^] - pause - exit /b 1 -) -set "ZIP=%~1" -set "PS=powershell.exe -NoProfile -ExecutionPolicy Bypass -File ""%HERE%Install-PCDMISSettings.ps1"" -BackupPath ""%ZIP%""" - -if /i "%~2"=="/replace" ( - if "%~4"=="" ( echo /replace needs ^ ^ & pause & exit /b 1 ) - %PS% -ReplaceFrom "%~3" -ReplaceTo "%~4" -) else ( - %PS% -) -echo. -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-PCDMISSettings.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-PCDMISSettings.ps1 deleted file mode 100644 index f6f87a3..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-PCDMISSettings.ps1 +++ /dev/null @@ -1,194 +0,0 @@ -<# -Install-PCDMISSettings.ps1 - -Restore a PC-DMIS settings/probe backup made by Backup-PCDMISSettings.ps1. -Imports the registry hive + lays the install/ProgramData/Public/AppData files -back, grants the operator write on the ProgramData data dir (so custom probes -can be saved under lockdown), and auto-applies the legacy->new FQDN rewrite. - -SAME-VERSION restore only (e.g. 2026.1 backup -> 2026.1 bay). To migrate a bay -to a NEWER PC-DMIS (e.g. 2016 -> 2026), use the 2026 Settings Editor's IMPORT -feature instead - it remaps the older registry/data layout. This script does a -verbatim restore and does not remap versions. - -Run as administrator / at imaging. - -Params: - -BackupPath required - -ReplaceFrom/-ReplaceTo extra find/replace pair (case-insensitive) - -NoDefaultRewrite skip the built-in legacy->new FQDN swaps -#> -param( - [Parameter(Mandatory=$true)][string]$BackupPath, - [string]$TargetUser = 'ShopFloor', # account that RUNS PC-DMIS; HKCU settings (probe search paths) land in ITS hive - [string]$ReplaceFrom, - [string]$ReplaceTo, - [switch]$NoDefaultRewrite -) - -# Built-in FQDN migration (same as the goCMM restore). Add pairs as domains retire. -$DefaultRewrites = @( - @{ From = 'rd.ds.ge.com'; To = 'wjs.geaerospace.net' } -) - -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$logDir = 'C:\Logs\CMM' -New-Item -ItemType Directory -Path $logDir -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $logDir "pcdmis-restore-$ts.log" -function Log($m){ Write-Host $m; $m | Out-File -FilePath $log -Append } - -Log "==== PC-DMIS restore on $env:COMPUTERNAME from $BackupPath ====" - -# resolve backup to a dir -$src = $BackupPath; $extracted = $false -if ($BackupPath -match '\.zip$') { - $src = Join-Path $env:TEMP "pcd-rs-$ts" - Add-Type -AssemblyName System.IO.Compression.FileSystem - [System.IO.Compression.ZipFile]::ExtractToDirectory($BackupPath, $src); $extracted = $true -} -if (-not (Test-Path $src)) { Log "ERROR: backup path not found: $src"; exit 1 } - -# If pointed at a FOLDER that merely contains the backup zip (common mistake), use the zip -if ((Test-Path $src -PathType Container) -and -not (Test-Path (Join-Path $src 'manifest.json'))) { - $z = Get-ChildItem $src -Filter 'pcdmis_backup_*.zip' -File -ErrorAction SilentlyContinue | Sort-Object LastWriteTime | Select-Object -Last 1 - if ($z) { - Log "BackupPath was a folder; using the zip inside it: $($z.Name)" - $src = Join-Path $env:TEMP "pcd-rs-$ts" - Add-Type -AssemblyName System.IO.Compression.FileSystem - [System.IO.Compression.ZipFile]::ExtractToDirectory($z.FullName, $src); $extracted = $true - } -} - -# manifest -$vendor='Hexagon'; $ver=''; $installDir='' -$mani = Join-Path $src 'manifest.json' -if (Test-Path $mani) { - try { $m = Get-Content $mani -Raw | ConvertFrom-Json - $vendor=$m.Vendor; $ver=$m.Version; $installDir=$m.InstallDir - Log "manifest: $vendor PC-DMIS $ver install=$installDir" } catch { Log "WARN: manifest parse: $($_.Exception.Message)" } -} - -# Fail LOUD if this isn't actually a PC-DMIS backup (don't silently "succeed") -$regDir = Join-Path $src 'registry' -$haveReg = (Test-Path $regDir) -and @(Get-ChildItem $regDir -Filter '*.reg' -ErrorAction SilentlyContinue).Count -gt 0 -if (-not (Test-Path $mani) -and -not $haveReg) { - Log "ERROR: '$BackupPath' is not a PC-DMIS backup - no manifest.json and no registry\*.reg found." - Log " Point -BackupPath at the pcdmis_backup___.zip file (or its extracted folder), NOT a parent dir like the Desktop." - exit 1 -} -if (-not $ver) { Log "ERROR: manifest has no Version - cannot place per-version data. Aborting (bad/empty backup)."; exit 1 } - -# --- resolve the target user's hive so HKCU settings (probe search paths) land in ITS profile --- -$targetHiveReg = $null; $unloadHive = $false -if ($TargetUser) { - $tsid = $null - try { $tsid = (New-Object System.Security.Principal.NTAccount($TargetUser)).Translate([System.Security.Principal.SecurityIdentifier]).Value } catch {} - if ($tsid -and (Test-Path "Registry::HKEY_USERS\$tsid")) { - $targetHiveReg = "HKEY_USERS\$tsid"; Log "Target user $TargetUser is logged in - HKCU settings -> $targetHiveReg" - } else { - $ntuser = "C:\Users\$TargetUser\NTUSER.DAT" - if (Test-Path $ntuser) { - reg load "HKU\PCDTGT" "$ntuser" 2>&1 | Out-Null - if (Test-Path 'Registry::HKEY_USERS\PCDTGT') { $targetHiveReg = 'HKEY_USERS\PCDTGT'; $unloadHive = $true; Log "Loaded $TargetUser NTUSER.DAT - HKCU settings -> $targetHiveReg" } - else { Log "WARN: failed to load $ntuser - HKCU settings will go to the CURRENT user, not $TargetUser" } - } else { Log "WARN: $ntuser not found ($TargetUser may not have logged in yet) - HKCU settings go to CURRENT user" } - } -} - -# registry import - HKCU files routed into the target user's hive when resolved -Get-ChildItem $regDir -Filter '*.reg' -ErrorAction SilentlyContinue | ForEach-Object { - $f = $_.FullName; $n = $_.Name - if (($n -like 'HKCU-*') -and $targetHiveReg) { - $txt = [System.IO.File]::ReadAllText($f) -replace 'HKEY_CURRENT_USER', $targetHiveReg - $tmp = Join-Path $env:TEMP "tgt-$n" - [System.IO.File]::WriteAllText($tmp, $txt, [System.Text.Encoding]::Unicode) - reg import $tmp 2>&1 | Out-Null; Remove-Item $tmp -Force -ErrorAction SilentlyContinue - Log " reg import $n -> $TargetUser ($targetHiveReg)" - } else { - reg import $f 2>&1 | Out-Null; Log " reg import $n" - } -} - -# install-dir files back -$instSrc = Join-Path $src 'install' -if ((Test-Path $instSrc) -and $installDir) { - if (-not (Test-Path $installDir)) { Log "WARN: install dir $installDir absent - skipping install-file restore" } - else { robocopy $instSrc $installDir /E /R:1 /W:1 /NFL /NDL /NJH /NJS | Out-Null; Log " restored install-dir probe/cal files -> $installDir" } -} - -# data folders back -$dataMap = @( - @{ Src=(Join-Path $src 'ProgramData'); Dst="$env:ProgramData\$vendor\PC-DMIS\$ver" }, - @{ Src=(Join-Path $src 'PublicDocs'); Dst="$env:PUBLIC\Documents\$vendor\PC-DMIS\$ver" }, - @{ Src=(Join-Path $src 'AppData\Roaming'); Dst="$env:APPDATA\$vendor\PC-DMIS\$ver" }, - @{ Src=(Join-Path $src 'AppData\Local'); Dst="$env:LOCALAPPDATA\$vendor\PC-DMIS\$ver" } -) -foreach ($d in $dataMap) { - if (Test-Path $d.Src) { - New-Item -ItemType Directory -Path $d.Dst -Force -EA SilentlyContinue | Out-Null - # /XD Homepage: never restore the Homepage start-screen state (Recent, - # Favorites, DetailsView - absolute S:\ / C:\geaofi paths) - it null-refs - # PC-DMIS on launch. Also protects against OLD backups that still contain it. - robocopy $d.Src $d.Dst /E /XD Homepage /R:1 /W:1 /NFL /NDL /NJH /NJS | Out-Null - Log " restored -> $($d.Dst)" - } -} - -# Defensive: strip any pre-existing Homepage recent/favorites in BOTH the running -# user's and the target user's profile, so a stale list can't crash PC-DMIS. -$profiles = @($env:LOCALAPPDATA) -if ($TargetUser -and (Test-Path "C:\Users\$TargetUser\AppData\Local")) { $profiles += "C:\Users\$TargetUser\AppData\Local" } -foreach ($la in ($profiles | Sort-Object -Unique)) { - foreach ($f in "$la\$vendor\PC-DMIS\$ver\Homepage\Recent\RecentExecutedFiles.xml", - "$la\$vendor\PC-DMIS\$ver\Homepage\Favorites\Favorites.xml") { - if (Test-Path $f) { Remove-Item $f -Force -ErrorAction SilentlyContinue; Log " cleared stale Homepage state: $f" } - } -} - -# grant operator Modify on the ProgramData data dir (save custom probes under lockdown) -$pdDir = "$env:ProgramData\$vendor\PC-DMIS\$ver" -if (Test-Path $pdDir) { & icacls $pdDir /grant 'BUILTIN\Users:(OI)(CI)M' /T /C 2>&1 | Out-Null; Log " granted BUILTIN\Users Modify on $pdDir" } - -# --- find/replace (default legacy->new FQDN + optional extra) across reg values + data files --- -$rewrites = @() -if (-not $NoDefaultRewrite) { $rewrites += $DefaultRewrites } -if ($ReplaceFrom -and $ReplaceTo) { $rewrites += @{ From=$ReplaceFrom; To=$ReplaceTo } } -if ($rewrites.Count -gt 0) { - $utf8 = New-Object System.Text.UTF8Encoding($false) - $regKeys = @("HKLM:\SOFTWARE\WOW6432Node\$vendor\PC-DMIS\$ver","HKCU:\SOFTWARE\$vendor\PC-DMIS\$ver") - if ($targetHiveReg) { $regKeys += "Registry::$targetHiveReg\SOFTWARE\$vendor\PC-DMIS\$ver" } # also the ShopFloor hive we imported into - $fileDirs = @($pdDir, "$env:PUBLIC\Documents\$vendor\PC-DMIS\$ver", "$env:APPDATA\$vendor\PC-DMIS\$ver", $installDir) | Where-Object { $_ -and (Test-Path $_) } - foreach ($rw in $rewrites) { - $from=$rw.From; $to=$rw.To; if (-not $from) { continue } - Log "Find/replace: '$from' -> '$to' (case-insensitive)" - $rx = [regex]::Escape($from) - foreach ($rk in $regKeys) { - if (-not (Test-Path $rk)) { continue } - Get-ChildItem $rk -Recurse -ErrorAction SilentlyContinue | ForEach-Object { - $props = Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue - if (-not $props) { return } - foreach ($p in $props.PSObject.Properties) { - if ($p.Name -like 'PS*') { continue } - if (($p.Value -is [string]) -and [regex]::IsMatch($p.Value,$rx,'IgnoreCase')) { - Set-ItemProperty $_.PSPath -Name $p.Name -Value ([regex]::Replace($p.Value,$rx,$to,'IgnoreCase')) - Log " reg [$($p.Name)]" - } - } - } - } - foreach ($fd in $fileDirs) { - Get-ChildItem $fd -Recurse -File -Include *.dat,*.prb,*.xml,*.txt,*.cfg,*.ini,*.bas -ErrorAction SilentlyContinue | ForEach-Object { - try { $c=[System.IO.File]::ReadAllText($_.FullName) - if ([regex]::IsMatch($c,$rx,'IgnoreCase')) { [System.IO.File]::WriteAllText($_.FullName,[regex]::Replace($c,$rx,$to,'IgnoreCase'),$utf8); Log " file [$($_.Name)]" } - } catch {} - } - } - } -} - -if ($unloadHive) { [gc]::Collect(); [gc]::WaitForPendingFinalizers(); Start-Sleep 1; reg unload 'HKU\PCDTGT' 2>&1 | Out-Null; Log "unloaded $TargetUser hive" } -if ($extracted) { Remove-Item $src -Recurse -Force -ErrorAction SilentlyContinue } -Log "==== DONE ====" -Write-Host "" -Write-Host "PC-DMIS restore complete ($vendor $ver). Log: $log" -ForegroundColor Green diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-goCMMSettings.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-goCMMSettings.bat deleted file mode 100644 index 06a663e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-goCMMSettings.bat +++ /dev/null @@ -1,40 +0,0 @@ -@echo off -REM Install-goCMMSettings.bat - restore goCMM settings from a backup zip. -REM -REM Run AS ADMINISTRATOR / at imaging. Imports the registry pointers + the -REM Shared Data Directory and grants the access goCMM needs under lockdown. -REM -REM Usage: -REM Install-goCMMSettings.bat "" -REM plain restore -REM Install-goCMMSettings.bat "" "\\server\SHARED\CMM\CMM7\Spool" -REM restore + override the Selected Part Group (per-bay) -REM Install-goCMMSettings.bat "" /replace -REM restore + find/replace -> across ALL registry values and -REM data files (e.g. legacy FQDN -> new FQDN). Swap the DOMAIN SUFFIX to -REM fix every host at once: -REM Install-goCMMSettings.bat "bk.zip" /replace rd.ds.ge.com wjs.geaerospace.net - -setlocal -set "HERE=%~dp0" -if "%~1"=="" ( - echo Usage: - echo %~nx0 "^" - echo %~nx0 "^" "^" - echo %~nx0 "^" /replace ^ ^ - pause - exit /b 1 -) -set "ZIP=%~1" -set "PS=powershell.exe -NoProfile -ExecutionPolicy Bypass -File ""%HERE%Install-goCMMSettings.ps1"" -BackupPath ""%ZIP%""" - -if /i "%~2"=="/replace" ( - if "%~4"=="" ( echo /replace needs ^ ^ & pause & exit /b 1 ) - %PS% -ReplaceFrom "%~3" -ReplaceTo "%~4" -) else if not "%~2"=="" ( - %PS% -SelectedPartGroup "%~2" -) else ( - %PS% -) -echo. -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-goCMMSettings.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-goCMMSettings.ps1 deleted file mode 100644 index a08cc09..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Install-goCMMSettings.ps1 +++ /dev/null @@ -1,248 +0,0 @@ -<# -Install-goCMMSettings.ps1 - -Restore a goCMM bay's settings from a zip produced by Backup-goCMMSettings.ps1. -Mirrors Install-FormtracepakSettings.ps1. - -Lays back both halves: - 1. Registry pointers -> HKLM\SOFTWARE\WOW6432Node\General Electric\goCMM - 2. Shared Data Directory (C:\geaofi\, incl ApplicationSettings.xml = all 7 - Settings tabs: PC-DMIS, Quindos, Modus, Machine Definition, User Input, - Notifications, Part Groups). - -Then grants the access goCMM needs so it works under lockdown: - - BUILTIN\Users ReadKey+WriteKey on the goCMM reg key. goCMM's - RegistrySettings.GetRegistryString opens that key with writable:true even - to READ, so a read-only operator hits a SecurityException without this. - - BUILTIN\Users Modify on the Shared Data Directory (goCMM writes - ApplicationSettings.xml back there when settings are saved). - -Run as administrator / SYSTEM (imaging context). If the lockdown pass strips -the registry ACE, re-run this (or just its ACL section) AFTER lockdown. - -NOTE: this restores goCMM only. PC-DMIS probe calibrations / custom tip angles / -machine comp are owned by PC-DMIS (Hexagon) and are NOT in this backup. -#> -param( - [Parameter(Mandatory=$true)][string]$BackupPath, # zip or already-extracted dir - [string]$SelectedPartGroup, # optional per-bay override of the part-group UNC - [string]$ReplaceFrom, # optional EXTRA find/replace across reg + xml - [string]$ReplaceTo, # ... replacement. Case-insensitive. - [switch]$NoDefaultRewrite # skip the built-in legacy->new FQDN swaps below -) - -# ============================================================================ -# Built-in FQDN migration - applied AUTOMATICALLY on every restore (no flag). -# Add pairs here as more legacy domains retire. -NoDefaultRewrite disables them. -# ============================================================================ -$DefaultRewrites = @( - @{ From = 'rd.ds.ge.com'; To = 'wjs.geaerospace.net' } # WJ legacy domain -> new domain -) - -# ---------------------------------------------------------------------------- -# Part-group share host canonicalization. Bays were captured with three -# inconsistent forms of the share host in the goCMM 'Selected Part Group' / -# ApplicationSettings.xml : -# \\tsgwp00525\... (bare hostname - DNS-suffix dependent) -# \\tsgwp00525.rd.ds.ge.com\... (legacy GE corp domain - dead on the -# air-gapped shopfloor net) -# \\tsgwp00525.wjs.geaerospace.net\... (correct) -# The DefaultRewrites above only fix the middle form. goCMM DISPLAYS the part -# group from ApplicationSettings.xml, so the bare form survived into the UI. -# Pin every form to the FQDN in BOTH the registry and the XML. The regex -# matches the UNC host with an optional domain suffix and is idempotent (an -# already-correct FQDN maps to itself). Disabled by -NoDefaultRewrite. -$PartGroupHostShort = 'tsgwp00525' -$PartGroupHostFqdn = 'tsgwp00525.wjs.geaerospace.net' -# \\HOST or \\HOST.any.domain PLUS the \shared share segment (any case) -> -# the exact canonical \\FQDN\SHARED. The share segment case MUST be normalized -# too, not just the host: goCMM matches the registry 'Selected Part Group' -# against the ApplicationSettings.xml with a CASE-SENSITIVE -# string compare (PartGroupViewModel: Find(pg => pg.FullName == regValue)). If -# only the host were fixed, the xml kept '\shared' (lowercase, as captured) while -# the override/09-Setup form is '\SHARED' (uppercase) -> Find returns null -> -# SelectedPartGroup null -> goCMM enumerates nothing -> EMPTY parts list even -# though the bay can reach the share. Match the whole host+share span and pin -# both to '\\tsgwp00525.wjs.geaerospace.net\SHARED'. Idempotent. -$PartGroupHostRx = '(?i)\\\\' + [regex]::Escape($PartGroupHostShort) + '(?:\.[A-Za-z0-9.\-]+)?\\shared(?=\\|$)' -$PartGroupHostTo = '\\' + $PartGroupHostFqdn + '\SHARED' -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$logDir = 'C:\Logs\CMM' -New-Item -ItemType Directory -Path $logDir -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $logDir "gocmm-restore-$ts.log" -function Log($m){ Write-Host $m; $m | Out-File -FilePath $log -Append } - -$goCmmKey = 'HKLM:\SOFTWARE\WOW6432Node\General Electric\goCMM' -Log "==== goCMM restore on $env:COMPUTERNAME from $BackupPath ====" - -# --- Resolve the backup to a directory --- -$src = $BackupPath -$extracted = $false -if ($BackupPath -match '\.zip$') { - $src = Join-Path $env:TEMP "gocmm-rs-$ts" - Add-Type -AssemblyName System.IO.Compression.FileSystem - [System.IO.Compression.ZipFile]::ExtractToDirectory($BackupPath, $src) - $extracted = $true -} -if (-not (Test-Path $src)) { Log "ERROR: backup path not found: $src"; exit 1 } - -# --- Read manifest for the shared-dir target --- -$sharedDir = 'C:\geaofi' -$mani = Join-Path $src 'manifest.json' -if (Test-Path $mani) { - try { - $m = Get-Content $mani -Raw | ConvertFrom-Json - if ($m.SharedDataDirectory) { $sharedDir = $m.SharedDataDirectory } - Log "manifest: shared=$sharedDir partGroup=$($m.SelectedPartGroup) ver=$($m.goCMMVersion)" - } catch { Log "WARN: could not parse manifest.json: $($_.Exception.Message)" } -} - -# --- Import the registry pointers --- -$reg = Join-Path $src 'registry\goCMM.reg' -if (Test-Path $reg) { - reg import "$reg" 2>&1 | Out-Null - Log "Imported registry key from goCMM.reg" -} else { - Log "WARN: registry\goCMM.reg missing in backup - creating an empty key so the ACL still lands" - if (-not (Test-Path $goCmmKey)) { New-Item -Path $goCmmKey -Force | Out-Null } -} - -# The per-bay backups were taken under goCMM 1.1, so goCMM.reg carries -# "Installation Directory" = the 1.1 folder. goCMM 2.x never reads it, but its -# installer treats it as "1.1 still installed" and shows a dialog /S cannot -# answer, which hangs GE-Enforce. Drop it unless 1.1 really is installed here. -if (-not (Test-Path 'C:\Program Files (x86)\General Electric\goCMM\goCMM.exe')) { - Remove-ItemProperty -Path $goCmmKey -Name 'Installation Directory' -ErrorAction SilentlyContinue - Log "Removed 1.1 'Installation Directory' value (goCMM 1.1 not installed)" -} - -# --- Optional per-bay Selected Part Group override (use when restoring to a different bay) --- -if ($SelectedPartGroup) { - if (-not (Test-Path $goCmmKey)) { New-Item -Path $goCmmKey -Force | Out-Null } - New-ItemProperty -Path $goCmmKey -Name 'Selected Part Group' -Value $SelectedPartGroup -PropertyType String -Force | Out-Null - Log "Override Selected Part Group = $SelectedPartGroup" -} - -# --- Lay down the Shared Data Directory (ApplicationSettings.xml = all tabs) --- -$geaofiSrc = Join-Path $src 'geaofi' -if (Test-Path $geaofiSrc) { - New-Item -ItemType Directory -Path $sharedDir -Force -ErrorAction SilentlyContinue | Out-Null - robocopy $geaofiSrc $sharedDir /E /R:1 /W:1 /NFL /NDL /NJH /NJS | Out-Null - Log "Restored Shared Data Directory -> $sharedDir" - if (Test-Path (Join-Path $sharedDir 'ApplicationSettings.xml')) { - Log "ApplicationSettings.xml in place (PC-DMIS + all Settings tabs)" - } else { - Log "WARN: ApplicationSettings.xml not present after restore" - } -} else { - Log "WARN: geaofi payload missing in backup - settings tabs NOT restored" -} - -# --- Find/replace across ALL restored data (registry values + every text file -# under the Shared Data Directory). The built-in legacy->new FQDN swaps run -# AUTOMATICALLY; -ReplaceFrom/-ReplaceTo adds one more; case-insensitive. --- -$rewrites = @() -if (-not $NoDefaultRewrite) { $rewrites += $DefaultRewrites } -if ($ReplaceFrom -and $ReplaceTo) { $rewrites += @{ From = $ReplaceFrom; To = $ReplaceTo } } - -if ($rewrites.Count -gt 0) { - $utf8NoBom = New-Object System.Text.UTF8Encoding($false) - foreach ($rw in $rewrites) { - $from = $rw.From; $to = $rw.To - if (-not $from) { continue } - Log "Find/replace: '$from' -> '$to' (case-insensitive)" - $rxFrom = [regex]::Escape($from) - - # registry: every string value under the goCMM key - if (Test-Path $goCmmKey) { - try { - $props = Get-ItemProperty -Path $goCmmKey - foreach ($p in $props.PSObject.Properties) { - if ($p.Name -like 'PS*') { continue } - if (($p.Value -is [string]) -and ([regex]::IsMatch($p.Value, $rxFrom, 'IgnoreCase'))) { - $new = [regex]::Replace($p.Value, $rxFrom, $to, 'IgnoreCase') - Set-ItemProperty -Path $goCmmKey -Name $p.Name -Value $new - Log " reg [$($p.Name)] -> $new" - } - } - } catch { Log " WARN: registry rewrite failed: $($_.Exception.Message)" } - } - - # files: every text file under the Shared Data Directory - if (Test-Path $sharedDir) { - Get-ChildItem -Path $sharedDir -Recurse -File -Include *.xml,*.txt,*.csv,*.config,*.ini,*.bas -ErrorAction SilentlyContinue | ForEach-Object { - try { - $c = [System.IO.File]::ReadAllText($_.FullName) - if ([regex]::IsMatch($c, $rxFrom, 'IgnoreCase')) { - $nc = [regex]::Replace($c, $rxFrom, $to, 'IgnoreCase') - [System.IO.File]::WriteAllText($_.FullName, $nc, $utf8NoBom) - Log " file [$($_.Name)] rewritten" - } - } catch { Log " WARN: file rewrite $($_.FullName): $($_.Exception.Message)" } - } - } - } -} - -# --- Canonicalize the part-group share host to the FQDN in reg + XML --- -# Runs AFTER the geaofi robocopy (so ApplicationSettings.xml is in place) -# and AFTER the literal rewrites above. Idempotent. This is what makes -# goCMM show the FQDN regardless of which form the bay was captured with. -if (-not $NoDefaultRewrite) { - # registry: every string value under the goCMM key - if (Test-Path $goCmmKey) { - try { - $props = Get-ItemProperty -Path $goCmmKey - foreach ($p in $props.PSObject.Properties) { - if ($p.Name -like 'PS*') { continue } - if (($p.Value -is [string]) -and ([regex]::IsMatch($p.Value, $PartGroupHostRx))) { - $new = [regex]::Replace($p.Value, $PartGroupHostRx, $PartGroupHostTo) - if ($new -ne $p.Value) { - Set-ItemProperty -Path $goCmmKey -Name $p.Name -Value $new - Log " host-canon reg [$($p.Name)] -> $new" - } - } - } - } catch { Log " WARN: host canonicalize (reg) failed: $($_.Exception.Message)" } - } - # files: every text file under the Shared Data Directory (incl ApplicationSettings.xml) - if (Test-Path $sharedDir) { - $utf8NoBomHost = New-Object System.Text.UTF8Encoding($false) - Get-ChildItem -Path $sharedDir -Recurse -File -Include *.xml,*.txt,*.csv,*.config,*.ini,*.bas -ErrorAction SilentlyContinue | ForEach-Object { - try { - $c = [System.IO.File]::ReadAllText($_.FullName) - if ([regex]::IsMatch($c, $PartGroupHostRx)) { - $nc = [regex]::Replace($c, $PartGroupHostRx, $PartGroupHostTo) - if ($nc -ne $c) { - [System.IO.File]::WriteAllText($_.FullName, $nc, $utf8NoBomHost) - Log " host-canon file [$($_.Name)] rewritten" - } - } - } catch { Log " WARN: host canonicalize $($_.FullName): $($_.Exception.Message)" } - } - } -} - -# --- Grant BUILTIN\Users ReadKey+WriteKey on the reg key (goCMM opens it writable:true to read) --- -if (Test-Path $goCmmKey) { - try { - $acl = Get-Acl -Path $goCmmKey - $rule = New-Object System.Security.AccessControl.RegistryAccessRule( - 'BUILTIN\Users','ReadKey,WriteKey','ContainerInherit','None','Allow') - $acl.AddAccessRule($rule) - Set-Acl -Path $goCmmKey -AclObject $acl -ErrorAction Stop - Log "Granted BUILTIN\Users ReadKey,WriteKey on $goCmmKey" - } catch { Log "WARN: registry ACL grant failed: $($_.Exception.Message)" } -} - -# --- Grant BUILTIN\Users Modify on the Shared Data Directory (goCMM saves settings there) --- -if (Test-Path $sharedDir) { - & icacls $sharedDir /grant 'BUILTIN\Users:(OI)(CI)M' /T /C 2>&1 | Out-Null - Log "Granted BUILTIN\Users Modify on $sharedDir" -} - -if ($extracted) { Remove-Item $src -Recurse -Force -ErrorAction SilentlyContinue } -Log "==== DONE ====" -Write-Host "" -Write-Host "goCMM restore complete. Log: $log" -ForegroundColor Green diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Modify-PCDMISRights.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Modify-PCDMISRights.ps1 deleted file mode 100755 index e4077c9..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Modify-PCDMISRights.ps1 +++ /dev/null @@ -1,110 +0,0 @@ -Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force - -Start-Transcript -Path "C:\Logs\PC-DMISrights.txt" -Append - -# 1. Define the authorized username -$authorizedUser = "SupportUser" - -# 2. Check if the current environment user matches -if ($env:USERNAME -ne $authorizedUser) { - Write-Warning "Unauthorized user detected. Run as SupportUser instead." - return -} - -# 3. Access granted for SupportUser -Write-Host "Welcome, $authorizedUser. Access granted." - - -# 4. Define the list of registry keys to modify -$registryKeys = @( - "HKLM:\SOFTWARE\Classes\PCDLRN.Application", - "HKCU:\SOFTWARE\Hexagon" - "HKCU:\SOFTWARE\WAI" - "HKLM:\SOFTWARE\Hexagon" - "HKLM:\SOFTWARE\WAI" - "HKLM:\SOFTWARE\Wow6432Node\Hexagon" - "HKLM:\SOFTWARE\Wow6432Node\WAI" - "Registry::HKU\.DEFAULT\SOFTWARE\Hexagon" - "Registry::HKU\.DEFAULT\SOFTWARE\WAI" -) - -# 5. Define the permission rule details -$identity = "BUILTIN\Users" # The target group -$rights = "FullControl" # Permission level -$inheritance = "ContainerInherit, ObjectInherit" # Applies to subkeys and values -$propagation = "None" -$type = "Allow" - -# 6. Create the Access Rule object -$accessRule = New-Object System.Security.AccessControl.RegistryAccessRule($identity, $rights, $inheritance, $propagation, $type) - -# 7. Loop through each key and apply the new rule -foreach ($keyPath in $registryKeys) { - try { - if (Test-Path $keyPath) { - Write-Host "Applying permissions to: $keyPath" -ForegroundColor Cyan - - # Get existing ACL (Access Control List) - $acl = Get-Acl -Path $keyPath - - # Add the new rule to the existing ACL - $acl.SetAccessRule($accessRule) - - # Apply the updated ACL back to the registry key - Set-Acl -Path $keyPath -AclObject $acl - - Write-Host "Success!" -ForegroundColor Green - } else { - Write-Warning "Registry key not found: $keyPath" - } - } catch { - Write-Error "Failed to update $keyPath. Error: $($_.Exception.Message)" - } -} - -# 8. Define the list of root folders to modify -$folderPaths = @( - "C:\Program Files\Hexagon", - "C:\Program Files\WAI", - "C:\Program Files (x86)\Hexagon" - "C:\Program Files (x86)\WAI" - "C:\ProgramData\Hexagon" - "C:\ProgramData\WAI" -) - -# 9. Define the permission rule details -$identity = "BUILTIN\Users" # The target group -$rights = "FullControl" # Permission level -$inheritance = "ContainerInherit, ObjectInherit" # Applies to subfolders and files -$propagation = "None" -$type = "Allow" - -# 10. Create the Access Rule object -$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($identity, $rights, $inheritance, $propagation, $type) - -# 11. Loop through each folder path and apply the new rule -foreach ($path in $folderPaths) { - try { - if (Test-Path $path) { - Write-Host "Applying permissions to: $path" -ForegroundColor Cyan - - # Get existing ACL (Access Control List) - $acl = Get-Acl -Path $path - - # Add the new rule to the existing ACL - $acl.SetAccessRule($accessRule) - - # Apply the updated ACL back to the folder - Set-Acl -Path $path -AclObject $acl - - Write-Host "Success!" -ForegroundColor Green - } else { - Write-Warning "Folder not found: $path" - } - } catch { - Write-Error "Failed to update $keyPath. Error: $($_.Exception.Message)" - } -} -pause -exit 1 -Stop-Transcript diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Restore-CMM.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Restore-CMM.ps1 deleted file mode 100644 index f146089..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Restore-CMM.ps1 +++ /dev/null @@ -1,111 +0,0 @@ -<# -Restore-CMM.ps1 - -Imaging-time per-bay settings restore. Called by 09-Setup-CMM after app install, -before the C:\CMM-Install cleanup (it reads the staged backup from there). - -Reads the resolved bay identity from C:\Enrollment\cmm\ (written by -resolve-cmm-bay-config.ps1 at the WinPE picker): - cmmid.txt - which staged backup set to use (e.g. CMM3) - version.txt - which PC-DMIS version to restore. A bay's backup holds every - version it ever had (2016.0 + 2019 R2); we restore ONLY the - one the bay-config pins, matched by substring (2019 -> the - '2019 R2' zip, 2016 -> the '2016.0' zip). - doda.txt - read for logging only. DODA bays now restore like any other: - once they are properly backed up + staged, the config-version - zip is restored the same way. (The old skip-on-doda policy was - dropped 2026-06-17; DODA bays had no backups when it was added.) - partgroup.txt - optional goCMM Selected Part Group (friendly S:\ form), used - as the authoritative per-bay override even if the backup is stale. - -Finds the backup set at \\ (default C:\CMM-Install\backups, -robocopied there from the PXE share by startnet) and restores via the sibling -Install-PCDMISSettings.ps1 + Install-goCMMSettings.ps1. - -SAME-BAY restore by design (cmmid match), so the backed-up controller CommPort -is this bay's own value - no cross-bay CommPort clobber. (The clobber problem is -only when one bay's settings are pushed onto a different bay.) - -Best-effort: always exits 0. Imaging must never fail because a restore step -could not find a backup or hit a non-fatal error - those are logged. -#> -param( - [string]$EnrollDir = 'C:\Enrollment\cmm', - [string]$BackupRoot = 'C:\CMM-Install\backups', - [string]$TargetUser = 'ShopFloor', - [string]$PartGroupShareRoot = '\\tsgwp00525.wjs.geaerospace.net\SHARED', - [string]$OutDir = 'C:\Logs\CMM' -) -$ErrorActionPreference = 'Continue' -$here = Split-Path -Parent $MyInvocation.MyCommand.Path -New-Item -ItemType Directory -Path $OutDir -Force -EA SilentlyContinue | Out-Null -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$log = Join-Path $OutDir "restore-cmm-$ts.log" -function Log($m){ $line = "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] $m"; Write-Host $line; $line | Out-File -FilePath $log -Append -Encoding ascii } -function ReadTxt($n){ $p = Join-Path $EnrollDir $n; if (Test-Path -LiteralPath $p) { (Get-Content -LiteralPath $p -First 1 -EA 0).Trim() } else { '' } } - -Log "==== CMM settings restore on $env:COMPUTERNAME ====" - -$cmmid = ReadTxt 'cmmid.txt' -$ver = ReadTxt 'version.txt' -$doda = (ReadTxt 'doda.txt').ToLower() -$pgRaw = ReadTxt 'partgroup.txt' - -if (-not $cmmid) { Log "no cmmid.txt (manual CMM id, or not a bay-config bay) - nothing to restore. Skipping."; exit 0 } -# DODA bays restore like any other now (skip-on-doda dropped 2026-06-17). DODA -# itself installs separately via the manifest to C:\Apps\DODA - independent of -# the goCMM (C:\geaofi) + PC-DMIS settings this restore lays back. - -$bdir = Join-Path $BackupRoot $cmmid -if (-not (Test-Path -LiteralPath $bdir)) { Log "no staged backup at $bdir - skipping (stage it with sync-cmm-backups.sh)."; exit 0 } -Log "bay=$cmmid version=$ver doda=$doda backupDir=$bdir" - -# --- PC-DMIS: restore ONLY the config-version zip --- -# A bay's folder holds every version it ever had (e.g. 2016.0 + 2019 R2). Match -# the VERSION FIELD of the name, not a loose substring: filenames are -# pcdmis_backup___.zip -# A loose "*2026*" would wrongly match a 2019 zip whose TIMESTAMP starts 2026 -# (e.g. 20260612). Anchor on the trailing timestamp so only the real version -# field (2019 -> '2019 R2', 2016 -> '2016.0', 2026 -> '2026.1') matches. -$pcZip = $null -if ($ver) { - $verRx = '^pcdmis_backup_.+_' + [regex]::Escape($ver) + '[^_]*_\d{8}-\d{6}\.zip$' - $pcZip = Get-ChildItem -LiteralPath $bdir -Filter 'pcdmis_backup_*.zip' -File -EA 0 | - Where-Object { $_.Name -match $verRx } | Sort-Object LastWriteTime | Select-Object -Last 1 -} -$pcScript = Join-Path $here 'Install-PCDMISSettings.ps1' -if (-not $pcZip) { - Log "WARN: no PC-DMIS backup zip matching version '$ver' in $bdir - PC-DMIS settings NOT restored." -} elseif (-not (Test-Path -LiteralPath $pcScript)) { - Log "WARN: Install-PCDMISSettings.ps1 not found at $pcScript - PC-DMIS settings NOT restored." -} else { - Log "restoring PC-DMIS $ver from $($pcZip.Name) (TargetUser=$TargetUser)" - try { & $pcScript -BackupPath $pcZip.FullName -TargetUser $TargetUser *>&1 | ForEach-Object { Log " $_" } } - catch { Log " ERROR in Install-PCDMISSettings: $($_.Exception.Message)" } -} - -# --- goCMM: restore the bay's settings; force the authoritative part group --- -$goZip = Get-ChildItem -LiteralPath $bdir -Filter 'gocmm_backup_*.zip' -File -EA 0 | Sort-Object LastWriteTime | Select-Object -Last 1 -$goScript = Join-Path $here 'Install-goCMMSettings.ps1' -if (-not $goZip) { - Log "WARN: no goCMM backup zip in $bdir - goCMM settings NOT restored." -} elseif (-not (Test-Path -LiteralPath $goScript)) { - Log "WARN: Install-goCMMSettings.ps1 not found at $goScript - goCMM settings NOT restored." -} else { - # partgroup.txt is the friendly S:\... form; convert the S: prefix to the UNC - # share root the same way 09-Setup-CMM does, and pass it so the restored - # Selected Part Group matches the CURRENT bay-config even if the backup is stale. - $goArgs = @{ BackupPath = $goZip.FullName } - if ($pgRaw) { - $pg = $pgRaw -replace '(?i)^S:\\', "$PartGroupShareRoot\" - $goArgs.SelectedPartGroup = $pg - Log "restoring goCMM from $($goZip.Name) (SelectedPartGroup=$pg)" - } else { - Log "restoring goCMM from $($goZip.Name) (no partgroup override - using backup's own value)" - } - try { & $goScript @goArgs *>&1 | ForEach-Object { Log " $_" } } - catch { Log " ERROR in Install-goCMMSettings: $($_.Exception.Message)" } -} - -Log "==== restore complete for $cmmid ====" -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Update-CMMEnforcer.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Update-CMMEnforcer.bat deleted file mode 100644 index d69bb00..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Update-CMMEnforcer.bat +++ /dev/null @@ -1,41 +0,0 @@ -@echo off -REM ========================================================================== -REM Update-CMMEnforcer.bat - update ONE CMM's local GE-Enforce lib to the -REM version that honors the PC-DMIS _CmmVersion gate, then self-heal. -REM -REM Usage (run on the CMM PC): -REM Update-CMMEnforcer.bat update lib + report wrong versions + self-heal -REM Update-CMMEnforcer.bat /remove also uninstall the wrong PC-DMIS version(s) -REM -REM Pulls the lib from the tsgwp00525 share by default. To use a USB copy: -REM Update-CMMEnforcer.bat /src "D:\Install-FromManifest.ps1" -REM Update-CMMEnforcer.bat /remove /src "D:\Install-FromManifest.ps1" -REM ========================================================================== -setlocal EnableDelayedExpansion - -REM --- self-elevate to administrator --- -net session >nul 2>&1 -if %errorlevel% neq 0 ( - echo Requesting administrator elevation... - powershell -NoProfile -Command "Start-Process -Verb RunAs -FilePath '%~f0' -ArgumentList '%*'" - exit /b -) - -set "PS=%~dp0Update-CMMEnforcer.ps1" -set "ARGS=" - -:parse -if "%~1"=="" goto run -if /I "%~1"=="/remove" set "ARGS=!ARGS! -RemoveWrongVersions" & shift & goto parse -if /I "%~1"=="/src" set "ARGS=!ARGS! -SourceLib '%~2'" & shift & shift & goto parse -shift -goto parse - -:run -echo Running: powershell -File "%PS%" !ARGS! -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%PS%" !ARGS! -set "RC=%errorlevel%" -echo. -echo Exit code: %RC% -pause -endlocal diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Update-CMMEnforcer.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Update-CMMEnforcer.ps1 deleted file mode 100644 index 22c87b5..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Update-CMMEnforcer.ps1 +++ /dev/null @@ -1,131 +0,0 @@ -<# -Update-CMMEnforcer.ps1 - -Bring ONE CMM shopfloor PC's local GE-Enforce engine up to the lib version -that understands the PC-DMIS _CmmVersion gate (lib MINOR >= 6), then run a -single enforce cycle so it self-heals to this bay's correct PC-DMIS version. - -Why this exists: GE-Enforce runs its lib from LOCAL -C:\Program Files\GE\Shopfloor\lib\ and does NOT auto-update from the share. -A bay running an older lib ignores the _CmmVersion tags in the synced CMM -manifest and would install every version it does not detect. This script -pushes the new lib locally so the gate takes effect. - -Run as administrator on the CMM PC. - -Params: - -SourceLib Explicit path to the 2.6+ lib (e.g. a USB copy). If omitted, - pulls from the tsgwp00525 share (-ShareRoot). - -ShareRoot Share root holding common\lib\Install-FromManifest.ps1. - -RemoveWrongVersions Uninstall any installed PC-DMIS version that does not - match this bay's C:\Enrollment\cmm\version.txt. - -NoEnforceRun Skip the post-update enforce cycle (just update + report). -#> -param( - [string]$SourceLib, - [string]$ShareRoot = '\\tsgwp00525.wjs.geaerospace.net\shared\dt\shopfloor', - [string]$InstallRoot = 'C:\Program Files\GE\Shopfloor', - [int]$MinLibMinor = 6, - [switch]$RemoveWrongVersions, - [switch]$NoEnforceRun -) -$ErrorActionPreference = 'Stop' -function Log($m){ Write-Host ("[Update-CMMEnforcer] {0}" -f $m) } - -function Get-LibMinor($path){ - if (-not (Test-Path -LiteralPath $path)) { return -1 } - $m = Select-String -Path $path -Pattern 'LIB_MANIFEST_MINOR\s*=\s*(\d+)' -ErrorAction SilentlyContinue | Select-Object -First 1 - if ($m) { return [int]$m.Matches[0].Groups[1].Value } else { return -1 } -} - -# --------------------------------------------------------------------------- -# 1. Resolve the source lib (USB override or share) and validate its version -# --------------------------------------------------------------------------- -if (-not $SourceLib) { $SourceLib = Join-Path $ShareRoot 'common\lib\Install-FromManifest.ps1' } -if (-not (Test-Path -LiteralPath $SourceLib)) { - throw "Source lib not found: $SourceLib (if using the share, confirm you are authenticated to it; or pass -SourceLib )" -} -$srcMinor = Get-LibMinor $SourceLib -if ($srcMinor -lt $MinLibMinor) { - throw "Source lib is MINOR=$srcMinor but >= $MinLibMinor is required. Point -SourceLib at the updated lib (or sync the share first)." -} - -$dstLib = Join-Path $InstallRoot 'lib\Install-FromManifest.ps1' -$oldMinor = Get-LibMinor $dstLib -Log "Source lib MINOR=$srcMinor ($SourceLib)" -Log "Local lib MINOR=$oldMinor ($dstLib)" - -# --------------------------------------------------------------------------- -# 2. Back up + copy the lib into place, verify -# --------------------------------------------------------------------------- -$libDir = Split-Path -Parent $dstLib -New-Item -ItemType Directory -Path $libDir -Force | Out-Null -if (Test-Path -LiteralPath $dstLib) { - $bak = "$dstLib.bak-{0}" -f (Get-Date -Format 'yyyyMMdd-HHmmss') - Copy-Item -LiteralPath $dstLib -Destination $bak -Force - Log "Backed up local lib -> $bak" -} -Copy-Item -LiteralPath $SourceLib -Destination $dstLib -Force -$newMinor = Get-LibMinor $dstLib -if ($newMinor -lt $MinLibMinor) { throw "Copy did not take - local lib still MINOR=$newMinor" } -Log "Local lib updated: MINOR $oldMinor -> $newMinor (OK - gate is now active)" - -# --------------------------------------------------------------------------- -# 3. Report bay version + which PC-DMIS versions are installed -# --------------------------------------------------------------------------- -$verFile = 'C:\Enrollment\cmm\version.txt' -$bayVer = if (Test-Path -LiteralPath $verFile) { (Get-Content -LiteralPath $verFile -First 1).Trim() } else { '' } -Log "Bay PC-DMIS version (version.txt): $(if($bayVer){$bayVer}else{'(none - bay not resolved; gate will install-all)'})" - -$pcd = @( - [pscustomobject]@{ Ver='2016'; Guid='{5389B196-81F0-44A9-A073-4C1D72041F09}'; Name='PC-DMIS 2016.0' }, - [pscustomobject]@{ Ver='2019'; Guid='{49DBE7F9-228A-4E66-8BB5-DB5A446DCAE7}'; Name='PC-DMIS 2019 R2' }, - [pscustomobject]@{ Ver='2026'; Guid='{81BACE1B-FB08-4DCF-8100-79911AD3EC1E}'; Name='PC-DMIS 2026.1' } -) -function Test-MsiInstalled($guid){ - foreach($r in @( - "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$guid", - "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\$guid")){ - if (Test-Path -LiteralPath $r) { return $true } - } - return $false -} -$installed = @($pcd | Where-Object { Test-MsiInstalled $_.Guid } | ForEach-Object { $_.Ver }) -Log "PC-DMIS installed: $(if($installed){$installed -join ', '}else{'none'})" -$wrong = @($installed | Where-Object { $bayVer -and $_ -ne $bayVer }) -if ($wrong.Count) { Log "WRONG for this bay (expected $bayVer): $($wrong -join ', ')" } - -# --------------------------------------------------------------------------- -# 4. Optionally uninstall wrong versions -# --------------------------------------------------------------------------- -if ($RemoveWrongVersions -and $bayVer -and $wrong.Count) { - foreach($p in ($pcd | Where-Object { $wrong -contains $_.Ver })){ - Log "Uninstalling $($p.Name) $($p.Guid) ..." - $proc = Start-Process msiexec.exe -ArgumentList "/x $($p.Guid) /qn /norestart REBOOT=ReallySuppress" -Wait -PassThru -WindowStyle Hidden - Log " msiexec exit $($proc.ExitCode) $(if($proc.ExitCode -in 0,1605,3010){'(OK)'}else{'(check)'})" - } -} elseif ($wrong.Count) { - Log "Re-run with -RemoveWrongVersions to uninstall the wrong version(s)." -} - -# --------------------------------------------------------------------------- -# 5. Kick one enforce cycle so it self-heals against the gated manifest -# --------------------------------------------------------------------------- -if (-not $NoEnforceRun) { - $task = Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object { $_.TaskName -match 'Enforce' } | Select-Object -First 1 - $enf = Join-Path $InstallRoot 'GE-Enforce.ps1' - if ($task) { - Log "Triggering scheduled task '$($task.TaskName)' ..." - Start-ScheduledTask -TaskName $task.TaskName -TaskPath $task.TaskPath - Log "Triggered. Watch C:\Logs\Shopfloor\enforce-*.log" - } elseif (Test-Path -LiteralPath $enf) { - Log "No enforce task found - running GE-Enforce.ps1 directly ..." - & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $enf | Out-Null - Log "Enforce cycle done. See C:\Logs\Shopfloor\enforce-*.log" - } else { - Log "Could not find an enforce task or $enf - trigger enforcement manually." - } -} - -Log "DONE. lib MINOR=$newMinor | bay=$(if($bayVer){$bayVer}else{'?'}) | installed=$($installed -join ',')" -Log "Verify next enforce log shows the 2016/2026 entries skipped with '_CmmVersion filter'." diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/gocmm-debug.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/gocmm-debug.bat deleted file mode 100644 index 401d5f5..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/gocmm-debug.bat +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -REM gocmm-debug.bat - launcher for gocmm-debug.ps1 -REM -REM *** RUN THIS AS THE OPERATOR (the locked-down shop-floor user). *** -REM *** DO NOT right-click "Run as administrator" - that hides the bug. *** -REM -REM Diagnoses goCMM startup failures: -REM 1. "Requested registry access is not allowed" - dumps the goCMM key ACL -REM to confirm lockdown stripped the BUILTIN\Users write grant (PROBE 1-2). -REM 2. "Object reference not set to an instance of an object" at start: -REM - PROBE 3: part-group match (reg vs ApplicationSettings.xml, case-sensitive). -REM - PROBE 4: pulls the actual .NET crash stack from the Application log. -REM - PROBE 5: part-group UNC reachability + PC-DMIS COM registration. -REM Confirmed root cause to date: PC-DMIS COM server NOT registered -> -REM goCMM's Activator.CreateInstance gets a null type -> NRE. Fix: run -REM Pcdlrn.exe once elevated (/regserver). PROBE 5 reports this directly. -REM Output lands in C:\Logs\CMM\. - -setlocal -set "HERE=%~dp0" - -echo. -echo Running goCMM debug as %USERDOMAIN%\%USERNAME% ... -echo (If you see "Administrator: ..." in this window title, STOP - run as the operator instead.) -echo. - -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%gocmm-debug.ps1" - -echo. -echo --------------------------------------------------------------- -echo Done. Collect everything under C:\Logs\CMM\ (the .txt and .reg). -echo --------------------------------------------------------------- -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/gocmm-debug.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/gocmm-debug.ps1 deleted file mode 100644 index 20fa5cb..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/gocmm-debug.ps1 +++ /dev/null @@ -1,256 +0,0 @@ -# gocmm-debug.ps1 - diagnose goCMM "Requested registry access is not allowed" post-lockdown. -# -# RUN AS THE OPERATOR (the locked-down shop-floor user), NOT elevated / not "Run as administrator". -# Elevation would falsely succeed (admins have write) and hide the bug. -# -# Root cause being tested: goCMM's GEA_OFI_Common.RegistrySettings.GetRegistryString opens -# HKLM\Software\General Electric\goCMM with writable:TRUE even to READ a value. goCMM is -# 32-bit, so that redirects to HKLM\SOFTWARE\WOW6432Node\General Electric\goCMM. If the -# operator lacks WRITE on that key (lockdown stripped the BUILTIN\Users grant), the open throws. -# -# Output: C:\Logs\CMM\gocmm-debug--.txt (pull this back for review) - -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$dir = 'C:\Logs\CMM' -New-Item -ItemType Directory -Path $dir -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $dir "gocmm-debug-$env:COMPUTERNAME-$ts.txt" -function W($m){ $m | Tee-Object -FilePath $log -Append } - -$key32native = 'SOFTWARE\General Electric\goCMM' # path under the 32-bit (Registry32) base -$keyWow = 'HKLM:\SOFTWARE\WOW6432Node\General Electric\goCMM' - -W "================ goCMM debug ================" -W "When : $(Get-Date)" -W "PC : $env:COMPUTERNAME" -W "User : $env:USERDOMAIN\$env:USERNAME" -W "PS : $($PSVersionTable.PSVersion) (process is $([IntPtr]::Size*8)-bit)" -W "Elevated: $((New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))" -W "" - -W "================ whoami /all (identity + groups + privileges) ================" -(whoami /all 2>&1 | Out-String) | W -W "" - -W "================ goCMM key values (32-bit view, read-only open) ================" -try { - $base32 = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine','Registry32') - $kr = $base32.OpenSubKey($key32native, $false) - if ($kr) { - foreach ($n in $kr.GetValueNames()) { W (" {0} = {1}" -f $n, $kr.GetValue($n)) } - $kr.Close() - } else { W " (key NOT found in 32-bit view)" } -} catch { W " ERROR reading values: $($_.Exception.Message)" } -W "" - -W "================ PROBE 1: mimic goCMM GetRegistryString -> OpenSubKey(writable:TRUE), 32-bit view ================" -W "(this is the exact call that throws in the app)" -try { - $base32 = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine','Registry32') - $kw = $base32.OpenSubKey($key32native, $true) - if ($kw) { W " RESULT: SUCCESS - opened goCMM key WRITABLE. (operator HAS write; settings should work)"; $kw.Close() } - else { W " RESULT: NULL - key missing; app would attempt CreateSubKey (also needs write)" } -} catch [System.Security.SecurityException] { - W " RESULT: *** REPRODUCED *** SecurityException: $($_.Exception.Message)" - W " -> operator lacks WRITE on the goCMM key. Lockdown stripped the BUILTIN\Users grant, or a Deny applies." -} catch { - W " RESULT: OTHER $($_.Exception.GetType().FullName): $($_.Exception.Message)" -} -W "" - -W "================ PROBE 2: read-only open (writable:FALSE) - does the operator at least READ? ================" -try { - $base32 = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine','Registry32') - $kr2 = $base32.OpenSubKey($key32native, $false) - if ($kr2) { W " read-only open OK (read works; only WRITE-open is denied -> confirms the writable:true bug)"; $kr2.Close() } - else { W " read-only open returned NULL (key missing)" } -} catch { W " read-only open FAILED: $($_.Exception.Message)" } -W "" - -W "================ ACL on goCMM key (the smoking gun) ================" -try { - $acl = Get-Acl -Path $keyWow - W (" Owner : " + $acl.Owner) - W (" SDDL : " + $acl.Sddl) - W " Access rules:" - $acl.Access | ForEach-Object { - W (" {0,-30} {1,-22} {2,-6} Inherited={3}" -f $_.IdentityReference, $_.RegistryRights, $_.AccessControlType, $_.IsInherited) - } - $usersWrite = $acl.Access | Where-Object { - $_.AccessControlType -eq 'Allow' -and - "$($_.IdentityReference)" -match 'Users' -and - ("$($_.RegistryRights)" -match 'WriteKey|SetValue|FullControl') - } - if ($usersWrite) { W " >> BUILTIN\Users WRITE ACE present (grant survived). Failure is elsewhere - check for a Deny ACE or wrong view." } - else { W " >> NO BUILTIN\Users WRITE ACE. Confirms lockdown removed the grant. <<" } -} catch { W " Get-Acl failed: $($_.Exception.Message)" } -W "" - -W "================ raw reg export of the key (for record) ================" -$regOut = Join-Path $dir "gocmm-key-$env:COMPUTERNAME-$ts.reg" -reg export "HKLM\SOFTWARE\WOW6432Node\General Electric\goCMM" "$regOut" /y 2>&1 | Out-String | W -W " exported -> $regOut" -W "" - -W "================ goCMM version + install ================" -# The goCMM MSI installs goCMM.exe (1.1.6718.x) to this dir and points the Start -# Menu shortcut at it - goCMM.exe IS the launcher. (An earlier version of this -# script checked for GEAOperatorFriendlyInterface.exe, which this product does -# NOT install - that produced a false MISSING. Check the real exe.) -foreach ($p in @( - 'C:\Program Files (x86)\General Electric\goCMM\goCMM.exe', - 'C:\Program Files (x86)\General Electric\goCMM\GEA_OFI_Common.dll')) { - if (Test-Path $p) { $vi = (Get-Item $p).VersionInfo; W (" {0} FileVer={1} ProductVer={2}" -f (Split-Path $p -Leaf), $vi.FileVersion, $vi.ProductVersion) } - else { W " MISSING: $p" } -} -W "" - -W "================ PROBE 3: Selected Part Group vs ApplicationSettings.xml (the startup NRE) ================" -# goCMM at start matches the registry 'Selected Part Group' against the -# entries in ApplicationSettings.xml with a CASE-SENSITIVE -# (Ordinal) compare. No match -> SelectedPartGroup is null -> a startup deref -# throws "Object reference not set to an instance of an object". This is a -# DIFFERENT failure from the registry SecurityException probed above. -# Mismatch forms seen: host (bare vs FQDN) and share segment (\shared vs \SHARED). -try { - $base32 = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine','Registry32') - $kpg = $base32.OpenSubKey($key32native, $false) - $regPg = $null; $sharedDir = 'C:\geaofi' - if ($kpg) { - $regPg = [string]$kpg.GetValue('Selected Part Group','') - $sd = [string]$kpg.GetValue('Shared Data Directory','') - if ($sd) { $sharedDir = $sd.TrimEnd('\') } - $kpg.Close() - } - W (" reg 'Selected Part Group' = [{0}]" -f $regPg) - W (" Shared Data Directory = {0}" -f $sharedDir) - - $xml = Join-Path $sharedDir 'ApplicationSettings.xml' - if (-not (Test-Path $xml)) { - W " *** ApplicationSettings.xml NOT FOUND at $xml - no part groups to match -> null SelectedPartGroup -> NRE likely. <<" - } else { - $txt = [System.IO.File]::ReadAllText($xml) - # Capture FullName in both attribute (FullName="...") and element (...) forms. - $names = New-Object System.Collections.Generic.List[string] - foreach ($m in [regex]::Matches($txt, 'FullName\s*=\s*"([^"]*)"')) { $names.Add($m.Groups[1].Value) } - foreach ($m in [regex]::Matches($txt, '([^<]*)')) { $names.Add($m.Groups[1].Value) } - $names = $names | Select-Object -Unique - W (" ApplicationSettings.xml part-group FullName entries ({0}):" -f @($names).Count) - foreach ($n in $names) { W (" [{0}]" -f $n) } - - if (-not $regPg) { - W " >> reg 'Selected Part Group' is EMPTY - goCMM has no part group pinned -> null -> NRE likely. <<" - } else { - $exact = $false; $caseOnly = $false - foreach ($n in $names) { - if ([string]::Equals($n, $regPg, [StringComparison]::Ordinal)) { $exact = $true; break } - if ([string]::Equals($n, $regPg, [StringComparison]::OrdinalIgnoreCase)) { $caseOnly = $true } - } - if ($exact) { - W " >> MATCH: reg value matches an XML FullName exactly (case-sensitive). Part group is NOT the NRE cause. <<" - } elseif ($caseOnly) { - W " >> *** CASE-ONLY MATCH *** reg value matches an XML entry only when case is ignored." - W " >> goCMM's compare is case-sensitive -> Find returns null -> SelectedPartGroup null -> NRE. <<" - W " >> FIX: re-run Install-goCMMSettings.ps1 (>= commit d441abd canonicalizes host + \SHARED case). <<" - } else { - W " >> *** NO MATCH *** reg 'Selected Part Group' is absent from ApplicationSettings.xml (any case)." - W " >> Find returns null -> SelectedPartGroup null -> NRE. Wrong per-bay override, or XML from a different bay. <<" - } - } - } -} catch { W " ERROR in part-group probe: $($_.Exception.Message)" } -W "" - -W "================ PROBE 4: goCMM crash events (Application log) - the actual stack ================" -# The NRE reproduces even for admin, so it is NOT a rights problem. The faulting -# stack names the null object. .NET pushes it to the Application log under -# '.NET Runtime' / 'Application Error' / 'Windows Error Reporting'. -try { - $since = (Get-Date).AddDays(-14) - $ev = Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$since } -ErrorAction SilentlyContinue | - Where-Object { $_.ProviderName -match '\.NET Runtime|Application Error|Windows Error Reporting|Application Hang' -and "$($_.Message)" -match 'goCMM' } - if (-not $ev) { - W " (no goCMM-related crash events in the last 14 days - launch goCMM once, then re-run this)" - } else { - foreach ($e in ($ev | Select-Object -First 5)) { - W (" ---- {0} [{1}] EventId={2} ----" -f $e.TimeCreated, $e.ProviderName, $e.Id) - foreach ($line in ("$($e.Message)" -split "`r?`n")) { W (" " + $line) } - W "" - } - W " >> The topmost goCMM / GEA_OFI frame in the stack above is where the null is dereferenced. <<" - } -} catch { W " ERROR reading event log: $($_.Exception.Message)" } -W "" - -W "================ PROBE 5: part-group UNC reachability + PC-DMIS install ================" -# (a) Can THIS bay open the Selected Part Group share? An unreachable / unauthenticated -# UNC -> goCMM enumerates null -> startup NRE, regardless of local rights (admin too). -try { - $base32 = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine','Registry32') - $kpg = $base32.OpenSubKey($key32native, $false) - $pg = if ($kpg) { [string]$kpg.GetValue('Selected Part Group','') } else { '' } - if ($kpg) { $kpg.Close() } - if ($pg) { - W (" part group UNC: $pg") - if (Test-Path -LiteralPath $pg -ErrorAction SilentlyContinue) { - $n = @(Get-ChildItem -LiteralPath $pg -ErrorAction SilentlyContinue).Count - W (" >> REACHABLE - $n item(s) under it. (not the NRE cause) <<") - } else { - W " >> *** UNREACHABLE *** bay cannot open the part-group UNC (share offline, not on the" - W " >> production net yet, or no credential to \\tsgwp00525\SHARED). goCMM enumerating this" - W " >> path returns null -> startup NRE even for admin. Check net connectivity + share auth. <<" - } - } else { W " (no Selected Part Group in registry)" } -} catch { W " ERROR testing part-group UNC: $($_.Exception.Message)" } -W "" -# (b) PC-DMIS COM automation - THE confirmed root cause (see debug.log). goCMM -# connects via Activator.CreateInstance on the PC-DMIS COM type. If the -# automation server is not registered, Type.GetTypeFromProgID returns null -# -> CreateInstance(null) -> "ArgumentNullException: ... Parameter name: type" -# -> ConnectToSoftware derefs null -> NRE. PC-DMIS can be RUNNING and still -# not be COM-registered. Stack: GEAE.Common.CMM.CMMInterfaces.PCDMIS.ConnectToSoftware. -$comOk = $false -foreach ($pgid in 'PCDLRN.Application','PCDLRN.Automation','Pcdlrn.Application','PCDLRN.Object') { - foreach ($cls in "HKLM:\SOFTWARE\Classes\$pgid","HKLM:\SOFTWARE\Classes\WOW6432Node\$pgid") { - if (Test-Path $cls) { - $clsid = (Get-ItemProperty -Path "$cls\CLSID" -ErrorAction SilentlyContinue).'(default)' - $comOk = $true - $srv = $null - if ($clsid) { - foreach ($cb in "HKLM:\SOFTWARE\Classes\CLSID\$clsid\LocalServer32","HKLM:\SOFTWARE\Classes\WOW6432Node\CLSID\$clsid\LocalServer32") { - if (Test-Path $cb) { $srv = (Get-ItemProperty -Path $cb -EA SilentlyContinue).'(default)' } - } - } - W (" COM ProgID registered: $pgid CLSID=$clsid server=$srv") - } - } -} -if (-not $comOk) { - W " >> *** PC-DMIS COM SERVER NOT REGISTERED *** no PCDLRN.* ProgID in HKCR. This is exactly the" - W " >> null behind 'ArgumentNullException: ... Parameter name: type' in debug.log -> goCMM startup NRE." - W " >> FIX: run the installed Pcdlrn.exe once ELEVATED (self-registers), or 'Pcdlrn.exe /regserver'." - W " >> Then confirm the registered build matches the goCMM-expected PC-DMIS version (the version gate). <<" -} -# install presence (context for the COM verdict) -$pcdlrn = $null -foreach ($d in 'C:\Program Files\Hexagon','C:\Program Files (x86)\Hexagon','C:\Program Files\WAI','C:\Program Files (x86)\WAI') { - if (Test-Path $d) { - $hit = Get-ChildItem $d -Filter 'Pcdlrn.exe' -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 - if ($hit) { $pcdlrn = $hit.FullName; W (" Pcdlrn.exe: $($hit.FullName) v$((Get-Item $hit.FullName).VersionInfo.FileVersion)"); break } - } -} -if (-not $pcdlrn) { W " Pcdlrn.exe NOT found in standard dirs - PC-DMIS not installed where expected." } -W "" - -W "================ UAC / registry virtualization ================" -(reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA 2>&1 | Out-String) | W -(reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableVirtualization 2>&1 | Out-String) | W -W "" - -W "================ DONE ================" -W "Log : $log" -W "Reg : $regOut" -Write-Host "" -Write-Host "Done. Collected:" -ForegroundColor Green -Write-Host " $log" -Write-Host " $regOut" diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/pcdmis-probe-debug.bat b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/pcdmis-probe-debug.bat deleted file mode 100644 index 18b359a..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/pcdmis-probe-debug.bat +++ /dev/null @@ -1,21 +0,0 @@ -@echo off -REM pcdmis-probe-debug.bat - find why custom probes don't show in PC-DMIS. -REM -REM *** RUN AS THE OPERATOR (the account that launches PC-DMIS), NOT elevated. *** -REM The probe search path + VirtualStore are per-user, so it must run in that -REM account to see the right view. Machine-wide ProgramData/ACLs are read anyway. -REM -REM Output: C:\Logs\CMM\pcdmis-probe-debug--.txt - -setlocal -set "HERE=%~dp0" -echo. -echo Running PC-DMIS probe debug as %USERDOMAIN%\%USERNAME% ... -echo (If the title bar says Administrator, STOP - run as the operator instead.) -echo. -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%pcdmis-probe-debug.ps1" -echo. -echo --------------------------------------------------------------- -echo Done. Collect C:\Logs\CMM\pcdmis-probe-debug-*.txt -echo --------------------------------------------------------------- -pause diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/pcdmis-probe-debug.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/pcdmis-probe-debug.ps1 deleted file mode 100644 index 6c0a744..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/pcdmis-probe-debug.ps1 +++ /dev/null @@ -1,154 +0,0 @@ -<# -pcdmis-probe-debug.ps1 - -Diagnose "custom probes don't show in PC-DMIS" on a locked-down Win11 bay. - -RUN AS THE OPERATOR (the account that actually launches PC-DMIS), NOT elevated - -the probe search path is a PER-USER registry setting and the UAC VirtualStore is -per-user, so we must see THAT account's view. (Machine-wide ProgramData + ACLs -are read regardless.) - -What it reports: - 1. Installed PC-DMIS version(s) + install dir (HKLM) - 2. The configured Probe Directory / search path (this user's HKCU + every - loaded user hive) - where PC-DMIS is actually looking - 3. Probe files (*.prb, probe.dat, usrprobe.dat, probebuilder.dat) found under - ProgramData, Public Documents, and the install dir - 4. ACL on C:\ProgramData\Hexagon\PC-DMIS\ - can the operator WRITE - (needed to save/qualify custom probes)? - 5. UAC VirtualStore shadow of those paths (probes silently redirected) - 6. Version-folder match (probes in a subfolder the running build ignores) - -Output: C:\Logs\CMM\pcdmis-probe-debug--.txt -#> -$ErrorActionPreference = 'Continue' -$ts = Get-Date -Format 'yyyyMMdd-HHmmss' -$dir = 'C:\Logs\CMM' -New-Item -ItemType Directory -Path $dir -Force -ErrorAction SilentlyContinue | Out-Null -$log = Join-Path $dir "pcdmis-probe-debug-$env:COMPUTERNAME-$ts.txt" -function W($m){ $m | Tee-Object -FilePath $log -Append } - -W "================ PC-DMIS probe debug ================" -W "When : $(Get-Date)" -W "PC : $env:COMPUTERNAME" -W "User : $env:USERDOMAIN\$env:USERNAME (process $([IntPtr]::Size*8)-bit)" -$elev = (New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) -W "Elevated: $elev (run as the OPERATOR, not elevated, for the per-user view)" -W "" - -# ---- 1. Installed PC-DMIS version(s) + install dir ---- -W "================ 1. Installed PC-DMIS (HKLM) ================" -$instVers = @() -foreach ($root in 'HKLM:\SOFTWARE\WOW6432Node\Hexagon\PC-DMIS','HKLM:\SOFTWARE\WOW6432Node\Wai\PC-DMIS','HKLM:\SOFTWARE\Hexagon\PC-DMIS','HKLM:\SOFTWARE\Wai\PC-DMIS') { - if (Test-Path $root) { - Get-ChildItem $root -ErrorAction SilentlyContinue | ForEach-Object { - $v = $_.PSChildName; $instVers += $v - $p = (Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue) - $exe = $p.Directory; if (-not $exe) { $exe = $p.InstallDir } - W (" $root\$v InstallDir=$exe") - } - } -} -$instVers = $instVers | Sort-Object -Unique -foreach ($d in 'C:\Program Files\Hexagon','C:\Program Files (x86)\Hexagon','C:\Program Files\WAI','C:\Program Files (x86)\WAI') { - if (Test-Path $d) { Get-ChildItem $d -Filter 'PC-DMIS*' -Directory -EA SilentlyContinue | ForEach-Object { - $exe = Get-ChildItem $_.FullName -Filter 'Pcdlrn.exe' -Recurse -EA SilentlyContinue | Select-Object -First 1 - if (-not $exe) { $exe = Get-ChildItem $_.FullName -Filter 'PCDMIS.exe' -Recurse -EA SilentlyContinue | Select-Object -First 1 } - if ($exe) { W (" exe: $($exe.FullName) v$((Get-Item $exe.FullName).VersionInfo.FileVersion)") } - }} -} -if (-not $instVers) { W " (no PC-DMIS install keys found under Hexagon/Wai)" } -W "" - -# ---- 2. Probe search path in the registry (this user + all loaded hives) ---- -W "================ 2. Probe / search-path registry (per user) ================" -W "(values whose name or data mentions probe/search/path/dir - that's where PC-DMIS looks)" -New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS -ErrorAction SilentlyContinue | Out-Null -$userRoots = @('HKCU:\Software\Hexagon\PC-DMIS','HKCU:\Software\Wai\PC-DMIS') -Get-ChildItem 'HKU:\' -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^S-1-5-21' -and $_.PSChildName -notmatch '_Classes$' } | ForEach-Object { - $sid = $_.PSChildName - $userRoots += "HKU:\$sid\Software\Hexagon\PC-DMIS" - $userRoots += "HKU:\$sid\Software\Wai\PC-DMIS" -} -foreach ($ur in ($userRoots | Sort-Object -Unique)) { - if (-not (Test-Path $ur)) { continue } - Get-ChildItem $ur -Recurse -ErrorAction SilentlyContinue | ForEach-Object { - $k = $_ - $props = Get-ItemProperty $k.PSPath -ErrorAction SilentlyContinue - if (-not $props) { return } - foreach ($p in $props.PSObject.Properties) { - if ($p.Name -like 'PS*') { continue } - if ($p.Name -match 'probe|search|path|dir' -or "$($p.Value)" -match 'probe|Hexagon\\PC-DMIS|\\\\') { - W (" $($k.PSPath -replace '.*::','')") - W (" [$($p.Name)] = $($p.Value)") - } - } - } -} -W "" - -# ---- 3. Probe files on disk ---- -W "================ 3. Probe files on disk ================" -$bases = @( - "$env:ProgramData\Hexagon\PC-DMIS", - "$env:ProgramData\WAI\PC-DMIS", - "$env:PUBLIC\Documents\Hexagon\PC-DMIS", - "$env:PUBLIC\Documents\WAI\PC-DMIS", - "$env:APPDATA\Hexagon\PC-DMIS", # Roaming per-user - "$env:LOCALAPPDATA\Hexagon\PC-DMIS", # Local per-user - "$env:APPDATA\WAI\PC-DMIS", - "$env:LOCALAPPDATA\WAI\PC-DMIS", - "$env:USERPROFILE\Documents\Hexagon\PC-DMIS" -) -foreach ($d in 'C:\Program Files\Hexagon','C:\Program Files (x86)\Hexagon') { if (Test-Path $d) { $bases += (Get-ChildItem $d -Filter 'PC-DMIS*' -Directory -EA SilentlyContinue).FullName } } -foreach ($b in ($bases | Sort-Object -Unique)) { - if (-not (Test-Path $b)) { W " (absent) $b"; continue } - W " --- $b ---" - Get-ChildItem $b -Recurse -File -Include *.prb,probe.dat,usrprobe.dat,probebuilder.dat -ErrorAction SilentlyContinue | - ForEach-Object { W (" {0,10} {1:yyyy-MM-dd} {2}" -f $_.Length, $_.LastWriteTime, $_.FullName) } -} -W "" - -# ---- 4. ACL on the ProgramData probe dir (can operator write?) ---- -W "================ 4. ProgramData probe-dir ACL (write = save custom probes) ================" -$pdRoots = @("$env:ProgramData\Hexagon\PC-DMIS","$env:ProgramData\WAI\PC-DMIS") -foreach ($pr in $pdRoots) { - if (-not (Test-Path $pr)) { continue } - Get-ChildItem $pr -Directory -ErrorAction SilentlyContinue | ForEach-Object { - W " --- $($_.FullName) ---" - try { - (Get-Acl $_.FullName).Access | Where-Object { "$($_.IdentityReference)" -match 'Users|Everyone|Authenticated' } | - ForEach-Object { W (" {0,-30} {1,-24} {2}" -f $_.IdentityReference, $_.FileSystemRights, $_.AccessControlType) } - } catch { W " Get-Acl failed: $($_.Exception.Message)" } - } -} -W "" - -# ---- 5. UAC VirtualStore shadow ---- -W "================ 5. UAC VirtualStore shadow (probes silently redirected) ================" -$vs = "$env:LOCALAPPDATA\VirtualStore" -$found = $false -foreach ($sub in 'ProgramData\Hexagon\PC-DMIS','Program Files\Hexagon','Program Files (x86)\Hexagon','ProgramData\WAI\PC-DMIS') { - $p = Join-Path $vs $sub - if (Test-Path $p) { - $found = $true - Get-ChildItem $p -Recurse -File -Include *.prb,probe.dat,usrprobe.dat,probebuilder.dat -EA SilentlyContinue | - ForEach-Object { W (" SHADOW: $($_.FullName)") } - } -} -if (-not $found) { W " (no VirtualStore shadow for $env:USERNAME - good, or PC-DMIS runs under a different account)" } -W "" - -# ---- 6. Version-folder match ---- -W "================ 6. Version-folder match ================" -W (" installed versions: " + (($instVers -join ', ') | ForEach-Object { if($_){$_}else{'(unknown)'} })) -foreach ($b in "$env:ProgramData\Hexagon\PC-DMIS","$env:PUBLIC\Documents\Hexagon\PC-DMIS") { - if (Test-Path $b) { W (" data subfolders in $b : " + ((Get-ChildItem $b -Directory -EA SilentlyContinue).Name -join ', ')) } -} -W " >> if a data subfolder holding your .prb files does NOT match the running build's version, PC-DMIS ignores it." -W "" - -W "================ DONE ================" -W "Log: $log" -Write-Host "" -Write-Host "Collected: $log" -ForegroundColor Green diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/select-cmm-bay.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/select-cmm-bay.ps1 deleted file mode 100644 index f57482c..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/select-cmm-bay.ps1 +++ /dev/null @@ -1,110 +0,0 @@ -# select-cmm-bay.ps1 - Arrow-key CMM bay picker for imaging. -# -# Reads cmm-bay-config.csv from the PXE enrollment share and presents -# a menu of CMM1-CMM12 with their PC-DMIS version and DODA flag. -# Writes the selected CMM ID to $OutFile for startnet.cmd to read back. -# -# Also writes resolved config files so 09-Setup-CMM.ps1 can gate installs: -# C:\Enrollment\cmm\version.txt (e.g. "2019") -# C:\Enrollment\cmm\doda.txt (e.g. "yes" or "no") -# -# Exit codes: -# 0 = CMM ID written to $OutFile -# 1 = user cancelled (Esc) -# 2 = CSV unreadable AND no fallback entered - -param( - [string]$ConfigPath = 'Y:\installers-post\cmm\cmm-bay-config.csv', - [Parameter(Mandatory=$true)][string]$OutFile -) - -$ErrorActionPreference = 'Continue' - -function Read-BayList { - param([string]$Path) - if (-not (Test-Path -LiteralPath $Path)) { return @() } - try { - return Import-Csv -LiteralPath $Path | Sort-Object { - if ($_.cmm_id -match '(\d+)$') { [int]$Matches[1] } else { 999 } - } - } catch { - return @() - } -} - -function Show-Menu { - param( - [object[]]$Items, - [int]$Selected, - [string]$Title - ) - Clear-Host - Write-Host "" - Write-Host " ========================================" - Write-Host " $Title" - Write-Host " ========================================" - Write-Host "" - Write-Host " Up / Down arrows = navigate, Enter = select, Esc = cancel" - Write-Host "" - for ($i = 0; $i -lt $Items.Count; $i++) { - $item = $Items[$i] - if ($item -is [string]) { - $line = $item - } else { - $dodaLabel = if ($item.doda -ieq 'yes') { '+ DODA' } else { '' } - $line = "{0,-8} PC-DMIS {1,-6} {2}" -f $item.cmm_id, $item.pcdmis_version, $dodaLabel - } - if ($i -eq $Selected) { - Write-Host (" > " + $line) -ForegroundColor Black -BackgroundColor White - } else { - Write-Host (" " + $line) - } - } -} - -$bays = @(Read-BayList -Path $ConfigPath) -if ($bays.Count -eq 0) { - Write-Host "WARNING: Could not read $ConfigPath" -} - -$menuItems = @($bays) + @("Other (manual entry)") -$selected = 0 - -while ($true) { - Show-Menu -Items $menuItems -Selected $selected -Title "Select CMM Bay" - $key = [System.Console]::ReadKey($true) - switch ($key.Key) { - 'UpArrow' { if ($selected -gt 0) { $selected-- } } - 'DownArrow' { if ($selected -lt ($menuItems.Count - 1)) { $selected++ } } - 'Enter' { break } - 'Escape' { Write-Host "`n Cancelled."; exit 1 } - } - if ($key.Key -eq 'Enter') { break } -} - -$chosen = $menuItems[$selected] - -if ($chosen -is [string]) { - Write-Host "" - $manual = Read-Host " Enter CMM ID (e.g. CMM1)" - if (-not $manual) { - Write-Host " No CMM ID entered." - exit 2 - } - $cmmId = $manual.Trim().ToUpper() - $match = $bays | Where-Object { $_.cmm_id -ieq $cmmId } - if ($match) { - $chosen = $match - } else { - Write-Host " $cmmId not in bay-config. Writing ID only (no version/doda resolution)." - [System.IO.File]::WriteAllText($OutFile, $cmmId) - exit 0 - } -} - -$cmmId = $chosen.cmm_id.Trim().ToUpper() -[System.IO.File]::WriteAllText($OutFile, $cmmId) -Write-Host "" -Write-Host " Selected: $cmmId (PC-DMIS $($chosen.pcdmis_version), DODA=$($chosen.doda))" - -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/01-eDNC.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/01-eDNC.ps1 deleted file mode 100644 index 1446308..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/01-eDNC.ps1 +++ /dev/null @@ -1,119 +0,0 @@ -# 01-eDNC.ps1 - Install eDNC and deploy custom eMxInfo.txt (Standard-Machine only) - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '01-eDNC.log') -Append -Force | Out-Null } catch {} - -# --- Skip on Timeclock sub-type --- -$subtypeFile = 'C:\Enrollment\pc-subtype.txt' -if (Test-Path $subtypeFile) { - $subtype = (Get-Content $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($subtype -eq 'Timeclock') { - Write-Host "=== eDNC Setup: skipped (Standard-Timeclock) ===" - try { Stop-Transcript | Out-Null } catch {} - return - } -} - -Write-Host "=== eDNC Setup ===" - -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path -LiteralPath $configPath)) { - Write-Host "site-config.json not found - using defaults" -ForegroundColor DarkGray - return $null - } - try { - return (Get-Content -LiteralPath $configPath -Raw -ErrorAction Stop | ConvertFrom-Json) - } catch { - Write-Warning "Failed to parse site-config.json: $_" - return $null - } -} -$siteConfig = Get-SiteConfig - -$siteName = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } -$siteNameCompact = if ($siteConfig) { $siteConfig.siteNameCompact } else { 'WestJefferson' } - -$edncDir = Join-Path $PSScriptRoot 'eDNC' - -if (-not (Test-Path $edncDir)) { - Write-Warning "eDNC folder not found at $edncDir - skipping." - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -# --- Find installer --- -# Default DNC install is the single shared copy staged by startnet.cmd to -# C:\PreInstall\installers\dnc (currently eDNC-6.4.7.msi) - one source of truth -# across every DNC pc-type instead of a per-type msi. Fall back to the per-type -# eDNC\ folder for older images that still bundle their own. Filter is eDNC*.msi -# (no dash) so both vendor naming styles match: eDNC-6.4.7.msi and eDNC_6-4-5.msi. -$sharedDncDir = 'C:\PreInstall\installers\dnc' -$edncMsi = Get-ChildItem -Path $sharedDncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 -if ($edncMsi) { - Write-Host "Using shared DNC installer: $($edncMsi.FullName)" -} else { - $edncMsi = Get-ChildItem -Path $edncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 - if ($edncMsi) { Write-Host "Shared DNC installer not found - falling back to per-type: $($edncMsi.FullName)" } -} -$emxInfo = Join-Path $edncDir "eMxInfo.txt" - -# --- 1. Install eDNC --- -if ($edncMsi) { - Write-Host "Installing eDNC: $($edncMsi.Name)..." - $p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$($edncMsi.FullName)`" /qn /norestart LAUNCHNTLARS=false SITESELECTED=`"$siteName`"" -Wait -PassThru - Write-Host " eDNC exit code: $($p.ExitCode)" -} else { - Write-Warning "eDNC installer not found in $edncDir (expected eDNC*.msi)" -} - -# --- 2. Mirror x86 install to 64-bit Program Files (app uses hardcoded paths) --- -# mxTransactionDll.dll references \Dnc\Server Files\ -$copies = @( - @{ Src = "C:\Program Files (x86)\Dnc"; Dst = "C:\Program Files\Dnc" } -) -foreach ($c in $copies) { - if (Test-Path $c.Src) { - if (-not (Test-Path $c.Dst)) { - New-Item -Path $c.Dst -ItemType Directory -Force | Out-Null - } - Copy-Item -Path "$($c.Src)\*" -Destination $c.Dst -Recurse -Force - Write-Host " Copied $($c.Src) -> $($c.Dst)" - } -} - -# --- 3. Set DNC site + machine number --- -$regBase = "HKLM\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC" -reg add "$regBase\General" /v Site /t REG_SZ /d $siteNameCompact /f | Out-Null -Write-Host " DNC site set to $siteNameCompact." - -# Set machine number if tech entered one during PXE menu (defaults to 9999) -$machineNumFile = 'C:\Enrollment\machine-number.txt' -$machineNum = '9999' -if (Test-Path -LiteralPath $machineNumFile) { - $num = (Get-Content -LiteralPath $machineNumFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($num -and $num -match '^\d+$') { $machineNum = $num } -} -reg add "$regBase\General" /v MachineNo /t REG_SZ /d $machineNum /f | Out-Null -Write-Host " DNC MachineNo set to $machineNum." - -# --- 4. Deploy custom eMxInfo.txt to both Program Files paths --- -if (Test-Path $emxInfo) { - $dest86 = "C:\Program Files (x86)\DNC\Server Files" - $dest64 = "C:\Program Files\DNC\Server Files" - - foreach ($dest in @($dest86, $dest64)) { - if (-not (Test-Path $dest)) { - New-Item -Path $dest -ItemType Directory -Force | Out-Null - } - Copy-Item -Path $emxInfo -Destination (Join-Path $dest "eMxInfo.txt") -Force - Write-Host " eMxInfo.txt -> $dest" - } -} else { - Write-Warning "eMxInfo.txt not found at $emxInfo" -} - -Write-Host "=== eDNC Setup Complete ===" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/02-MachineNumberACLs.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/02-MachineNumberACLs.ps1 deleted file mode 100644 index ce841f8..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/02-MachineNumberACLs.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -# 02-MachineNumberACLs.ps1 - NO-OP (deprecated 2026-05-24). -# -# This script used to grant BUILTIN\Users SetValue on the eDNC reg key -# and Modify on the UDC ProgramData dir so the logged-in user could -# update machine number from the Check-MachineNumber logon dialog without -# elevation. -# -# That design had two flaws: -# 1. Security hole - any logged-in user could overwrite the machine- -# identity reg key. -# 2. Fragile - ACL grants raced with eDNC install timing on some bays; -# the OpenSubKey call returned null + the grant was silently skipped, -# leaving Check-MachineNumber unable to update the bay (yet the old -# Update-MachineNumber.ps1 reported success anyway because -# Set-ItemProperty's PermissionDenied is non-terminating). -# -# Replaced by the two-task design in Register-CheckMachineNumberTask.ps1: -# - "Prompt Machine Number" : user-context GUI, no privileges -# - "Apply Machine Number" : SYSTEM-context worker, full HKLM access -# -# Left as a no-op so Stage-Dispatcher / Run-ShopfloorSetup discovery -# patterns don't have to be updated. Existing bays' ACL grants are still -# present and harmless (the SYSTEM Apply task ignores them). - -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '02-MachineNumberACLs.log') -Append -Force | Out-Null } catch {} -Write-Host "02-MachineNumberACLs.ps1: no-op (replaced by SYSTEM Apply task - see Register-CheckMachineNumberTask.ps1)" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/03-RestoreEDncConfig.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/03-RestoreEDncConfig.ps1 deleted file mode 100644 index c9b8e95..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/03-RestoreEDncConfig.ps1 +++ /dev/null @@ -1,90 +0,0 @@ -# 03-RestoreEDncConfig.ps1 - Restore per-machine eDNC config from .reg backup. -# -# Runs at shopfloor-setup time AFTER 01-eDNC.ps1 has installed eDNC. If the -# tech typed a real machine number at the PXE menu (not left blank -> 9999), -# look for a .reg backup matching that number on the PXE-local copy of the -# setup tree and import it. That restores everything eDNC-side the backup -# captured: eFocas IP/port, PPDCS serial (baud/parity/bits), Hssb KRelay1, -# etc. - instead of the reimaged PC coming up on factory defaults. -# -# After reg import, the tech-typed machine number is written to HKLM and to -# UDC's settings JSON to guarantee the current number wins over whatever the -# backup happened to contain (off-by-one backups exist in the historical -# dump; see ntlars-fixed/ work on the PXE host). -# -# Skipped when: -# - pc-subtype != Machine (Timeclock PCs do not use a machine number) -# - machine-number.txt missing / empty / 9999 (tech declined to set one) -# - ntlars-backups/ folder missing from the staged setup tree -# - no matching .reg file on disk for this machine number - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '03-RestoreEDncConfig.log') -Append -Force | Out-Null } catch {} - -Write-Host "=== Restore eDNC config from backup ===" - -# ---- Sub-type gate ---- -$subtypeFile = 'C:\Enrollment\pc-subtype.txt' -if (Test-Path $subtypeFile) { - $subtype = (Get-Content $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($subtype -eq 'Timeclock') { - Write-Host "Standard-Timeclock - skipping." - try { Stop-Transcript | Out-Null } catch {} - return - } -} - -# ---- Read machine number captured at PXE time ---- -$mnFile = 'C:\Enrollment\machine-number.txt' -if (-not (Test-Path $mnFile)) { - Write-Host "machine-number.txt not present - skipping (tech did not set one)." - try { Stop-Transcript | Out-Null } catch {} - return -} -$machineNum = (Get-Content $mnFile -First 1 -ErrorAction SilentlyContinue).Trim() -if (-not $machineNum -or $machineNum -eq '9999') { - Write-Host "Machine number is '$machineNum' (placeholder or empty) - skipping." - try { Stop-Transcript | Out-Null } catch {} - return -} - -Write-Host "Machine number: $machineNum" - -# ---- Locate local backup root (staged from PXE during imaging) ---- -# Lives at C:\Enrollment\shopfloor-setup\_ntlars-backups (one shared dir -# at the root of the staged shopfloor-setup tree, populated by Ansible -# from playbook/shopfloor-setup/_ntlars-backups). Path is relative to -# this script so it follows wherever per-pc-type dir is staged. -$backupRoot = Join-Path $PSScriptRoot '..\_ntlars-backups' -if (-not (Test-Path $backupRoot)) { - Write-Host "ntlars-backups folder not staged at $backupRoot - skipping." - try { Stop-Transcript | Out-Null } catch {} - return -} - -. "$PSScriptRoot\..\Shopfloor\lib\Restore-EDncReg.ps1" -$imported = Import-EDncRegBackup -SourceRoot $backupRoot -MachineNumber $machineNum - -if (-not $imported) { - Write-Host "No backup imported - leaving eDNC at installer defaults." - try { Stop-Transcript | Out-Null } catch {} - return -} - -# ---- Tech-typed number wins: overwrite MachineNo in both eDNC and UDC. ---- -# The imported .reg probably already has the right number (we rewrote the -# historical dump) but off-by-one backups exist, and this is cheap insurance. -. "$PSScriptRoot\..\Shopfloor\lib\Update-MachineNumber.ps1" - -$current = Get-CurrentMachineNumber -Write-Host "Post-import state: UDC='$($current.Udc)' eDNC='$($current.Ednc)'" - -$result = Update-MachineNumber -NewNumber $machineNum -if ($result.UdcUpdated) { Write-Host " UDC MachineNumber set to $machineNum" } -if ($result.EdncUpdated) { Write-Host " eDNC MachineNo set to $machineNum" } -foreach ($err in $result.Errors) { Write-Warning " $err" } - -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/04-SetControllerNicIP.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/04-SetControllerNicIP.ps1 deleted file mode 100644 index a0076d0..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/04-SetControllerNicIP.ps1 +++ /dev/null @@ -1,188 +0,0 @@ -# 04-SetControllerNicIP.ps1 - Auto-configure the controller-facing Realtek NIC -# at imaging time on gea-shopfloor-collections bays. -# -# Standard config (per post-deploy-debug-flowchart.md, section 2B): -# IP: 192.168.1.2 -# Mask: 255.255.255.0 (/24) -# Gateway: (blank) -# DNS: (none - cleared) -# -# Logic: -# 1. Find physical Ethernet adapters whose vendor description contains -# 'Realtek'. (Shopfloor PCs ship with a Realtek PCIe GbE add-in card -# for the controller; the corp LAN NIC is typically Intel.) -# 2. Skip any candidate that already has a DHCP-assigned default gateway -# (that's the corp LAN NIC, not the controller). -# 3. Skip any candidate that already has 192.168.1.2 - already configured. -# 4. For the single remaining candidate, set manual IP / mask, clear DNS. -# 5. If multiple Realtek NICs remain after filtering, log + bail (manual -# investigation needed; the script will NOT guess which is controller). -# -# Imaging-time only - run once during Run-ShopfloorSetup for collections -# bays. Not registered as a GE-Enforce drift-catcher because once set, -# manual changes by the tech are intentional and should not be reverted. -# -# Log: C:\Logs\Shopfloor\controller-nic.log - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\Shopfloor' -if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } -$logFile = Join-Path $logDir 'controller-nic.log' - -function Write-NicLog { - param([string]$Message, [string]$Level = 'INFO') - $line = '[{0}] [{1}] {2}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Level, $Message - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -$targetIP = '192.168.1.2' -$prefixLen = 24 - -Write-NicLog "=== 04-SetControllerNicIP start ===" - -# Enumerate ALL adapters first, then filter. Don't use -Physical: on some -# OEM driver stacks the Realtek NIC reports HardwareInterface=False and -# would be excluded. Don't filter on MediaType either: some drivers report -# '802.3' as a localized string or as the numeric '6'. -$allAdapters = Get-NetAdapter -ErrorAction SilentlyContinue -Write-NicLog "All adapters on this machine:" -foreach ($a in $allAdapters) { - Write-NicLog " $($a.Name) ifIndex=$($a.ifIndex) desc='$($a.InterfaceDescription)' status=$($a.Status) mediatype='$($a.MediaType)' physical='$($a.HardwareInterface)'" -} - -$candidates = @($allAdapters | Where-Object { $_.InterfaceDescription -match 'Realtek' }) - -if (-not $candidates -or $candidates.Count -eq 0) { - Write-NicLog "No Realtek adapters found - nothing to configure (PC may have no controller NIC)." - exit 0 -} - -Write-NicLog "Found $($candidates.Count) Realtek adapter(s):" -foreach ($c in $candidates) { - Write-NicLog " $($c.Name) ($($c.InterfaceDescription)) [status=$($c.Status)]" -} - -# Filter out the corp-LAN Realtek (if any): has a DHCP-assigned default -# gateway (corp DHCP always hands one out) OR has an IP in a corp subnet -# (10.x / non-192.168.1.x). Keep candidates that are unconfigured (link-local -# / no IP / 192.168.x). -$filtered = @() -foreach ($c in $candidates) { - $ipCfg = Get-NetIPConfiguration -InterfaceIndex $c.ifIndex -ErrorAction SilentlyContinue - $gw = $null - if ($ipCfg -and $ipCfg.IPv4DefaultGateway) { - $gw = ($ipCfg.IPv4DefaultGateway | Select-Object -First 1).NextHop - } - $v4 = @() - if ($ipCfg -and $ipCfg.IPv4Address) { - $v4 = @($ipCfg.IPv4Address | ForEach-Object { $_.IPAddress }) - } - Write-NicLog " $($c.Name): ips=$($v4 -join ',') gw=$gw" - - # Already has the target IP -> done. - if ($v4 -contains $targetIP) { - Write-NicLog " Skipping $($c.Name) - already has $targetIP/$prefixLen (configured previously)" - continue - } - - # Has a default gateway AND that gateway is NOT 192.168.1.x -> corp LAN, skip. - if ($gw -and ($gw -notmatch '^192\.168\.1\.')) { - Write-NicLog " Skipping $($c.Name) - has non-controller IPv4 default gateway $gw (likely corp LAN)" - continue - } - - # Has a corp-style IP (10.x or 172.16-31.x) -> corp LAN, skip. - $isCorp = $false - foreach ($ip in $v4) { - if ($ip -match '^10\.' -or $ip -match '^172\.(1[6-9]|2[0-9]|3[01])\.') { $isCorp = $true; break } - } - if ($isCorp) { - Write-NicLog " Skipping $($c.Name) - has corp-subnet IP $($v4 -join ',') (not the controller NIC)" - continue - } - - $filtered += $c -} - -if ($filtered.Count -eq 0) { - Write-NicLog "After filtering, no candidate remains - either already configured or all Realtek adapters look like corp LAN. Nothing to do." - exit 0 -} -if ($filtered.Count -gt 1) { - Write-NicLog "Multiple unconfigured Realtek adapters found ($($filtered.Count)). Refusing to guess which is the controller NIC. Manual configuration required." 'WARN' - foreach ($f in $filtered) { Write-NicLog " Ambiguous: $($f.Name) ($($f.InterfaceDescription))" 'WARN' } - exit 0 -} - -$target = $filtered[0] -Write-NicLog "Selected controller NIC: $($target.Name) ($($target.InterfaceDescription)) [ifIndex=$($target.ifIndex)]" - -# Wipe any existing IPv4 addresses + gateways on this interface so the new -# static doesn't conflict with stale DHCP leases or APIPA addresses. -try { - Get-NetIPAddress -InterfaceIndex $target.ifIndex -AddressFamily IPv4 -ErrorAction SilentlyContinue | - Remove-NetIPAddress -Confirm:$false -ErrorAction SilentlyContinue - Get-NetRoute -InterfaceIndex $target.ifIndex -AddressFamily IPv4 -ErrorAction SilentlyContinue | - Where-Object { $_.DestinationPrefix -eq '0.0.0.0/0' } | - Remove-NetRoute -Confirm:$false -ErrorAction SilentlyContinue - Write-NicLog "Cleared existing IPv4 addresses + default route on $($target.Name)" -} catch { - Write-NicLog "Failed to clear existing IPv4 state on $($target.Name): $_" 'WARN' -} - -# Switch the interface to manual IP assignment + set the static. -# -# Windows store-mismatch trap: Set-NetIPInterface defaults to ActiveStore, -# New-NetIPAddress defaults to PersistentStore. If we only disable DHCP in -# ActiveStore, New-NetIPAddress fails with: -# "Inconsistent parameters PolicyStore PersistentStore and Dhcp enabled" -# Disable DHCP in BOTH stores first, then add the static IP. If the -# cmdlets still fight us, fall back to netsh (writes both stores cleanly). -$staticSet = $false -try { - Set-NetIPInterface -InterfaceIndex $target.ifIndex -Dhcp Disabled -PolicyStore PersistentStore -ErrorAction SilentlyContinue - Set-NetIPInterface -InterfaceIndex $target.ifIndex -Dhcp Disabled -PolicyStore ActiveStore -ErrorAction SilentlyContinue - New-NetIPAddress -InterfaceIndex $target.ifIndex -IPAddress $targetIP ` - -PrefixLength $prefixLen -ErrorAction Stop | Out-Null - Write-NicLog "Set $targetIP/$prefixLen on $($target.Name) (no gateway)" - $staticSet = $true -} catch { - Write-NicLog "PowerShell static IP set failed: $_ -- falling back to netsh" 'WARN' -} - -if (-not $staticSet) { - $mask = '255.255.255.0' - $netshOut = & netsh interface ip set address name="$($target.Name)" static $targetIP $mask 2>&1 - if ($LASTEXITCODE -eq 0) { - Write-NicLog "netsh set $targetIP/$mask on $($target.Name)" - $staticSet = $true - } else { - Write-NicLog "netsh failed too: $netshOut" 'ERROR' - exit 1 - } -} - -# Clear DNS so the corp resolver doesn't get queried for controller-side hostnames. -try { - Set-DnsClientServerAddress -InterfaceIndex $target.ifIndex -ResetServerAddresses -ErrorAction Stop - Write-NicLog "Cleared DNS servers on $($target.Name)" -} catch { - Write-NicLog "Failed to clear DNS on $($target.Name): $_" 'WARN' -} - -# Verify what landed. -try { - $finalCfg = Get-NetIPConfiguration -InterfaceIndex $target.ifIndex -ErrorAction SilentlyContinue - $finalIPs = ($finalCfg.IPv4Address | ForEach-Object { "$($_.IPAddress)/$($_.PrefixLength)" }) -join ', ' - $finalGw = if ($finalCfg.IPv4DefaultGateway) { ($finalCfg.IPv4DefaultGateway | Select-Object -First 1).NextHop } else { '(none)' } - $finalDns = ($finalCfg.DNSServer | Where-Object AddressFamily -eq 2 | Select-Object -ExpandProperty ServerAddresses) -join ', ' - if (-not $finalDns) { $finalDns = '(none)' } - Write-NicLog "Verify: $($target.Name) IPs=$finalIPs Gateway=$finalGw DNS=$finalDns" -} catch { - Write-NicLog "Verification readback failed: $_" 'WARN' -} - -Write-NicLog "=== 04-SetControllerNicIP end ===" -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Backup-UDCData.bat b/playbook/shopfloor-setup/gea-shopfloor-collections/Backup-UDCData.bat deleted file mode 100644 index f404f2d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Backup-UDCData.bat +++ /dev/null @@ -1,47 +0,0 @@ -@echo off -REM Backup-UDCData.bat - Tech-runnable wrapper for Backup-UDCData.ps1. -REM -REM Self-elevates via UAC so the script can read C:\ProgramData\UDC\* and -REM write to the SFLD share with the right cached creds. Forwards any -REM extra args verbatim (e.g. -KeepPriorBackup, -MachineNumber 7605). -REM -REM Usage on the OLD PC, before retirement: -REM 1. Double-click Backup-UDCData.bat (or right-click -> Run as admin) -REM 2. Approve the UAC prompt -REM 3. Watch the elevated PS window for the success summary -REM 4. Confirm \\tsgwp00525.wjs.geaerospace.net\shared\dt\shopfloor\backup\udc\\ -REM now contains CurrentData.json + ArchivedData\ + backup.manifest.json - -REM --- Self-elevate --------------------------------------------------- -net session >nul 2>&1 -if %errorLevel% neq 0 ( - echo Requesting admin rights... - powershell -Command "Start-Process '%~f0' -Verb RunAs -ArgumentList '%*'" - exit /b -) - -set "SCRIPT=%~dp0Backup-UDCData.ps1" - -if not exist "%SCRIPT%" ( - echo ERROR: %SCRIPT% not found. - echo This .bat must be in the same folder as Backup-UDCData.ps1. - pause - exit /b 1 -) - -echo ============================================================ -echo UDC Data Backup -echo ============================================================ -echo Script: %SCRIPT% -echo. - -PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File "%SCRIPT%" %* -set RC=%errorLevel% - -echo. -echo ============================================================ -echo Backup script exit code: %RC% -echo ============================================================ -echo. -pause -exit /b %RC% diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Backup-UDCData.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Backup-UDCData.ps1 deleted file mode 100644 index feddb98..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Backup-UDCData.ps1 +++ /dev/null @@ -1,212 +0,0 @@ -# Backup-UDCData.ps1 - Capture UDC's CurrentData.json + ArchivedData/ to the -# SFLD share, keyed by the PC's current machine number. Runs LOCALLY on the -# old PC before retirement; the new PC restores during its first -# placeholder-to-real machine-number assignment via Update-MachineNumber.ps1. -# -# DESIGN: backup lives at \\ root. Presence of CurrentData.json -# at that root means "available to restore". Restore consumes by moving content -# into \migrated\\, leaving the root empty so it can't -# be replayed. -# -# USAGE: -# - Direct: powershell -NoProfile -ExecutionPolicy Bypass -File Backup-UDCData.ps1 -# - Wrapper: Backup-UDCData.bat (handles the bypass + elevation prompts) -# - Remote (WinRM): ../powershell/remote-execution/Backup-UDCData-Remote.ps1 - -[CmdletBinding()] -param( - # Override auto-detection for unusual cases. Defaults to whatever UDC - # currently has in C:\ProgramData\UDC\udc_settings.json. - [string]$MachineNumber, - - # Override the share path. Defaults to the canonical SFLD location. - [string]$BackupShareRoot = '\\tsgwp00525.wjs.geaerospace.net\shared\dt\shopfloor\backup\udc', - - # Local UDC data root. Default matches the vendor install path. - [string]$UdcDataDir = 'C:\ProgramData\UDC', - - # Cred for the SFLD share. If omitted, the current session's identity - # is used (works for SYSTEM-context runs and for local interactive - # admin sessions where the user has cached SFLD creds via SFLD-Reg). - [System.Management.Automation.PSCredential]$Credential, - - # If the destination already has a backup for this machine, append a - # timestamped suffix instead of overwriting. Default: overwrite (latest - # backup wins; the prior one only matters if the new PC didn't restore - # before this re-backup). - [switch]$KeepPriorBackup -) - -$ErrorActionPreference = 'Stop' -$logDir = 'C:\Logs\UDC' -if (-not (Test-Path $logDir)) { - try { New-Item -Path $logDir -ItemType Directory -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$logFile = Join-Path $logDir ("Backup-UDCData_$(Get-Date -Format 'yyyyMMdd-HHmmss').log") -try { Start-Transcript -Path $logFile -Append -Force | Out-Null } catch {} - -function Log { - param([string]$Msg, [string]$Level = 'INFO') - $ts = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' - Write-Host "[$ts][$Level] $Msg" -} - -Log "===============================================" -Log "Backup-UDCData starting" -Log "Hostname: $env:COMPUTERNAME" -Log "User: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" -Log "UDC data dir: $UdcDataDir" -Log "Backup share: $BackupShareRoot" -Log "Log file: $logFile" -Log "===============================================" - -# --- Resolve machine number --- -if (-not $MachineNumber) { - $settings = Join-Path $UdcDataDir 'udc_settings.json' - if (-not (Test-Path $settings)) { - Log "udc_settings.json not found at $settings - cannot auto-detect machine number" 'ERROR' - Log "Re-run with -MachineNumber to override" - try { Stop-Transcript | Out-Null } catch {} - exit 2 - } - try { - $json = Get-Content $settings -Raw | ConvertFrom-Json - $MachineNumber = $json.GeneralSettings.MachineNumber - } catch { - Log "Failed to parse udc_settings.json: $_" 'ERROR' - try { Stop-Transcript | Out-Null } catch {} - exit 3 - } -} -if (-not $MachineNumber -or $MachineNumber -eq '9999' -or $MachineNumber -notmatch '^\d+$') { - Log "Invalid or placeholder machine number: '$MachineNumber'. Aborting." 'ERROR' - Log "(Backups for placeholder 9999 would collide across PCs and aren't useful.)" - try { Stop-Transcript | Out-Null } catch {} - exit 4 -} -Log "Resolved machine number: $MachineNumber" - -# --- Verify source files exist --- -$srcCurrent = Join-Path $UdcDataDir 'CurrentData.json' -$srcArchive = Join-Path $UdcDataDir 'ArchivedData' - -$haveCurrent = Test-Path -LiteralPath $srcCurrent -$haveArchive = Test-Path -LiteralPath $srcArchive - -if (-not $haveCurrent -and -not $haveArchive) { - Log "Neither CurrentData.json nor ArchivedData/ exists under $UdcDataDir. Nothing to back up." 'WARN' - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} -Log "CurrentData.json present: $haveCurrent" -Log "ArchivedData/ present: $haveArchive" - -# --- Mount share if credentials supplied (otherwise rely on ambient auth) --- -$psDrive = $null -$dest = Join-Path $BackupShareRoot $MachineNumber -if ($Credential) { - try { - $psDrive = New-PSDrive -Name UDCBKP -PSProvider FileSystem -Root $BackupShareRoot -Credential $Credential -ErrorAction Stop - Log "Share mounted as UDCBKP: with explicit credentials" - $dest = "UDCBKP:\$MachineNumber" - } catch { - Log "Failed to mount $BackupShareRoot with supplied credentials: $_" 'ERROR' - try { Stop-Transcript | Out-Null } catch {} - exit 5 - } -} - -# --- Create destination dir --- -try { - if (-not (Test-Path -LiteralPath $dest)) { - New-Item -ItemType Directory -Path $dest -Force | Out-Null - Log "Created destination: $dest" - } -} catch { - Log "Failed to create destination $dest : $_" 'ERROR' - if ($psDrive) { Remove-PSDrive -Name UDCBKP -Force } - try { Stop-Transcript | Out-Null } catch {} - exit 6 -} - -# --- Optional: rotate prior backup at this bay if -KeepPriorBackup --- -if ($KeepPriorBackup) { - $existingMarker = Join-Path $dest 'CurrentData.json' - if (Test-Path -LiteralPath $existingMarker) { - $rotateName = Join-Path $dest ('superseded-' + (Get-Date -Format 'yyyyMMdd-HHmmss')) - New-Item -ItemType Directory -Path $rotateName -Force | Out-Null - Get-ChildItem $dest -Force | Where-Object { $_.Name -ne 'migrated' -and $_.Name -ne (Split-Path $rotateName -Leaf) } | ForEach-Object { - Move-Item -LiteralPath $_.FullName -Destination $rotateName -Force - } - Log "Prior backup rotated into $rotateName (KeepPriorBackup=true)" - } -} - -# --- Copy CurrentData.json --- -$copiedCurrent = $false -$currentBytes = 0 -if ($haveCurrent) { - try { - Copy-Item -LiteralPath $srcCurrent -Destination (Join-Path $dest 'CurrentData.json') -Force -ErrorAction Stop - $currentBytes = (Get-Item -LiteralPath $srcCurrent).Length - $copiedCurrent = $true - Log "Copied CurrentData.json ($currentBytes bytes)" - } catch { - Log "Failed to copy CurrentData.json: $_" 'ERROR' - } -} - -# --- Copy ArchivedData/ recursively --- -$copiedArchive = $false -$archiveBytes = 0 -$archiveFiles = 0 -if ($haveArchive) { - try { - $destArchive = Join-Path $dest 'ArchivedData' - if (Test-Path -LiteralPath $destArchive) { - Remove-Item -LiteralPath $destArchive -Recurse -Force -ErrorAction Stop - } - Copy-Item -LiteralPath $srcArchive -Destination $destArchive -Recurse -Force -ErrorAction Stop - $copiedArchive = $true - $archiveItems = Get-ChildItem -LiteralPath $destArchive -Recurse -File -ErrorAction SilentlyContinue - $archiveBytes = ($archiveItems | Measure-Object Length -Sum).Sum - $archiveFiles = $archiveItems.Count - Log "Copied ArchivedData/ ($archiveFiles files, $archiveBytes bytes)" - } catch { - Log "Failed to copy ArchivedData/: $_" 'ERROR' - } -} - -# --- Drop a small backup.manifest.json next to the data for forensics --- -try { - $manifest = [ordered]@{ - BackedUpAt = (Get-Date -Format 'o') - SourceHostname = $env:COMPUTERNAME - SourceUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name - MachineNumber = $MachineNumber - CurrentDataPresent = $copiedCurrent - CurrentDataBytes = $currentBytes - ArchivedDataPresent = $copiedArchive - ArchivedDataFiles = $archiveFiles - ArchivedDataBytes = $archiveBytes - } - $manifest | ConvertTo-Json | Set-Content -Path (Join-Path $dest 'backup.manifest.json') -Encoding UTF8 - Log "Wrote backup.manifest.json" -} catch { - Log "Manifest write failed (non-fatal): $_" 'WARN' -} - -# --- Tear down mount --- -if ($psDrive) { - try { Remove-PSDrive -Name UDCBKP -Force } catch {} -} - -Log "===============================================" -Log "Backup complete:" -Log " Bay: $MachineNumber" -Log " Destination: $BackupShareRoot\$MachineNumber\" -Log " CurrentData.json: $(if ($copiedCurrent) {'OK ('+$currentBytes+' bytes)'} else {'MISSING'})" -Log " ArchivedData/: $(if ($copiedArchive) {'OK ('+$archiveFiles+' files, '+$archiveBytes+' bytes)'} else {'MISSING'})" -Log "===============================================" -try { Stop-Transcript | Out-Null } catch {} -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Debug-ShopDBReporting.bat b/playbook/shopfloor-setup/gea-shopfloor-collections/Debug-ShopDBReporting.bat deleted file mode 100644 index fe50455..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Debug-ShopDBReporting.bat +++ /dev/null @@ -1,37 +0,0 @@ -@echo off -REM ========================================================================== -REM Debug-ShopDBReporting.bat - diagnose a PC not updating its ShopDB entry. -REM -REM Usage (run on the problem PC): -REM Debug-ShopDBReporting.bat full triage incl a live test POST -REM Debug-ShopDBReporting.bat /nopost inspect log + registry only (no POST) -REM Debug-ShopDBReporting.bat /mn 2001 force the machine number sent -REM -REM The live POST writes this PC's row to ShopDB (idempotent upsert, same as the -REM scheduled reporter). Use /nopost to avoid writing. -REM ========================================================================== -setlocal EnableDelayedExpansion - -REM --- self-elevate --- -net session >nul 2>&1 -if %errorlevel% neq 0 ( - echo Requesting administrator elevation... - powershell -NoProfile -Command "Start-Process -Verb RunAs -FilePath '%~f0' -ArgumentList '%*'" - exit /b -) - -set "PS=%~dp0Debug-ShopDBReporting.ps1" -set "ARGS=" - -:parse -if "%~1"=="" goto run -if /I "%~1"=="/nopost" set "ARGS=!ARGS! -NoPost" & shift & goto parse -if /I "%~1"=="/mn" set "ARGS=!ARGS! -MachineNo '%~2'" & shift & shift & goto parse -shift -goto parse - -:run -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%PS%" !ARGS! -echo. -pause -endlocal diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Debug-ShopDBReporting.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Debug-ShopDBReporting.ps1 deleted file mode 100644 index 6ef665d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Debug-ShopDBReporting.ps1 +++ /dev/null @@ -1,199 +0,0 @@ -<# -Debug-ShopDBReporting.ps1 - -One-shot diagnosis of why a shopfloor PC is not updating its ShopDB entry through -api.asp (action=updateCompleteAsset). Runs the whole triage and prints a verdict: - - 1. Preconditions - hostname, BIOS serial (api.asp requires it), eDNC MachineNo - (the PC->machine relationship needs it). - 2. Client log - the latest C:\Logs\Shopfloor\report-asset-*.log POST/RESPONSE. - 3. Live test POST - calls api.asp updateCompleteAsset and parses the JSON. - 4. Verdict - likely cause + fix. - -NOTE: the live POST WRITES to ShopDB (it is the real reporter action - an idempotent -upsert of this PC's row, same as the scheduled reporter does). Use -NoPost to skip -it and only inspect the local log + registry. - -Run as administrator on the problem PC. - -Params: - -ApiUrl override the api.asp endpoint - -MachineNo override the machine number sent (default: read from eDNC registry) - -NoPost do not send the live test POST -#> -param( - [string]$ApiUrl = 'https://tsgwp00525.wjs.geaerospace.net/shopdb/api.asp', - [string]$MachineNo, - [int]$TimeoutSec = 30, - [switch]$NoPost -) - -$ErrorActionPreference = 'Continue' -function Section($t){ Write-Host ''; Write-Host ("==== {0} ====" -f $t) -ForegroundColor Cyan } -function KV($k,$v){ Write-Host (" {0,-20}: {1}" -f $k, $v) } - -Write-Host '########################################################' -Write-Host '# ShopDB Reporting Debug' -Write-Host ("# {0}" -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss')) -Write-Host '########################################################' - -# --------------------------------------------------------------------------- -# 1. Preconditions -# --------------------------------------------------------------------------- -Section '1. Preconditions' -$hostname = $env:COMPUTERNAME -$serial = '' -try { $serial = (Get-CimInstance Win32_BIOS -ErrorAction Stop).SerialNumber } catch { - try { $serial = (Get-WmiObject Win32_BIOS -ErrorAction Stop).SerialNumber } catch {} -} -$serial = ("" + $serial).Trim() - -# Resolve machine number the same way the reporter / GE-Enforce lib do: -# eDNC registry (WOW6432Node then native) first, then C:\Enrollment\machine-number.txt. -$regMachineNo = '' -foreach ($rp in @('HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General', - 'HKLM:\SOFTWARE\GE Aircraft Engines\DNC\General')) { - if ($regMachineNo) { break } - if (Test-Path $rp) { - try { $regMachineNo = ("" + (Get-ItemProperty -Path $rp -Name MachineNo -ErrorAction Stop).MachineNo).Trim() } catch {} - } -} -$txtMachineNo = '' -$mnFile = 'C:\Enrollment\machine-number.txt' -if (Test-Path -LiteralPath $mnFile) { - try { $txtMachineNo = ("" + (Get-Content -LiteralPath $mnFile -First 1 -ErrorAction Stop)).Trim() } catch {} -} -$machineNoSource = '' -if (-not $MachineNo) { - if ($regMachineNo) { $MachineNo = $regMachineNo; $machineNoSource = 'eDNC registry' } - elseif ($txtMachineNo) { $MachineNo = $txtMachineNo; $machineNoSource = 'machine-number.txt (fallback)' } -} else { $machineNoSource = 'override param' } - -$corpIp = '' -try { - $corpIp = (Get-NetIPAddress -AddressFamily IPv4 -ErrorAction Stop | - Where-Object { $_.IPAddress -notmatch '^(127\.|169\.254\.)' } | - Select-Object -First 1).IPAddress -} catch {} - -KV 'Hostname' $hostname -KV 'BIOS serial' ($(if ($serial) { $serial } else { '(MISSING - api.asp will reject)' })) -KV 'eDNC MachineNo (reg)' ($(if ($regMachineNo) { $regMachineNo } else { '(none)' })) -KV 'machine-number.txt' ($(if ($txtMachineNo) { $txtMachineNo } else { '(none)' })) -KV 'MachineNo to send' ($(if ($MachineNo) { "$MachineNo [from $machineNoSource]" } else { '(none - relationship will be skipped)' })) -KV 'Corp IPv4' ($(if ($corpIp) { $corpIp } else { '(none found)' })) -KV 'API endpoint' $ApiUrl - -# --------------------------------------------------------------------------- -# 2. Latest client reporter log -# --------------------------------------------------------------------------- -Section '2. Latest client reporter log' -$logDir = 'C:\Logs\Shopfloor' -$log = $null -if (Test-Path $logDir) { - $log = Get-ChildItem -Path $logDir -Filter 'report-asset-*.log' -ErrorAction SilentlyContinue | - Sort-Object LastWriteTime | Select-Object -Last 1 -} -if ($log) { - KV 'Log file' $log.FullName - KV 'Last written' $log.LastWriteTime - Write-Host ' --- last POST / RESPONSE / ERROR lines ---' - Get-Content $log.FullName -ErrorAction SilentlyContinue | - Select-String -Pattern 'POST |RESPONSE |ERROR ' | - Select-Object -Last 6 | ForEach-Object { Write-Host (" " + $_.Line) } -} else { - Write-Host ' No report-asset-*.log found. The reporter may never have run on this PC.' - Write-Host ' -> check the scheduled task / GE-Enforce entry that invokes Report-AssetToShopDB.ps1' -} - -# --------------------------------------------------------------------------- -# 3. Live test POST -# --------------------------------------------------------------------------- -Section '3. Live test POST to api.asp' -$resp = $null; $postErr = $null; $rawText = $null -if ($NoPost) { - Write-Host ' -NoPost set: skipping the live POST.' -} elseif (-not $serial) { - Write-Host ' SKIPPED: no BIOS serial, api.asp requires serialNumber. Fix the hardware/WMI read first.' -} else { - # Accept the internal IIS certificate for this run (PS 5.1-safe). - try { - if (-not ([System.Management.Automation.PSTypeName]'TrustAllCerts').Type) { - Add-Type @" -using System.Net; using System.Security.Cryptography.X509Certificates; -public class TrustAllCerts : ICertificatePolicy { - public bool CheckValidationResult(ServicePoint sp, X509Certificate c, WebRequest r, int p) { return true; } -} -"@ - } - [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCerts - [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 - } catch {} - - $body = @{ - action = 'updateCompleteAsset' - hostname = $hostname - serialNumber = $serial - pcType = 'Shopfloor' - } - if ($MachineNo) { $body['machineNo'] = $MachineNo } - - Write-Host (" POST host={0} serial={1} machineNo={2}" -f $hostname, $serial, $(if ($MachineNo) { $MachineNo } else { '(none)' })) - try { - $resp = Invoke-RestMethod -Uri $ApiUrl -Method Post -Body $body -TimeoutSec $TimeoutSec -ErrorAction Stop - Write-Host ' --- response JSON ---' - Write-Host (" " + ($resp | ConvertTo-Json -Compress -Depth 5)) - } catch { - $postErr = $_.Exception.Message - Write-Host (" POST FAILED: {0}" -f $postErr) -ForegroundColor Red - try { $rawText = $_.Exception.Response } catch {} - } -} - -# --------------------------------------------------------------------------- -# 4. Verdict -# --------------------------------------------------------------------------- -Section '4. VERDICT' -function Truthy($v){ return ($v -eq $true -or "$v" -eq 'True' -or "$v" -eq '1') } - -if ($NoPost) { - Write-Host ' (live POST skipped) Inspect section 1-2 above.' - if (-not $MachineNo) { Write-Host ' NOTE: no machine number (eDNC registry and machine-number.txt both empty) -> no relationship until set.' -ForegroundColor Yellow } -} -elseif ($postErr) { - Write-Host ' CANNOT REACH api.asp - network, TLS, DNS, or IIS error.' -ForegroundColor Red - Write-Host (" Detail: {0}" -f $postErr) - Write-Host ' -> ping/curl the host, confirm IIS is up, check the cert and the /shopdb/ path.' -} -elseif (-not $serial) { - Write-Host ' BIOS SERIAL MISSING - api.asp rejects the POST (serialNumber required).' -ForegroundColor Red - Write-Host ' -> fix WMI/Win32_BIOS on this PC; it is a hardware/OS read issue, not ShopDB.' -} -elseif (-not (Truthy $resp.success)) { - Write-Host ' SERVER RETURNED success=false - it aborted at a DB step.' -ForegroundColor Red - Write-Host (" Breadcrumb/message: {0}" -f $resp.message) - Write-Host ' -> the LAST "N-OK," token in that message is where it stopped. Match N to api.asp.' -} -elseif (-not (Truthy $resp.relationshipCreated)) { - if (-not $MachineNo) { - Write-Host ' ASSET OK, but NO RELATIONSHIP because this PC has no machine number.' -ForegroundColor Yellow - Write-Host (" machineid={0}. Neither the eDNC registry nor C:\Enrollment\machine-number.txt" -f $resp.machineid) - Write-Host ' has a value, so api.asp skips the relationship by design.' - Write-Host ' -> set the bay machine number (Set-MachineNumber writes the eDNC registry), then' - Write-Host ' re-run. CMM/keyence/wax-trace bays have no DNC number and register asset-only.' - } else { - Write-Host ' ASSET OK, but RELATIONSHIP NOT CREATED even though MachineNo was sent.' -ForegroundColor Red - Write-Host (" machineid={0}, machineNo={1}." -f $resp.machineid, $MachineNo) - Write-Host ' -> this is the server-side silent abort (LogToFile Err-leak). Deploy the api.asp fix' - Write-Host ' (commit a4051e3) to prod IIS, then re-run. Also confirm the IIS logs dir is' - Write-Host ' writable by the app-pool identity (that is the trigger).' - } -} -else { - Write-Host ' HEALTHY.' -ForegroundColor Green - Write-Host (" Asset updated (machineid={0}) and PC->machine relationship created." -f $resp.machineid) - Write-Host ' If ShopDB still looks wrong, the issue is data/display, not the reporter path.' -} - -Write-Host '' -Write-Host 'Done.' diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Diagnose-eDNCDetection.bat b/playbook/shopfloor-setup/gea-shopfloor-collections/Diagnose-eDNCDetection.bat deleted file mode 100644 index 1d306f7..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Diagnose-eDNCDetection.bat +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -REM ========================================================================== -REM Diagnose-eDNCDetection.bat - diagnose the eDNC 6.4.5 enforce loop (MSI -REM 1603 "same or newer already installed" every 5 minutes). -REM -REM Usage (run on the problem PC): -REM Diagnose-eDNCDetection.bat auto-find manifest (W: or UNC) -REM Diagnose-eDNCDetection.bat /manifest explicit manifest.json path -REM -REM Read-only: no installs, no share writes. -REM ========================================================================== -setlocal EnableDelayedExpansion - -REM --- self-elevate --- -net session >nul 2>&1 -if %errorlevel% neq 0 ( - echo Requesting administrator elevation... - powershell -NoProfile -Command "Start-Process -Verb RunAs -FilePath '%~f0' -ArgumentList '%*'" - exit /b -) - -set "PS=%~dp0Diagnose-eDNCDetection.ps1" -set "ARGS=" - -:parse -if "%~1"=="" goto run -if /I "%~1"=="/manifest" set "ARGS=!ARGS! -ManifestPath '%~2'" & shift & shift & goto parse -shift -goto parse - -:run -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%PS%" !ARGS! -echo. -pause -endlocal diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Diagnose-eDNCDetection.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Diagnose-eDNCDetection.ps1 deleted file mode 100644 index aa920bd..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Diagnose-eDNCDetection.ps1 +++ /dev/null @@ -1,232 +0,0 @@ -<# -Diagnose-eDNCDetection.ps1 - -One-shot diagnosis of the eDNC 6.4.5 enforce loop: GE-Enforce re-runs -eDNC_6-4-5.msi every 5 minutes, the MSI aborts 1603 with "The same or newer -version of this software is already installed", and InUseCheck kills DncMain -in the process. Root cause is the manifest entry's Detection* fields not -matching what is actually installed. - -Runs the whole triage and prints a verdict: - - 1. Installed state - DncMain.exe / NTLARS.exe file versions, x86+x64 - uninstall registry entries for eDNC (DisplayVersion, - ProductCode). - 2. Manifest entry - the live "eDNC (bundles NTLARS)" entry from the SFLD - share manifest (uses W: if enforce has it mounted, - else direct UNC, else -ManifestPath). - 3. Comparison - replays Install-FromManifest's Test-AppInstalled - logic against the entry and says WHY it misses. - 4. Verdict - suggested corrected manifest JSON. - -Read-only: no installs, no share writes. Run as administrator on the -problem PC (registry + share read). - -Params: - -ManifestPath explicit path to the collections manifest.json (skips - W:/UNC auto-discovery) -#> -param( - [string]$ManifestPath -) - -$ErrorActionPreference = 'Continue' -function Section($t){ Write-Host ''; Write-Host ("==== {0} ====" -f $t) -ForegroundColor Cyan } -function KV($k,$v){ Write-Host (" {0,-24}: {1}" -f $k, $v) } - -Write-Host '########################################################' -Write-Host '# eDNC Detection Loop Diagnosis' -Write-Host ("# {0} host {1}" -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), [System.Environment]::MachineName) -Write-Host '########################################################' - -# --------------------------------------------------------------------------- -# 1. Installed state -# --------------------------------------------------------------------------- -Section '1. Installed eDNC state on this PC' - -$dncMain = 'C:\Program Files (x86)\Dnc\bin\DncMain.exe' -$ntlars = 'C:\Program Files (x86)\Dnc\Common\NTLARS.exe' -$dncMainVer = '' -$ntlarsVer = '' - -if (Test-Path $dncMain) { - $dncMainVer = (Get-Item $dncMain).VersionInfo.FileVersion - KV 'DncMain.exe' ("present, FileVersion {0}" -f $dncMainVer) -} else { - KV 'DncMain.exe' 'MISSING' -} -if (Test-Path $ntlars) { - $ntlarsVer = (Get-Item $ntlars).VersionInfo.FileVersion - KV 'NTLARS.exe' ("present, FileVersion {0}" -f $ntlarsVer) -} else { - KV 'NTLARS.exe' 'MISSING' -} - -# Uninstall entries - both registry views. Win32_Product deliberately avoided -# (it triggers MSI self-repair on enumeration). -$uninstallRoots = @( - 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', - 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*' -) -$edncProducts = @() -foreach ($root in $uninstallRoots) { - $edncProducts += Get-ItemProperty -Path $root -ErrorAction SilentlyContinue | - Where-Object { $_.DisplayName -like '*eDNC*' -or $_.DisplayName -like '*DNC*Client*' } -} -if ($edncProducts) { - foreach ($p in $edncProducts) { - Write-Host '' - KV 'DisplayName' $p.DisplayName - KV 'DisplayVersion' $p.DisplayVersion - KV 'ProductCode' $p.PSChildName - KV 'InstallDate' $p.InstallDate - KV 'RegistryView' ($(if ($p.PSPath -like '*WOW6432Node*') { 'x86 (WOW6432Node)' } else { 'x64' })) - } -} else { - Write-Host ' No eDNC uninstall entry found in either registry view.' -ForegroundColor Yellow -} - -# --------------------------------------------------------------------------- -# 2. Manifest entry from the share -# --------------------------------------------------------------------------- -Section '2. Manifest entry (share)' - -$candidates = @() -if ($ManifestPath) { $candidates += $ManifestPath } -$candidates += 'W:\gea-shopfloor-collections\manifest.json' -$candidates += '\\tsgwp00525.wjs.geaerospace.net\shared\dt\shopfloor\gea-shopfloor-collections\manifest.json' - -$manifestFile = $null -foreach ($c in $candidates) { - if (Test-Path $c) { $manifestFile = $c; break } -} - -$entry = $null -if ($manifestFile) { - KV 'Manifest' $manifestFile - try { - $manifest = Get-Content -LiteralPath $manifestFile -Raw | ConvertFrom-Json - $entry = $manifest.Applications | Where-Object { $_.Name -like 'eDNC*' } | Select-Object -First 1 - } catch { - Write-Host (" Failed to parse manifest: {0}" -f $_) -ForegroundColor Red - } - if ($entry) { - KV 'Name' $entry.Name - KV 'Installer' $entry.Installer - KV 'Type' $entry.Type - KV 'InstallArgs' $entry.InstallArgs - KV 'DetectionMethod' $entry.DetectionMethod - KV 'DetectionPath' $entry.DetectionPath - KV 'DetectionName' $entry.DetectionName - KV 'DetectionValue' $entry.DetectionValue - } else { - Write-Host ' No eDNC* entry found in manifest Applications.' -ForegroundColor Yellow - } -} else { - Write-Host ' Manifest not reachable (no W: mount, UNC denied).' -ForegroundColor Yellow - Write-Host ' Re-run with -ManifestPath, or run while GE-Enforce has W: mounted.' -} - -# --------------------------------------------------------------------------- -# 3. Replay Test-AppInstalled against the entry -# --------------------------------------------------------------------------- -Section '3. Detection replay' - -$detected = $null -$missReason = '' -if ($entry) { - switch ($entry.DetectionMethod) { - 'File' { - $detected = Test-Path $entry.DetectionPath - if (-not $detected) { $missReason = "DetectionPath does not exist: $($entry.DetectionPath)" } - } - 'FileVersion' { - if (-not (Test-Path $entry.DetectionPath)) { - $detected = $false - $missReason = "DetectionPath does not exist: $($entry.DetectionPath)" - } elseif (-not $entry.DetectionValue) { - $detected = $false - $missReason = 'FileVersion detection with no DetectionValue always misses' - } else { - $actual = (Get-Item $entry.DetectionPath -ErrorAction SilentlyContinue).VersionInfo.FileVersion - $detected = ($actual -eq $entry.DetectionValue) - if (-not $detected) { - $missReason = "exact-match compare failed: actual '$actual' vs DetectionValue '$($entry.DetectionValue)'" - } - } - } - 'Registry' { - if (-not (Test-Path $entry.DetectionPath)) { - $detected = $false - $missReason = "registry key does not exist: $($entry.DetectionPath) (eDNC uninstall key path varies across 6.x releases)" - } elseif ($entry.DetectionName) { - $v = Get-ItemProperty -Path $entry.DetectionPath -Name $entry.DetectionName -ErrorAction SilentlyContinue - if (-not $v) { - $detected = $false - $missReason = "value '$($entry.DetectionName)' missing under $($entry.DetectionPath)" - } elseif ($entry.DetectionValue) { - $actual = $v.$($entry.DetectionName) - $detected = ("$actual" -eq "$($entry.DetectionValue)") - if (-not $detected) { - $missReason = "exact-match compare failed: actual '$actual' vs DetectionValue '$($entry.DetectionValue)'" - } - } else { - $detected = $true - } - } else { - $detected = $true - } - } - default { - $missReason = "detection method '$($entry.DetectionMethod)' not replayed by this script" - } - } - if ($null -ne $detected) { - KV 'Test-AppInstalled' ($(if ($detected) { 'TRUE (would skip install)' } else { 'FALSE (re-runs MSI every cycle)' })) - if ($missReason) { KV 'Miss reason' $missReason } - } -} else { - Write-Host ' Skipped - no manifest entry available to replay.' -} - -# --------------------------------------------------------------------------- -# 4. Verdict -# --------------------------------------------------------------------------- -Section '4. Verdict' - -$edncInstalled = ($edncProducts.Count -gt 0) -or (Test-Path $dncMain) - -if (-not $edncInstalled) { - Write-Host ' eDNC does NOT appear installed. The 1603 "same or newer" abort' - Write-Host ' then points at a stale MSI registration; check the upgrade-code' - Write-Host ' products under HKLM:\SOFTWARE\Classes\Installer\UpgradeCodes.' -} elseif ($detected -eq $true) { - Write-Host ' Detection passes now. If enforce still loops, the manifest on the' - Write-Host ' share differs from the one inspected here - confirm the path.' -} else { - Write-Host ' eDNC IS installed but the manifest entry does not detect it, so' - Write-Host ' GE-Enforce re-runs the MSI every cycle and the MSI aborts 1603' - Write-Host ' ("same or newer already installed"). Fix the manifest entry on' - Write-Host ' the share. Suggested replacement (File detection on NTLARS.exe,' - Write-Host ' same approach as the working 6.4.3 machineapps entry):' - Write-Host '' - $suggested = [ordered]@{ - Name = 'eDNC (bundles NTLARS)' - Installer = 'apps\eDNC_6-4-5.msi' - Type = 'MSI' - InstallArgs = '/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress SITESELECTED="West Jefferson"' - DetectionMethod = 'File' - DetectionPath = 'C:\Program Files (x86)\Dnc\Common\NTLARS.exe' - } | ConvertTo-Json - Write-Host $suggested - Write-Host '' - if ($edncProducts) { - $dv = ($edncProducts | Select-Object -First 1).DisplayVersion - Write-Host (" Alternative: keep Registry detection but set DetectionValue to the") - Write-Host (" actual installed DisplayVersion: '{0}'" -f $dv) - } - Write-Host ' Until the manifest is fixed, every enforce cycle also risks killing' - Write-Host ' a live DncMain session (InUseCheck force-kill before the doomed MSI).' -} - -Write-Host '' diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Install-eMxInfo.cmd.template b/playbook/shopfloor-setup/gea-shopfloor-collections/Install-eMxInfo.cmd.template deleted file mode 100644 index 7e5521d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Install-eMxInfo.cmd.template +++ /dev/null @@ -1,32 +0,0 @@ -@echo off -REM Install-eMxInfo.cmd - copy the site-specific eMxInfo.txt into both -REM DNC Program Files install paths. Run by Install-FromManifest.ps1 -REM (Type=CMD) when Hash detection on the x86 path fails. -REM -REM Real install paths confirmed via 01-eDNC.ps1 (PXE preinstall) + a -REM real shopfloor install log capture: -REM C:\Program Files (x86)\DNC\Server Files\eMxInfo.txt -REM C:\Program Files\DNC\Server Files\eMxInfo.txt -REM Both required because mxTransactionDll.dll references both. -REM -REM Earlier versions wrote to C:\Program Files\eDNC\eMxInfo.txt - that -REM path doesn't exist on disk; the eDNC product creates \DNC\ (no 'e') -REM with a "Server Files" subdir. Corrected 2026-04-28. - -set "SRC=%~dp0eMxInfo.txt" -if not exist "%SRC%" ( - echo Install-eMxInfo: source file not found at %SRC% - exit /b 1 -) - -set "DST64=C:\Program Files\DNC\Server Files" -set "DST86=C:\Program Files (x86)\DNC\Server Files" - -if not exist "%DST64%\" mkdir "%DST64%" 2>nul -if not exist "%DST86%\" mkdir "%DST86%" 2>nul - -copy /Y "%SRC%" "%DST64%\eMxInfo.txt" >nul || exit /b 2 -copy /Y "%SRC%" "%DST86%\eMxInfo.txt" >nul || exit /b 3 - -echo Install-eMxInfo: deployed eMxInfo.txt to both DNC\Server Files paths -exit /b 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Register-ControllerCredentialTask.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Register-ControllerCredentialTask.ps1 deleted file mode 100644 index 8ae951d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Register-ControllerCredentialTask.ps1 +++ /dev/null @@ -1,98 +0,0 @@ -# Register-ControllerCredentialTask.ps1 - Register a user-context AtLogOn -# scheduled task that runs Set-ControllerCredential.ps1 as the logged-in -# user (ShopFloor). Credential Manager entries are per-user, so cmdkey /add -# must run in the user's session, not SYSTEM. -# -# GE-Enforce (SYSTEM) runs THIS script via the manifest. It registers the -# task once (MarkerFile detection prevents re-registration on subsequent -# enforce cycles). The task itself fires at every logon and re-applies the -# credential, covering Defender / Intune scrubs between sessions. -# -# Idempotent: safe to re-run. Existing task is overwritten via -Force. - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\Shopfloor' -if (-not (Test-Path $logDir)) { - try { New-Item -Path $logDir -ItemType Directory -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$logFile = Join-Path $logDir 'register-controller-cred.log' - -function Write-RegLog { - param([string]$Message, [string]$Level = 'INFO') - $line = '[{0}] [{1}] {2}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Level, $Message - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Write-RegLog '=== Register-ControllerCredentialTask start ===' - -$taskName = 'Apply Controller Credential' - -# The actual cmdkey script lives alongside this registration script on the -# SFLD share. GE-Enforce mounts the share as W:, so the script path is -# relative to the share root. At task-fire time, however, the share may not -# be mounted. Copy the script to a local path so the logon task always works. -$localDir = 'C:\Program Files\GE\Shopfloor\controller-cred' -$localScript = Join-Path $localDir 'Set-ControllerCredential.ps1' - -# Resolve the source script. When GE-Enforce runs this, $PSScriptRoot -# points to the share-mounted dir (W:\gea-shopfloor-collections\apps\ or -# similar). Fall back to the same directory as this script. -$sourceScript = Join-Path $PSScriptRoot 'Set-ControllerCredential.ps1' -if (-not (Test-Path -LiteralPath $sourceScript)) { - Write-RegLog "Set-ControllerCredential.ps1 not found at $sourceScript" 'ERROR' - exit 1 -} - -# Stage the script locally. -if (-not (Test-Path $localDir)) { - New-Item -Path $localDir -ItemType Directory -Force | Out-Null -} -try { - Copy-Item -LiteralPath $sourceScript -Destination $localScript -Force -ErrorAction Stop - Write-RegLog "Staged $sourceScript -> $localScript" -} catch { - Write-RegLog "Failed to copy script locally: $_" 'ERROR' - exit 1 -} - -# Register the logon task for BUILTIN\Users (catches ShopFloor + any -# interactive user). RunLevel Limited -- no elevation needed for cmdkey. -try { - $action = New-ScheduledTaskAction ` - -Execute 'powershell.exe' ` - -Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$localScript`"" - $trigger = New-ScheduledTaskTrigger -AtLogOn - $principal = New-ScheduledTaskPrincipal -GroupId 'S-1-5-32-545' -RunLevel Limited - $settings = New-ScheduledTaskSettingsSet ` - -AllowStartIfOnBatteries ` - -DontStopIfGoingOnBatteries ` - -StartWhenAvailable ` - -ExecutionTimeLimit (New-TimeSpan -Minutes 2) - Register-ScheduledTask ` - -TaskName $taskName ` - -Action $action ` - -Trigger $trigger ` - -Principal $principal ` - -Settings $settings ` - -Force ` - -ErrorAction Stop | Out-Null - Write-RegLog "Registered scheduled task '$taskName' (AtLogOn, BUILTIN\Users, Limited)" -} catch { - Write-RegLog "FAILED to register '$taskName': $_" 'ERROR' - exit 1 -} - -# Write marker file so the manifest's MarkerFile detection prevents -# re-running this registration on every enforce cycle. -$markerDir = 'C:\ProgramData\GE\Shopfloor\markers' -if (-not (Test-Path $markerDir)) { - New-Item -Path $markerDir -ItemType Directory -Force | Out-Null -} -$markerFile = Join-Path $markerDir 'controller-credential-task.marker' -Set-Content -Path $markerFile -Value (Get-Date -Format 'yyyy-MM-dd HH:mm:ss') -Force -Write-RegLog "Marker written: $markerFile" - -Write-RegLog '=== Register-ControllerCredentialTask end ===' -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Report-AssetToShopDB.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Report-AssetToShopDB.ps1 deleted file mode 100644 index e97d9d5..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Report-AssetToShopDB.ps1 +++ /dev/null @@ -1,280 +0,0 @@ -# Report-AssetToShopDB.ps1 -# -# Reports a PC's identity to ShopDB so the machines record stays current with -# whatever the PC actually is right now: hostname, BIOS serial, pc-type, logged- -# in user, DNC machine number (2001, 2002, ... when present) and its corp/AESFMA -# IPv4 address. -# -# Deployed in common\ (runs on EVERY shopfloor pc-type: collections, cmm, -# keyence, waxtrace, genspect, heattreat, partmarker, nocollections, ...), not -# collections-only. Non-DNC bays (cmm/keyence/waxtrace) simply report identity -# with no machineNo, so no PC-to-machine relationship is built - by design. -# -# Runs every GE-Enforce cycle as a Type=PS1 manifest entry (DetectionMethod -# Always) under the SYSTEM scheduled task. Idempotent on the server side: -# ShopDB api.asp action=updateCompleteAsset upserts the machines row keyed by -# hostname (patch-style: only the fields posted here are updated, so it never -# clobbers model/VNC/WinRM), clears+reinserts the interface rows, and (re)creates -# the PC-to-machine relationship from machineNo. Safe to fire repeatedly. -# -# WHY corp-NIC-only: -# Some bays (collections/controller) carry two NICs - a private controller NIC -# (e.g. 192.168.x / 10.x stray) and the routable corp/AESFMA NIC. Only the corp -# NIC belongs in ShopDB, so we filter to the WJ corp ranges and drop the rest. -# Single-NIC PCs just pass their one corp IP through the same gate. Mirrors the -# allowed-range gate in Invoke-FilteredReportIP.ps1. -# -# Always exits 0 so the GE-Enforce "last run result" stays clean; failures are -# logged, never thrown. - -param( - # ShopDB asset endpoint. Override via the manifest entry's "Args" field if - # the host or path ever moves. - [string]$ApiUrl = 'https://tsgwp00525.wjs.geaerospace.net/shopdb/api.asp', - - [int]$TimeoutSec = 30 -) - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\Shopfloor' -if (-not (Test-Path $logDir)) { - New-Item -ItemType Directory -Path $logDir -Force -ErrorAction SilentlyContinue | Out-Null -} -$logFile = Join-Path $logDir ('report-asset-{0}.log' -f (Get-Date -Format 'yyyyMMdd')) - -function Log([string]$msg) { - $ts = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' - "$ts $msg" | Tee-Object -FilePath $logFile -Append | Out-Null -} - -# corp ranges - same gate as Invoke-FilteredReportIP. update if site re-VLANs. -$allowedRanges = @( - @{ Network = '10.134.48.0'; PrefixLen = 23 }, - @{ Network = '10.48.249.0'; PrefixLen = 26 } -) - -function ConvertTo-Uint32([string]$ip) { - $bytes = ([System.Net.IPAddress]::Parse($ip)).GetAddressBytes() - [Array]::Reverse($bytes) - return [BitConverter]::ToUInt32($bytes, 0) -} - -function Test-InAllowedRange([string]$ip) { - try { - $ipInt = ConvertTo-Uint32 $ip - foreach ($r in $allowedRanges) { - $netInt = ConvertTo-Uint32 $r.Network - $mask = [uint32]([math]::Pow(2, 32) - [math]::Pow(2, 32 - $r.PrefixLen)) - if (($ipInt -band $mask) -eq ($netInt -band $mask)) { return $true } - } - } catch {} - return $false -} - -Log '=== Report asset to ShopDB ===' - -# hostname -$hostname = $env:COMPUTERNAME - -# BIOS serial - required by api.asp. bail if missing. -$serialNumber = '' -try { - $serialNumber = (Get-CimInstance -ClassName Win32_BIOS -ErrorAction Stop).SerialNumber - if ($serialNumber) { $serialNumber = $serialNumber.Trim() } -} catch { - Log "WARN could not read BIOS serial: $($_.Exception.Message)" -} -if (-not $serialNumber) { - Log 'ERROR no BIOS serial number; api.asp requires hostname + serialNumber. Skipping.' - exit 0 -} - -# Machine identifier - optional, sent only if found. api.asp matches it against -# the equipment machinenumber OR alias column, so one value covers every type: -# 1. eDNC registry (WOW6432Node, then native) - DNC/collections bays (2001...). -# Follows bay reassignment, which Set-MachineNumber rewrites here. -# 2. C:\Enrollment\cmm\cmmid.txt - CMM bay id (e.g. CMM3), written by -# select-cmm-bay.ps1 at imaging. Matches the equipment machinenumber. -# 3. C:\Enrollment\machine-number.txt - imaging value. For wax&trace this is the -# asset tag from select-waxtrace-asset.ps1 (matches the equipment alias); -# for DNC bays it is the digit number. 9999 is the placeholder = skip. -# keyence / genspect / part-marker have no per-bay id on the PC -> no machineNo -# is sent and the link is assigned manually in ShopDB. -$machineNo = '' -foreach ($regPath in @( - 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General', - 'HKLM:\SOFTWARE\GE Aircraft Engines\DNC\General' -)) { - if ($machineNo) { break } - try { - if (Test-Path $regPath) { - $v = [string](Get-ItemProperty -Path $regPath -Name MachineNo -ErrorAction Stop).MachineNo - if ($v -and $v.Trim() -ne '9999') { $machineNo = $v.Trim() } - } - } catch { - Log "WARN could not read MachineNo from ${regPath}: $($_.Exception.Message)" - } -} -if (-not $machineNo) { - $cmmFile = 'C:\Enrollment\cmm\cmmid.txt' - if (Test-Path -LiteralPath $cmmFile) { - try { - $v = ([string](Get-Content -LiteralPath $cmmFile -First 1 -ErrorAction Stop)).Trim() - if ($v -and $v -ne '9999') { $machineNo = $v; Log "machineNo from $cmmFile (CMM bay id): $machineNo" } - } catch { Log "WARN could not read ${cmmFile}: $($_.Exception.Message)" } - } -} -if (-not $machineNo) { - $mnFile = 'C:\Enrollment\machine-number.txt' - if (Test-Path -LiteralPath $mnFile) { - try { - $v = ([string](Get-Content -LiteralPath $mnFile -First 1 -ErrorAction Stop)).Trim() - if ($v -and $v -ne '9999') { $machineNo = $v; Log "machineNo from $mnFile (imaging value): $machineNo" } - } catch { Log "WARN could not read ${mnFile}: $($_.Exception.Message)" } - } -} - -# OS for the operatingsystems lookup: caption + feature-update (e.g. 23H2, read -# from the registry since WMI does not expose it) + major build number. Yields a -# string like "Microsoft Windows 11 Enterprise 23H2 (build 22631)" so the fleet -# OS-version breakdown is visible everywhere osid is shown - no schema change, -# api.asp upserts each distinct string into operatingsystems. -$osVersion = '' -# last boot time - api.asp stores it as machines.lastboottime; uptime is derived -# server-side (DATEDIFF(NOW(), lastboottime)). MySQL datetime format. -$lastBootTime = '' -try { - $os = Get-CimInstance -ClassName Win32_OperatingSystem -ErrorAction Stop - $osVersion = "$($os.Caption)".Trim() - $displayVersion = '' - try { - $displayVersion = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name DisplayVersion -ErrorAction Stop).DisplayVersion - } catch {} - if ($displayVersion) { $osVersion += " $displayVersion" } - if ($os.BuildNumber) { $osVersion += " (build $($os.BuildNumber))" } - $osVersion = $osVersion.Trim() - try { $lastBootTime = $os.LastBootUpTime.ToString('yyyy-MM-dd HH:mm:ss') } catch {} -} catch {} - -# interactive console user (DOMAIN\user). this script runs as SYSTEM so we -# cannot use $env:USERNAME; Win32_ComputerSystem.UserName is the console -# session owner and works from SYSTEM context. empty when nobody is logged on, -# in which case we omit it from the post so an unattended bay does not blank -# the last-known user on the server. -$loggedInUser = '' -try { - $loggedInUser = (Get-CimInstance -ClassName Win32_ComputerSystem -ErrorAction Stop).UserName - # Win32 returns COMPUTERNAME\user (local account) or DOMAIN\user. Keep only - # the username part: matches the legacy bare-username convention and avoids - # the backslash, which the inline api.asp SQL does not escape so MySQL eats - # it (FB90238\ShopFloor was being stored as FB90238ShopFloor). - if ($loggedInUser) { $loggedInUser = ($loggedInUser -split '\\')[-1].Trim() } -} catch { - Log "WARN could not read logged-in user: $($_.Exception.Message)" -} - -# imaging pc-type (gea-shopfloor-*), read from the enrollment file written at -# image time. api.asp maps both the gea-shopfloor-* values and the legacy -# display strings to the right pctypeid. Sent only when present; when absent the -# server's patch-style update leaves the existing pctype untouched (so a bare -# report never re-types a PC). This is what lets the reporter run fleet-wide -# from common\ instead of collections-only. -$pcType = '' -$ptFile = 'C:\Enrollment\pc-type.txt' -if (Test-Path -LiteralPath $ptFile) { - try { - $pcType = (Get-Content -LiteralPath $ptFile -First 1 -ErrorAction Stop).Trim() - } catch { Log "WARN could not read ${ptFile}: $($_.Exception.Message)" } -} - -# PC make/model from WMI (e.g. "Dell Inc." / "OptiPlex 7090"). api.asp resolves -# or creates the vendor + model rows and links modelnumberid. Sent only when -# present so a WMI read failure does not blank the model on the row. -$manufacturer = '' -$model = '' -try { - $cs = Get-CimInstance -ClassName Win32_ComputerSystem -ErrorAction Stop - $manufacturer = "$($cs.Manufacturer)".Trim() - $model = "$($cs.Model)".Trim() -} catch { - Log "WARN could not read make/model: $($_.Exception.Message)" -} - -# gather IPv4 NICs - BOTH the corp/AESFMA NIC and the controller/machine LAN NIC, -# each with its MAC. Physical adapters only (drop Hyper-V/VPN/WSL/virtual plus -# link-local 169.254 and loopback). Each NIC is tagged IsMachineNetwork: true for -# the controller LAN (any IP outside the corp ranges), false for the corp NIC. -$interfaces = @() -try { - $ipObjs = Get-NetIPAddress -AddressFamily IPv4 -ErrorAction Stop | - Where-Object { $_.IPAddress -notmatch '^169\.254' -and $_.IPAddress -ne '127.0.0.1' } - foreach ($ipo in $ipObjs) { - $adapter = $null - try { $adapter = Get-NetAdapter -InterfaceIndex $ipo.InterfaceIndex -ErrorAction Stop } catch {} - # physical + connected only; skip virtual adapters (Hyper-V/VPN/WSL/etc) - if (-not $adapter) { continue } - if (-not $adapter.HardwareInterface) { continue } - if ($adapter.Status -ne 'Up') { continue } - - $mac = $adapter.MacAddress - $gw = '' - try { - $gw = (Get-NetRoute -InterfaceIndex $ipo.InterfaceIndex -DestinationPrefix '0.0.0.0/0' -ErrorAction Stop | - Select-Object -First 1).NextHop - } catch {} - - # CIDR prefix -> dotted subnet mask - $maskInt = [uint32]([math]::Pow(2, 32) - [math]::Pow(2, 32 - $ipo.PrefixLength)) - $maskBytes = [BitConverter]::GetBytes($maskInt) - [Array]::Reverse($maskBytes) - $subnetMask = ($maskBytes | ForEach-Object { $_ }) -join '.' - - $isCorp = Test-InAllowedRange $ipo.IPAddress - - $interfaces += [pscustomobject]@{ - IPAddress = $ipo.IPAddress - MACAddress = $mac - SubnetMask = $subnetMask - DefaultGateway = $gw - InterfaceName = $ipo.InterfaceAlias - IsMachineNetwork = (-not $isCorp) # controller/machine LAN = true; corp = false - } - } -} catch { - Log "WARN interface enumeration failed: $($_.Exception.Message)" -} - -if ($interfaces.Count -eq 0) { - Log 'WARN no physical IPv4 NIC found; posting identity without interfaces.' -} - -$networkInterfacesJson = if ($interfaces.Count -gt 0) { $interfaces | ConvertTo-Json -Compress -Depth 4 } else { '' } -# ConvertTo-Json emits a bare object (not an array) for a single element; force array shape for api.asp ParseJSONArray. -if ($interfaces.Count -eq 1) { $networkInterfacesJson = '[' + $networkInterfacesJson + ']' } - -$body = @{ - action = 'updateCompleteAsset' - hostname = $hostname - serialNumber = $serialNumber - osVersion = $osVersion - networkInterfaces = $networkInterfacesJson -} -if ($machineNo) { $body['machineNo'] = $machineNo } -if ($loggedInUser) { $body['loggedInUser'] = $loggedInUser } -if ($pcType) { $body['pcType'] = $pcType } -if ($manufacturer) { $body['manufacturer'] = $manufacturer } -if ($model) { $body['model'] = $model } -if ($lastBootTime) { $body['lastBootTime'] = $lastBootTime } - -Log ("POST {0} host={1} serial={2} pcType={3} make={4} model={5} os={6} boot={7} machineNo={8} user={9} ips={10}" -f ` - $ApiUrl, $hostname, $serialNumber, $pcType, $manufacturer, $model, $osVersion, $lastBootTime, $machineNo, $loggedInUser, (($interfaces | ForEach-Object { $_.IPAddress }) -join ',')) - -try { - $resp = Invoke-RestMethod -Uri $ApiUrl -Method Post -Body $body -TimeoutSec $TimeoutSec -ErrorAction Stop - Log ("RESPONSE {0}" -f ($resp | ConvertTo-Json -Compress -Depth 4)) -} catch { - Log "ERROR POST failed: $($_.Exception.Message)" -} - -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Restore-UDCData.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Restore-UDCData.ps1 deleted file mode 100644 index 335d0f3..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Restore-UDCData.ps1 +++ /dev/null @@ -1,390 +0,0 @@ -# Restore-UDCData.ps1 - Idempotent UDC data restore for the manifest engine. -# -# Triggered by the GE Shopfloor Enforce scheduled task (runs as SYSTEM, every -# user logon + every 5 min). Standard-machine manifest entry uses -# DetectionMethod=Always so this fires every cycle; the script self-decides -# whether there's actually any work to do. -# -# CONTRACT: -# - 99% of cycles: no backup waiting -> exit 0 in ~1 second, ~5 lines of log -# - 1 cycle (the one after Backup-UDCData lands a backup for this PC's bay): -# stop UDC, copy CurrentData.json + ArchivedData/ to C:\ProgramData\UDC, -# move consumed backup to \migrated\\, write -# restore.manifest.json, restart UDC. After this, root is empty so the -# check returns "no backup waiting" again on subsequent cycles. -# -# DESIGNED FOR THE SWAP WORKFLOW: -# New PC gets pre-imaged with real machine number + locked down, sits in -# storage. Days/weeks later, tech runs Backup-UDCData on old PC -> backup -# lands on share. Tech swaps PCs. New PC powers on at the bay -> ShopFloor -# autologon -> manifest engine fires this script -> backup detected -> -# restored -> UDC opens with prior history intact. -# -# Replaces the placeholder->real trigger in Update-MachineNumber.ps1 for the -# pre-imaged-then-swapped case (where the trigger fired at imaging time, before -# the backup existed). Update-MachineNumber.ps1's branch still handles the -# secondary case (tech used 9999 placeholder + sets number at bay) - both -# triggers safely no-op if the other already consumed the backup. -# -# LOGGING: -# Single rotating log at C:\Logs\UDC\Restore-UDCData.log (1 MB cap, rotated -# to .old.log on overflow). Every cycle writes a header line so even the -# silent no-op path leaves a trace. Errors include full exception type, -# position, and stack trace. - -[CmdletBinding()] -param( - [string]$BackupShareRoot = '\\tsgwp00525.wjs.geaerospace.net\shared\dt\shopfloor\backup\udc', - [string]$UdcDataDir = 'C:\ProgramData\UDC', - [string]$UdcExePath = 'C:\Program Files\UDC\UDC.exe', - [string]$UdcSettingsPath = 'C:\ProgramData\UDC\udc_settings.json', - [string]$Site = 'West Jefferson', - # Share can take 20-60s to become reachable from SYSTEM context after a - # cold boot or fresh logon. Retry until then before deciding "no backup". - [int]$ShareTimeoutSec = 60, - [int]$SharePollSec = 3 -) - -$ErrorActionPreference = 'Continue' - -# -- Logging setup -------------------------------------------------------- -$logDir = 'C:\Logs\UDC' -try { - if (-not (Test-Path $logDir)) { New-Item -Path $logDir -ItemType Directory -Force | Out-Null } -} catch { $logDir = $env:TEMP } -$logFile = Join-Path $logDir 'Restore-UDCData.log' -$logFileMaxBytes = 1MB - -# Rotate log file if oversized (keeps one prior generation) -try { - if ((Test-Path $logFile) -and ((Get-Item $logFile).Length -gt $logFileMaxBytes)) { - $rotated = Join-Path $logDir 'Restore-UDCData.old.log' - if (Test-Path $rotated) { Remove-Item $rotated -Force -ErrorAction SilentlyContinue } - Rename-Item -Path $logFile -NewName 'Restore-UDCData.old.log' -Force -ErrorAction SilentlyContinue - } -} catch {} - -function Log { - param([string]$Msg, [string]$Level = 'INFO') - $ts = Get-Date -Format 'yyyy-MM-dd HH:mm:ss.fff' - $line = "[$ts][$Level] $Msg" - try { Add-Content -LiteralPath $logFile -Value $line -ErrorAction SilentlyContinue } catch {} - Write-Host $line -} - -function LogErr { - param($Err) - if (-not $Err) { return } - $exType = if ($Err.Exception) { $Err.Exception.GetType().FullName } else { '' } - $exMsg = if ($Err.Exception) { $Err.Exception.Message } else { "$Err" } - Log " exception: $exType - $exMsg" 'ERROR' - if ($Err.InvocationInfo -and $Err.InvocationInfo.PositionMessage) { - $pos = ($Err.InvocationInfo.PositionMessage -replace "`r?`n", ' | ') - Log " at: $pos" 'ERROR' - } - if ($Err.ScriptStackTrace) { - $st = ($Err.ScriptStackTrace -replace "`r?`n", ' | ') - Log " stack: $st" 'ERROR' - } - if ($Err.Exception -and $Err.Exception.InnerException) { - Log " inner: $($Err.Exception.InnerException.Message)" 'ERROR' - } -} - -Log '===============================================' -Log "Restore-UDCData starting (PID $PID)" -Log "Hostname: $env:COMPUTERNAME" -try { - $whoami = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name -} catch { $whoami = '' } -Log "User identity: $whoami" -Log "PowerShell version: $($PSVersionTable.PSVersion)" -Log "BackupShareRoot: $BackupShareRoot" -Log "UdcDataDir: $UdcDataDir" -Log "UdcSettingsPath: $UdcSettingsPath" -Log "ShareTimeoutSec: $ShareTimeoutSec SharePollSec: $SharePollSec" - -# -- Resolve local machine number ---------------------------------------- -if (-not (Test-Path -LiteralPath $UdcSettingsPath)) { - Log "udc_settings.json not present - UDC not installed yet, no work to do." - Log 'Exit 0.' - exit 0 -} -try { - $json = Get-Content -LiteralPath $UdcSettingsPath -Raw -ErrorAction Stop | ConvertFrom-Json -ErrorAction Stop - $mn = $json.GeneralSettings.MachineNumber - Log "Resolved MachineNumber from udc_settings: $mn" -} catch { - Log "Failed to parse $UdcSettingsPath" 'ERROR' - LogErr $_ - Log 'Exit 0.' - exit 0 -} -if (-not $mn -or $mn -eq '9999' -or $mn -notmatch '^\d+$') { - Log "Machine number is placeholder/empty/non-numeric ('$mn'). Update-MachineNumber.ps1's branch will catch the placeholder->real transition. No work to do." - Log 'Exit 0.' - exit 0 -} - -# -- Mount share with SFLD user creds ----------------------------------- -# This script runs as NT AUTHORITY\SYSTEM (manifest engine on logon, or -# scheduled task). SYSTEM authenticates to remote SMB as the COMPUTER -# ACCOUNT (DOMAIN\HOSTNAME$), not as a user. The SFLD share's ACLs grant -# top-level enumeration to authenticated computers but file-level read -# only to a specific SFLD user. Without explicit user creds, Test-Path -# on bay-level files returns False (access denied = same return as not- -# found), making the script silently log "absent" when the files in fact -# exist. Symptom: Restore-UDCData.log shows endless "no work this cycle" -# while another PC (or a user-context invocation) successfully consumes -# the backup. Fix: mount the share with explicit SFLD creds from -# HKLM:\SOFTWARE\GE\SFLD\Credentials and probe via the drive letter. -# Inline Mount-SFLDShare so this script can run from any location - -# specifically the SFLD share path \\tsgwp00525...\standard-machine\scripts\ -# where GE-Enforce executes it. The original Shopfloor\lib\Restore-EDncReg.ps1 -# is only present in the C:\Enrollment\ imaging-time tree, not on the share, -# so dot-sourcing its relative path would silently fail and Mount-SFLDShare -# would be undefined at call time. -function Mount-SFLDShare { - param( - [Parameter(Mandatory)][string]$SharePath, - [string]$DriveLetter = 'R:' - ) - $server = ($SharePath -replace '^\\\\', '') -split '\\' | Select-Object -First 1 - $basePath = 'HKLM:\SOFTWARE\GE\SFLD\Credentials' - if (-not (Test-Path $basePath)) { return $false } - $cred = $null - foreach ($entry in Get-ChildItem -Path $basePath -ErrorAction SilentlyContinue) { - $props = Get-ItemProperty -Path $entry.PSPath -ErrorAction SilentlyContinue - if (-not $props) { continue } - # Match either the value-style TargetHost (test-fixture) or the - # production-style layout where the credential subkey NAME is the host. - $hosts = @() - if ($props.TargetHost) { $hosts += $props.TargetHost } - $hosts += $entry.PSChildName - $matched = $false - foreach ($h in $hosts) { - if (-not $h) { continue } - if ($h -eq $server -or $h -like "$server.*" -or $server -like "$h.*") { - $matched = $true; break - } - } - if ($matched -and $props.Username -and $props.Password) { - $cred = $props; break - } - } - if (-not $cred) { return $false } - & net use $DriveLetter /delete /y 2>$null | Out-Null - $null = & net use $DriveLetter $SharePath /user:$($cred.Username) $($cred.Password) /persistent:no 2>&1 - return ($LASTEXITCODE -eq 0) -} - -# R:, not W: and not V:. GE-Enforce owns W: for the whole enforce cycle -# (GE-Enforce.ps1 $driveLetter). This script runs as a manifest PS1 entry -# inside that cycle, so remapping/deleting W: here kills the share for every -# later manifest entry - Join-Path on a dead W: returns null and the next -# entry dies with "Cannot bind argument to parameter 'LiteralPath' because it -# is null". V: is no good either: Update-MachineNumber.ps1 / Restore-EDncReg.ps1 -# mount V: and run as SYSTEM in the same drive namespace. R: is unclaimed. -Log "Mounting share with SFLD creds: $BackupShareRoot -> R:" -$shareMounted = $false -$sw = [Diagnostics.Stopwatch]::StartNew() -while ($sw.Elapsed.TotalSeconds -lt $ShareTimeoutSec) { - if (Mount-SFLDShare -SharePath $BackupShareRoot -DriveLetter 'R:') { - $shareMounted = $true - break - } - Start-Sleep -Seconds $SharePollSec -} -$sw.Stop() -if ($shareMounted) { - Log ("Share mounted as R: after {0:N1} s" -f $sw.Elapsed.TotalSeconds) -} else { - Log "Mount-SFLDShare failed after $ShareTimeoutSec s. SFLD creds may be missing in HKLM:\SOFTWARE\GE\SFLD\Credentials, or the share is unreachable. Exiting non-zero so the dispatcher logs a failure." 'ERROR' - Log 'Exit 1.' - exit 1 -} - -# All bay-level paths now go through R: (authenticated as SFLD user) so -# Test-Path returns the truth, not access-denied-False. -$bayDir = Join-Path 'R:\' $mn -$srcCur = Join-Path $bayDir 'CurrentData.json' -$srcArc = Join-Path $bayDir 'ArchivedData' -Log "Probing backup paths for bay $mn" -Log " bayDir: $bayDir" -$bayDirExists = Test-Path -LiteralPath $bayDir -Log " bayDir exists: $bayDirExists" -$srcCurExists = Test-Path -LiteralPath $srcCur -Log " CurrentData.json src: $(if ($srcCurExists) { 'present' } else { 'absent' }) - $srcCur" -$srcArcExists = Test-Path -LiteralPath $srcArc -Log " ArchivedData/ src: $(if ($srcArcExists) { 'present' } else { 'absent' }) - $srcArc" - -if (-not $srcCurExists -and -not $srcArcExists) { - Log "No backup waiting for bay $mn (neither CurrentData.json nor ArchivedData\ at bay root) - no work to do this cycle." - & net use R: /delete /y 2>$null | Out-Null - Log 'Exit 0.' - exit 0 -} -if (-not $srcCurExists) { - Log "Partial backup waiting (ArchivedData\ present, CurrentData.json absent). Will restore ArchivedData\ only. Source PC may have had no live UDC session at backup time, or backup partially failed." 'WARN' -} -if (-not $srcArcExists) { - Log "Partial backup waiting (CurrentData.json present, ArchivedData\ absent). Will restore CurrentData.json only." 'WARN' -} - -# -- We have a backup. Restore. ------------------------------------------ -Log "Backup waiting at $bayDir - proceeding with restore" - -# Stop UDC.exe so CurrentData.json isn't locked -$udcProcs = @(Get-Process UDC -ErrorAction SilentlyContinue) -Log "UDC processes currently running: $($udcProcs.Count)" -foreach ($p in $udcProcs) { - try { - Log " stopping UDC.exe PID $($p.Id)" - $p.Kill() - $p.WaitForExit(5000) | Out-Null - Log " stopped" - } catch { - Log " could not stop UDC.exe PID $($p.Id)" 'WARN' - LogErr $_ - } -} -Start-Sleep -Milliseconds 500 - -# Ensure local UDC data dir exists -if (-not (Test-Path -LiteralPath $UdcDataDir)) { - Log "Creating local UDC data dir: $UdcDataDir" - try { - New-Item -Path $UdcDataDir -ItemType Directory -Force | Out-Null - } catch { - Log "Failed to create $UdcDataDir - cannot continue" 'ERROR' - LogErr $_ - & net use R: /delete /y 2>$null | Out-Null - Log 'Exit 1.' - exit 1 - } -} -$localCur = Join-Path $UdcDataDir 'CurrentData.json' -$localArc = Join-Path $UdcDataDir 'ArchivedData' - -# Copy CurrentData.json (only if present at source) -$copiedCur = $false -if ($srcCurExists) { - Log "Copying CurrentData.json" - Log " src: $srcCur" - Log " dst: $localCur" - try { - Copy-Item -LiteralPath $srcCur -Destination $localCur -Force -ErrorAction Stop - $copiedCur = $true - $sz = (Get-Item -LiteralPath $localCur).Length - Log " OK ($sz bytes)" - } catch { - Log " FAILED" 'ERROR' - LogErr $_ - } -} else { - Log "CurrentData.json not present in backup - skipping that copy step" -} - -# Copy ArchivedData/ -$copiedArc = $false -$arcFiles = 0 -$arcBytes = 0 -if ($srcArcExists) { - Log "Copying ArchivedData/" - Log " src: $srcArc" - Log " dst: $localArc" - try { - if (Test-Path -LiteralPath $localArc) { - Log " removing existing $localArc" - Remove-Item -LiteralPath $localArc -Recurse -Force -ErrorAction SilentlyContinue - } - Copy-Item -LiteralPath $srcArc -Destination $localArc -Recurse -Force -ErrorAction Stop - $arcItems = Get-ChildItem -LiteralPath $localArc -Recurse -File -ErrorAction SilentlyContinue - $arcFiles = @($arcItems).Count - $arcBytes = ($arcItems | Measure-Object Length -Sum).Sum - $copiedArc = $true - Log " OK ($arcFiles files, $arcBytes bytes)" - } catch { - Log " FAILED" 'ERROR' - LogErr $_ - } -} else { - Log "ArchivedData/ not present in backup - skipping that copy step" -} - -# One-shot consumption: only consume when every present source has been -# successfully copied. If a source was absent we don't fault on it; if a -# source was present but copy failed, we leave the live backup for retry. -# Must have copied at least one thing to consume. -$consumeOk = (($copiedCur -or -not $srcCurExists) -and ` - ($copiedArc -or -not $srcArcExists) -and ` - ($copiedCur -or $copiedArc)) -Log "consumeOk=$consumeOk (copiedCur=$copiedCur, copiedArc=$copiedArc, srcCurExists=$srcCurExists, srcArcExists=$srcArcExists)" - -if ($consumeOk) { - try { - $stamp = Get-Date -Format 'yyyy-MM-ddTHH-mm-ssZ' - $migDir = Join-Path $bayDir 'migrated' - $migStamp = Join-Path $migDir $stamp - Log "Moving consumed backup to $migStamp" - if (-not (Test-Path -LiteralPath $migDir)) { New-Item -ItemType Directory -Path $migDir -Force | Out-Null } - if (-not (Test-Path -LiteralPath $migStamp)) { New-Item -ItemType Directory -Path $migStamp -Force | Out-Null } - - if (Test-Path -LiteralPath $srcCur) { - Move-Item -LiteralPath $srcCur -Destination (Join-Path $migStamp 'CurrentData.json') -Force -ErrorAction Stop - Log " moved CurrentData.json" - } - if (Test-Path -LiteralPath $srcArc) { - Move-Item -LiteralPath $srcArc -Destination (Join-Path $migStamp 'ArchivedData') -Force -ErrorAction Stop - Log " moved ArchivedData/" - } - $bakManifest = Join-Path $bayDir 'backup.manifest.json' - if (Test-Path -LiteralPath $bakManifest) { - Move-Item -LiteralPath $bakManifest -Destination (Join-Path $migStamp 'backup.manifest.json') -Force -ErrorAction SilentlyContinue - Log " moved backup.manifest.json" - } - - $restoreManifest = [ordered]@{ - RestoredAt = (Get-Date -Format 'o') - DestinationHostname = $env:COMPUTERNAME - DestinationUser = $whoami - MachineNumber = $mn - CurrentDataPresent = $copiedCur - CurrentDataBytes = if ($copiedCur) { (Get-Item -LiteralPath $localCur).Length } else { 0 } - ArchivedDataPresent = $copiedArc - ArchivedDataFiles = $arcFiles - ArchivedDataBytes = $arcBytes - RestoredVia = 'Restore-UDCData.ps1 (manifest engine, on logon)' - } - $restoreManifest | ConvertTo-Json | Set-Content -Path (Join-Path $migStamp 'restore.manifest.json') -Encoding UTF8 - Log " wrote restore.manifest.json" - - Log "Backup consumed -> migrated\$stamp\" - } catch { - Log "Move-to-migrated FAILED (data IS restored locally; live backup remains, next cycle will retry consumption)" 'ERROR' - LogErr $_ - } -} else { - Log "Restore incomplete - leaving live backup at $bayDir for retry next cycle." 'WARN' -} - -# Relaunch UDC with the current machine number args. UDC's vendor autostart in -# HKLM\Run will also fire on the next user logon, so this is belt-and-suspenders -# for the same-session case (e.g. tech is at the keyboard during the restore). -if ((Test-Path -LiteralPath $UdcExePath) -and ($copiedCur -or $copiedArc)) { - Log "Relaunching UDC.exe: `"$Site`" -$mn" - try { - Start-Process -FilePath $UdcExePath -ArgumentList @("`"$Site`"", "-$mn") - Log " relaunched" - } catch { - Log " UDC relaunch FAILED" 'WARN' - LogErr $_ - } -} - -# Unmount the SFLD-creds-mounted drive so we don't leave a stale net-use entry -& net use R: /delete /y 2>$null | Out-Null - -Log 'Exit 0.' -Log '===============================================' -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Set-ControllerCredential.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Set-ControllerCredential.ps1 deleted file mode 100644 index 20ec66d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Set-ControllerCredential.ps1 +++ /dev/null @@ -1,82 +0,0 @@ -# Set-ControllerCredential.ps1 - Self-heal a Windows Credential Manager -# entry for the controller's NIC subnet (default 192.168.1.1). Re-applied -# every GE-Enforce cycle so the entry survives any Defender / policy -# blowaway between cycles. -# -# Why: collections bays periodically lose the controller credential from -# Credential Manager (cause TBD - suspect Defender / Intune scrub). Without -# the cred, controller-side connections need interactive prompts. Restoring -# it on each enforce cycle keeps the bay working unattended. -# -# Wiring: pointed to by gea-shopfloor-collections\manifest.json on the SFLD -# share. GE-Enforce calls this directly via the Install-FromManifest PS1 -# action type. Idempotent - cmdkey /add overwrites silently if the entry -# already exists. -# -# Edit the three values below to set the actual credential, then push the -# manifest entry to the SFLD share (see README in same dir). -# -# Log: C:\Logs\Shopfloor\controller-credential.log - -$ErrorActionPreference = 'Continue' - -# --- EDIT THESE THREE VALUES --- -$Target = '192.168.1.1' # Controller IP or hostname -$Username = 'CHANGEME' # Controller-side username -$Password = 'CHANGEME' # Controller-side password -# --- END EDIT --- - -$logDir = 'C:\Logs\Shopfloor' -if (-not (Test-Path $logDir)) { - try { New-Item -Path $logDir -ItemType Directory -Force | Out-Null } catch { $logDir = $env:TEMP } -} -$logFile = Join-Path $logDir 'controller-credential.log' - -function Write-CredLog { - param([string]$Message, [string]$Level = 'INFO') - $line = '[{0}] [{1}] [{2}] {3}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Level, $env:USERNAME, $Message - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Write-CredLog "=== Set-ControllerCredential start (target=$Target) ===" - -if ($Username -eq 'CHANGEME' -or $Password -eq 'CHANGEME') { - Write-CredLog 'Credential placeholders not filled in - refusing to write CHANGEME values' 'ERROR' - exit 1 -} - -# Check current state. cmdkey /list output for a missing target returns -# 'Currently stored credentials: ... NONE' or omits the target. -$listOut = & cmdkey /list:$Target 2>&1 | Out-String -if ($listOut -match [regex]::Escape("Target: $Target")) { - Write-CredLog "Entry for $Target already present in Credential Manager - re-applying anyway (cmdkey /add updates idempotently)" -} else { - Write-CredLog "No entry for $Target found in Credential Manager - adding" -} - -# cmdkey /add expects /generic for non-domain creds (SMB / RDP / SQL). -# Use /add: for plain network credential (matches the older 'net use' -# style cred used by NET shares + most non-AD apps). Switch to /generic: -# if the target is HTTP / RDP TERMSRV-specific. -& cmdkey /add:$Target /user:$Username /pass:$Password 2>&1 | ForEach-Object { - Write-CredLog " cmdkey: $_" -} -$rc = $LASTEXITCODE -if ($rc -eq 0) { - Write-CredLog "cmdkey /add succeeded (target=$Target user=$Username)" -} else { - Write-CredLog "cmdkey /add failed (exit $rc)" 'ERROR' - exit $rc -} - -# Quick verify -$verify = & cmdkey /list:$Target 2>&1 | Out-String -if ($verify -match [regex]::Escape("Target: $Target")) { - Write-CredLog 'Verification passed - entry present after add' -} else { - Write-CredLog 'Verification FAILED - entry not visible after add' 'WARN' -} - -Write-CredLog '=== Set-ControllerCredential end ===' -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Set-MachineNumber.bat b/playbook/shopfloor-setup/gea-shopfloor-collections/Set-MachineNumber.bat deleted file mode 100644 index ee1fd75..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Set-MachineNumber.bat +++ /dev/null @@ -1,38 +0,0 @@ -@echo off -REM Set-MachineNumber.bat - Wrapper for Set-MachineNumber.ps1 -REM -REM Looks for the .ps1 in three places, in order: -REM 1. %~dp0Set-MachineNumber.ps1 -REM - .bat and .ps1 side-by-side (normal desktop-copied case, repo layout) -REM 2. C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1 -REM - dispatcher-copied location, if this .bat lives somewhere else -REM 3. C:\Enrollment\shopfloor-setup\gea-shopfloor-collections\Set-MachineNumber.ps1 -REM - canonical enrollment staging copy -REM -REM Goto-based dispatch - no nested if blocks, no literal parens in echo lines. -REM CMD parses "if (...)" blocks by counting parens and will silently eat any -REM "(" or ")" inside an echo, so keeping the flow flat avoids that class of -REM syntax bomb entirely. - -setlocal -set "PS1=%~dp0Set-MachineNumber.ps1" -if exist "%PS1%" goto :run - -set "PS1=C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1" -if exist "%PS1%" goto :run - -set "PS1=C:\Enrollment\shopfloor-setup\gea-shopfloor-collections\Set-MachineNumber.ps1" -if exist "%PS1%" goto :run - -echo ERROR: Set-MachineNumber.ps1 not found in any of: -echo %~dp0Set-MachineNumber.ps1 -echo C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1 -echo C:\Enrollment\shopfloor-setup\gea-shopfloor-collections\Set-MachineNumber.ps1 -echo. -pause -exit /b 1 - -:run -echo Launching: %PS1% -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%PS1%" -exit /b %errorlevel% diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/Set-MachineNumber.ps1 b/playbook/shopfloor-setup/gea-shopfloor-collections/Set-MachineNumber.ps1 deleted file mode 100644 index c07ad60..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/Set-MachineNumber.ps1 +++ /dev/null @@ -1,131 +0,0 @@ -# Set-MachineNumber.ps1 - Update UDC + eDNC machine number on a Standard shopfloor PC -# -# Purpose: -# Both UDC and eDNC use the same per-machine identifier ("Workstation Number" / -# "Machine Number"). On Standard PCs imaged via PXE preinstall, both are installed -# with a placeholder. When the PC is brought to its physical machine and assigned -# a real number, this helper updates both apps in one step. -# -# Persistence locations updated: -# 1. UDC: C:\ProgramData\UDC\udc_settings.json (GeneralSettings.MachineNumber) -# 2. eDNC: HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General\MachineNo -# -# After updating, kills any running UDC.exe and relaunches it with the new args -# so the in-memory state matches the persisted value. -# -# Run as SupportUser (admin). Requires write access to ProgramData and HKLM. - -Add-Type -AssemblyName Microsoft.VisualBasic -Add-Type -AssemblyName System.Windows.Forms - -. "$PSScriptRoot\..\Shopfloor\lib\Get-PCProfile.ps1" -. "$PSScriptRoot\..\Shopfloor\lib\Update-MachineNumber.ps1" - -$site = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } - -# --- Read current values for display --- -$currentMN = Get-CurrentMachineNumber -$currentUdc = $currentMN.Udc -$currentEdnc = $currentMN.Ednc - -# --- Show prompt with current state --- -$promptLines = @() -$promptLines += "Current UDC machine number: $(if ($currentUdc) { $currentUdc } else { '(not set)' })" -$promptLines += "Current eDNC machine number: $(if ($currentEdnc) { $currentEdnc } else { '(not set)' })" -$promptLines += "" -$promptLines += "Enter the new Machine Number for this PC:" -$prompt = $promptLines -join "`n" - -$new = [Microsoft.VisualBasic.Interaction]::InputBox($prompt, "Set Machine Number", "") - -if ([string]::IsNullOrWhiteSpace($new)) { - Write-Host "Cancelled." - exit 0 -} - -$new = $new.Trim() - -# --- Validate: digits only (loosen if you need alphanumerics) --- -if ($new -notmatch '^\d+$') { - [System.Windows.Forms.MessageBox]::Show( - "Machine number must be digits only.`n`nYou entered: '$new'", - "Invalid Machine Number", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Error - ) | Out-Null - exit 1 -} - -# --- Reassign confirmation (real -> real). Placeholder (9999/null) skips. --- -$currentIsReal = (($currentUdc -and $currentUdc -ne '9999') -or - ($currentEdnc -and $currentEdnc -ne '9999')) -$differsFromNew = ($currentUdc -ne $new) -or ($currentEdnc -ne $new) -if ($currentIsReal -and $differsFromNew) { - $oldDisplay = if ($currentUdc) { $currentUdc } else { $currentEdnc } - $confirmMsg = @( - "Reassign machine number from $oldDisplay to $new ?" - "" - "This will pull from the SFLD share for $new :" - " - NTLARS .reg backup (eFocas / PPDCS / Hssb)" - " - UDC settings (udc_settings_$new.json)" - " - UDC live data backup (if present)" - "" - "Use this only when the PC was imaged with the wrong number." - ) -join "`n" - $confirm = [System.Windows.Forms.MessageBox]::Show( - $confirmMsg, - "Confirm Reassignment", - [System.Windows.Forms.MessageBoxButtons]::OKCancel, - [System.Windows.Forms.MessageBoxIcon]::Warning - ) - if ($confirm -ne [System.Windows.Forms.DialogResult]::OK) { - Write-Host "Reassignment cancelled." - exit 0 - } -} - -$mnResult = Update-MachineNumber -NewNumber $new -Site $site - -# --- Audit log: one line per machine-number change. Best-effort. --- -try { - $logDir = 'C:\Logs\Shopfloor' - if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } - $logFile = Join-Path $logDir 'reassign.log' - $now = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') - $whoami = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name - $oldDisp = if ($mnResult.OldUdc) { $mnResult.OldUdc } elseif ($mnResult.OldEdnc) { $mnResult.OldEdnc } else { '(none)' } - $regFlag = if ($mnResult.RegImported) { 'OK' } else { 'skip' } - $udcFlag = if ($mnResult.UdcSettingsRestored) { 'OK' } else { 'skip' } - $dataFlag = if ($mnResult.UdcRestored) { 'OK' } else { 'skip' } - $mtcCnt = @($mnResult.MTConnectUpdated).Count - $line = "$now $env:COMPUTERNAME user=$whoami $oldDisp -> $new udc=$($mnResult.UdcUpdated) ednc=$($mnResult.EdncUpdated) reg=$regFlag settings=$udcFlag data=$dataFlag mtc=$mtcCnt" - Add-Content -Path $logFile -Value $line -Encoding UTF8 -} catch {} - -$results = @() -if ($mnResult.UdcUpdated) { - Write-Host "UDC: $currentUdc -> $new" - $results += "UDC updated to $new" -} elseif (-not (Test-Path 'C:\ProgramData\UDC\udc_settings.json')) { - $results += "UDC: settings file missing (run UDC.exe once first)" -} -if ($mnResult.EdncUpdated) { - Write-Host "eDNC: $currentEdnc -> $new" - $results += "eDNC updated to $new" -} elseif (-not (Test-Path 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General')) { - $results += "eDNC: registry key missing (eDNC not installed?)" -} -foreach ($err in $mnResult.Errors) { - Write-Warning $err - $results += $err -} -if ($mnResult.UdcUpdated) { Write-Host "UDC.exe relaunched." } - -# --- Show summary --- -$summary = ($results -join "`n") + "`n`nTo apply eDNC changes, restart any running DncMain.exe." -[System.Windows.Forms.MessageBox]::Show( - $summary, - "Set Machine Number - Done", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Information -) | Out-Null diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/eDNC/eDNC-6.4.7.msi b/playbook/shopfloor-setup/gea-shopfloor-collections/eDNC/eDNC-6.4.7.msi deleted file mode 100755 index 04b4f74..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-collections/eDNC/eDNC-6.4.7.msi and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/manifest-entry-controller-credential.json b/playbook/shopfloor-setup/gea-shopfloor-collections/manifest-entry-controller-credential.json deleted file mode 100644 index de742e1..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/manifest-entry-controller-credential.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_comment": "Drop this entry into the SFLD share at \\tsgwp00525\\sfld$\\v2\\shared\\dt\\shopfloor\\gea-shopfloor-collections\\manifest.json (Applications array). Place both Register-ControllerCredentialTask.ps1 AND Set-ControllerCredential.ps1 in the apps/ dir on the share. Edit Set-ControllerCredential.ps1 to fill in the real $Username + $Password before pushing. The Register script runs once under SYSTEM (MarkerFile detection), copies Set-ControllerCredential.ps1 locally, and creates an AtLogOn scheduled task that runs cmdkey /add in the ShopFloor user's session. The task re-applies every logon, covering Defender / Intune credential scrubs.", - "Name": "Controller credential task for Okuma LOC650 bays (192.168.1.1)", - "PCTypes": ["gea-shopfloor-collections"], - "TargetMachineNumbers": ["3201", "3202", "3203", "3204", "3205", "3206", "3207", "3208", "3209", "3210", "3211", "3212"], - "Script": "apps/Register-ControllerCredentialTask.ps1", - "Type": "PS1", - "DetectionMethod": "MarkerFile", - "DetectionPath": "C:\\ProgramData\\GE\\Shopfloor\\markers\\controller-credential-task.marker" -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/manifest-entry-report-asset.json b/playbook/shopfloor-setup/gea-shopfloor-collections/manifest-entry-report-asset.json deleted file mode 100644 index ee99d76..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/manifest-entry-report-asset.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "_comment": "Drop this entry into the SFLD share at \\tsgwp00525\\sfld$\\v2\\shared\\dt\\shopfloor\\gea-shopfloor-collections\\manifest.json (Applications array). Place Report-AssetToShopDB.ps1 in the apps/ dir on the share. Type=PS1 + DetectionMethod=Always means GE-Enforce runs it straight off the share every cycle (at-logon, periodic 5-min, shift-change) under SYSTEM, no local copy. The script reads hostname, BIOS serial, eDNC MachineNo and the corp/AESFMA IPv4 (filtered to WJ corp ranges 10.134.48.0/23 + 10.48.249.0/26) and POSTs action=updateCompleteAsset to ShopDB. api.asp upserts the machines row by hostname, clears+reinserts interface rows, and recreates the PC-to-machine relationship from machineNo, so repeat fires are safe. Override the ShopDB URL with the Args field if the host/path moves, e.g. \"Args\": \"-ApiUrl https://newhost/shopdb/api.asp\".", - "Name": "Report asset (host + IP + machine number) to ShopDB", - "PCTypes": ["gea-shopfloor-collections"], - "Script": "apps/Report-AssetToShopDB.ps1", - "Type": "PS1", - "DetectionMethod": "Always" -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3037.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3037.json deleted file mode 100755 index 4774bf5..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3037.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3037", - "MachineNumberDual": "3038", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": true, - "UseSecondComPort": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": false, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "16", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3101.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3101.json deleted file mode 100755 index 954a30a..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3101.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3101", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3102.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3102.json deleted file mode 100755 index 64e0fd4..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3102.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3102", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3103.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3103.json deleted file mode 100755 index bd1729e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3103.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3103", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3104.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3104.json deleted file mode 100755 index a7b1ee8..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3104.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3104", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3105.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3105.json deleted file mode 100755 index 6945859..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3105.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3105", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3106.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3106.json deleted file mode 100755 index 0c64f27..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3106.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3106", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM5", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3107.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3107.json deleted file mode 100755 index 5464502..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3107.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3107", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3108.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3108.json deleted file mode 100755 index 0e519ad..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3108.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3108", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3109.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3109.json deleted file mode 100755 index a60fb8c..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3109.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3109", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3110.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3110.json deleted file mode 100755 index 39cff8e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3110.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3110", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3111.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3111.json deleted file mode 100755 index 5485ab0..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3111.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3111", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3112.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3112.json deleted file mode 100755 index 989ee9a..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3112.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3112", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3113.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3113.json deleted file mode 100755 index 41341f7..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3113.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3113", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3114.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3114.json deleted file mode 100755 index 7ea894e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3114.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "GeneralSettings": { - "Site": "West", - "MachineNumber": "3114", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "UseSecondComPort": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3115.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3115.json deleted file mode 100755 index 5e398d4..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3115.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3115", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "UseSecondComPort": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3116.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3116.json deleted file mode 100755 index cec9157..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3116.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3116", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3117.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3117.json deleted file mode 100755 index 81eeb70..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3117.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3117", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3118.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3118.json deleted file mode 100755 index b134b7a..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3118.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3118", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3119.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3119.json deleted file mode 100755 index feac880..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3119.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3119", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3120.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3120.json deleted file mode 100755 index 5a49083..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3120.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3120", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3121.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3121.json deleted file mode 100755 index e5faa2e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3121.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3121", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3122.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3122.json deleted file mode 100755 index 5cc82da..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3122.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3122", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3123.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3123.json deleted file mode 100755 index 3f436e4..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3123.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3123", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3124.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3124.json deleted file mode 100755 index 5230441..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3124.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3124", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3125.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3125.json deleted file mode 100755 index e40a987..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3125.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3125", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3126.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3126.json deleted file mode 100755 index 0aa14ce..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3126.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3126", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3127.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3127.json deleted file mode 100755 index 9cade0f..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3127.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3127", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3128.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3128.json deleted file mode 100755 index 541a9d3..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3128.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3128", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM5", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3129.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3129.json deleted file mode 100755 index 2c0b2b3..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3129.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3129", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM6", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3201.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3201.json deleted file mode 100755 index 41e5578..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3201.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3201", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3202.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3202.json deleted file mode 100755 index fd3eed1..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3202.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3202", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM5", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3203.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3203.json deleted file mode 100755 index 9ed8844..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3203.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3203", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3204.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3204.json deleted file mode 100755 index 978b696..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3204.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3204", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3205.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3205.json deleted file mode 100755 index aa44621..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3205.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3205", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3206.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3206.json deleted file mode 100755 index b34c9a2..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3206.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3206", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3207.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3207.json deleted file mode 100755 index 6c0081e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3207.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3207", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3208.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3208.json deleted file mode 100755 index c109d69..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3208.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3208", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3209.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3209.json deleted file mode 100755 index 0b546af..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3209.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3209", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3210.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3210.json deleted file mode 100755 index 554909d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3210.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3210", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3211.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3211.json deleted file mode 100755 index ee8900d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3211.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3211", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM2", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3212.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3212.json deleted file mode 100755 index b8b0d53..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_3212.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "3212", - "SerialEthernet": "Serial", - "ControlType": "Okuma", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "InhibitOnOff": false - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4001.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4001.json deleted file mode 100755 index b5bf8d4..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4001.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4001", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM2", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4002.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4002.json deleted file mode 100755 index 779363a..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4002.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4002", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4003.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4003.json deleted file mode 100755 index fe5c458..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4003.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4003", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4004.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4004.json deleted file mode 100755 index 2f3e067..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4004.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4004", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4005.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4005.json deleted file mode 100755 index 26340d7..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4005.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4005", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4006.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4006.json deleted file mode 100755 index 8ffeaa3..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4006.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4006", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 7, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4007.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4007.json deleted file mode 100755 index 84389e4..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4007.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4007", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM5", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4008.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4008.json deleted file mode 100755 index 51e3dac..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4008.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4008", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "11", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4101.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4101.json deleted file mode 100755 index dc04061..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4101.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4101", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM5", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.11", - "Port": "8193", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4102.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4102.json deleted file mode 100755 index 8091021..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4102.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4102", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.2", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4103.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4103.json deleted file mode 100755 index 399e976..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_4103.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "4103", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7401.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7401.json deleted file mode 100755 index b497674..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7401.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7401", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.0.114", - "Port": "8192", - "KeepRelay": "16", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7402.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7402.json deleted file mode 100755 index 91feb5b..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7402.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7402", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.0.114", - "Port": "8192", - "KeepRelay": "16", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7403.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7403.json deleted file mode 100755 index aa29a0c..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7403.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7403", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.0.114", - "Port": "8192", - "KeepRelay": "16", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7404.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7404.json deleted file mode 100755 index 9fe9e2e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7404.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7404", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.0.114", - "Port": "8192", - "KeepRelay": "16", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7405.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7405.json deleted file mode 100755 index e5fa95b..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7405.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7405", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.0.114", - "Port": "8192", - "KeepRelay": "16", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7501.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7501.json deleted file mode 100755 index a5523bc..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7501.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7501", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7502.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7502.json deleted file mode 100755 index 7757e2e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7502.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7502", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "21", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7503.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7503.json deleted file mode 100755 index 7437c90..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7503.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7503", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "21", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7504.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7504.json deleted file mode 100755 index 5fafef1..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7504.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7504", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "21", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7505.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7505.json deleted file mode 100755 index e7c6f33..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7505.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7505", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "21", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7506.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7506.json deleted file mode 100755 index 7f31b5c..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7506.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7506", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "21", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7507.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7507.json deleted file mode 100755 index c783903..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7507.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7507", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "21", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7601.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7601.json deleted file mode 100755 index 269b59c..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7601.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7601", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7602.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7602.json deleted file mode 100755 index b5115ab..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7602.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7602", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM5", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7603.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7603.json deleted file mode 100755 index 4b4904f..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7603.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7603", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7604.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7604.json deleted file mode 100755 index ce81234..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7604.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7604", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7605.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7605.json deleted file mode 100755 index e8c25fc..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7605.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7605", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7606.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7606.json deleted file mode 100755 index 463a080..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7606.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7602", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.rd.ds.ge.com\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.rd.ds.ge.com\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true - }, - "EthernetSettings": { - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM3", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7607.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7607.json deleted file mode 100755 index c8863da..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7607.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7607", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7608.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7608.json deleted file mode 100755 index cbb10f3..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7608.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7608", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7801.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7801.json deleted file mode 100755 index 35620b0..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7801.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7801", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM2", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7802.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7802.json deleted file mode 100755 index 4cf0af8..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7802.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7802", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 7, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7803.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7803.json deleted file mode 100755 index e337177..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7803.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7803", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7804.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7804.json deleted file mode 100755 index 0ed4b32..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_7804.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "7804", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8192", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8001.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8001.json deleted file mode 100755 index fc92a8d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8001.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "8001", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8002.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8002.json deleted file mode 100755 index a938a7a..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8002.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "8002", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM1", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8003.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8003.json deleted file mode 100755 index e7f3fac..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc-backups/udc_settings_8003.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "GeneralSettings": { - "Site": "WestJefferson", - "MachineNumber": "8003", - "SerialEthernet": "Serial", - "ControlType": "eFocas", - "DncType": "eDNC", - "UploadShared": true, - "UploadFTP": false, - "ServerDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\CLM_Data", - "UploadQCCalc": true, - "QCCalcDataPath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\UDC_Data", - "FtpServerPath": "", - "RemoveInhibitPW": "R3m0ve", - "StartOnBoot": true, - "ShowGUI": true, - "DualPath": false, - "HeaderRequired": true, - "UpdateReminderDelay": 15, - "MTCYesNo": true, - "MTCPort": 6005, - "IsBadgeScan": true, - "AutoScroll": true - }, - "EthernetSettings": { - "TCPAddress": "127.0.0.1", - "TCPPort": 0 - }, - "SerialSettings": { - "ComPort": "COM4", - "BaudRate": 9600, - "Parity": 0, - "DataBits": 8, - "StopBits": 1, - "CycleStart": false - }, - "SerialSettingsPath2": { - "ComPort": "COM2", - "BaudRate": 0, - "Parity": 0, - "DataBits": 0, - "StopBits": 1, - "CycleStart": false - }, - "FtpSettings": {}, - "FocasSettings": { - "IPAddress": "192.168.1.1", - "Port": "8193", - "KeepRelay": "10", - "WriteVar": "101", - "DprntUser": "", - "DprntPassword": "", - "InhibitOnOff": true - } -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-collections/udc_webserver_settings.json b/playbook/shopfloor-setup/gea-shopfloor-collections/udc_webserver_settings.json deleted file mode 100755 index dd7729a..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-collections/udc_webserver_settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "ServerAddress": "10.233.113.139", - "ServerPort": 5100, - "Enabled": true, - "ReconnectDelaySeconds": 10, - "ConnectTimeoutSeconds": 10, - "MaxQueue": 1000 -} \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-common/09-Setup-Common.ps1 b/playbook/shopfloor-setup/gea-shopfloor-common/09-Setup-Common.ps1 deleted file mode 100644 index 5417b01..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-common/09-Setup-Common.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -# 09-Setup-Common.ps1 - common pc-type setup -# -# common = OpenText-only shopfloor PC. No UDC (collections-only), -# no eDNC (collections + nocollections only). OpenText installs in -# the preinstall phase via Setup-OpenText.ps1; this script just adds -# the auto-start so HostExplorer's "WJ Shopfloor" session launches -# at every login. - -$lib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Set-OpenTextAutoStart.ps1' - -Write-Host '=== Common Setup ===' -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-Common: starting' -StageIndex 3 -StageTotal 8 } catch { } -} -if (Test-Path -LiteralPath $lib) { - & $lib -} else { - Write-Warning "Set-OpenTextAutoStart.ps1 not found at $lib - OpenText auto-start NOT configured" -} -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '09-Setup-Common: complete' -StageIndex 4 -StageTotal 8 -} -Write-Host '=== Common Setup Complete ===' diff --git a/playbook/shopfloor-setup/gea-shopfloor-display/09-Setup-Display.ps1 b/playbook/shopfloor-setup/gea-shopfloor-display/09-Setup-Display.ps1 deleted file mode 100644 index 1f9738c..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-display/09-Setup-Display.ps1 +++ /dev/null @@ -1,92 +0,0 @@ -# 09-Setup-Display.ps1 -- Display pc-type setup (runs after Shopfloor baseline) -# -# Display = lobby display / dashboard kiosk PC. Kiosk app itself -# (LobbyDisplay or Dashboard) installs via preinstall.json (Install- -# KioskApp.cmd reads display-type.txt). No OpenText, no eDNC, no UDC. -# -# This script applies Edge kiosk-mode relaunch policies so the -# "An update is available - restart Edge" dialog auto-clears without -# requiring keyboard/mouse interaction (display bays have neither). -# -# Refs: -# https://learn.microsoft.com/en-us/deployedge/microsoft-edge-browser-policies/relaunchnotification -# https://learn.microsoft.com/en-us/deployedge/microsoft-edge-configure-kiosk-mode - -$ErrorActionPreference = 'Continue' - -Write-Host '=== Display Setup ===' - -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-Display: starting' -StageIndex 3 -StageTotal 8 } catch { } -} - -# --- Edge relaunch policies (suppress update-prompt dialog on kiosks) --- -$edgePolicy = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge' -if (-not (Test-Path -LiteralPath $edgePolicy)) { - New-Item -Path $edgePolicy -Force | Out-Null -} - -# RelaunchNotification = 2 (Required): Edge auto-restarts itself after the -# notification period. Display has no operator to click "dismiss" so this -# is the only mode that recovers without intervention. -New-ItemProperty -Path $edgePolicy -Name 'RelaunchNotification' -Value 2 -PropertyType DWord -Force | Out-Null - -# RelaunchNotificationPeriod (ms): time before forced auto-restart. -# 3600000 ms = 1 hour. Short window minimises how long the dialog is on -# screen but still gives an active session a chance to finish. -New-ItemProperty -Path $edgePolicy -Name 'RelaunchNotificationPeriod' -Value 3600000 -PropertyType DWord -Force | Out-Null - -# RelaunchHeadsUpPeriod (ms): final warning duration before auto-restart. -# 60000 ms = 1 min. Trims the visible warning to a minute before relaunch. -New-ItemProperty -Path $edgePolicy -Name 'RelaunchHeadsUpPeriod' -Value 60000 -PropertyType DWord -Force | Out-Null - -# RelaunchWindow: schedules the forced restart in an overnight window -# (02:00-04:00) so business-hour updates wait until off-hours, leaving the -# dialog effectively invisible during the day. JSON format per MS docs. -$relaunchWindow = '{"entries":[{"start":{"hour":2,"minute":0},"duration_mins":120}]}' -New-ItemProperty -Path $edgePolicy -Name 'RelaunchWindow' -Value $relaunchWindow -PropertyType String -Force | Out-Null - -Write-Host " Edge RelaunchNotification=2 (Required, auto-restart)" -Write-Host " Edge RelaunchNotificationPeriod=1h" -Write-Host " Edge RelaunchHeadsUpPeriod=1m" -Write-Host " Edge RelaunchWindow=02:00-04:00" - -# --- Arm the ShopDB kiosk bootstrap ------------------------------------- -# A PXE-imaged display ends up with no GE-Enforce client: the installer pulls -# itself from {BaseUrl}/installers/kiosk over HTTPS, and ShopDB is unreachable -# until the bay joins the AESFMA wifi SSID. So it cannot run now. -# -# Register a SYSTEM task that does nothing until ShopDB answers, then runs the -# vendor installer once and unregisters itself. At boot and every 15 minutes, -# so a bay cabled up days later still self-configures. -Write-Host '=== Arming ShopDB kiosk bootstrap ===' -$bootstrap = Join-Path $PSScriptRoot 'Install-ShopdbKiosk-WhenOnline.ps1' -$taskName = 'ShopDB Kiosk Bootstrap' - -if (-not (Test-Path $bootstrap)) { - Write-Warning " $bootstrap not found - kiosk will NOT self-configure. Tell the PXE admin." -} else { - try { - $action = New-ScheduledTaskAction -Execute 'powershell.exe' ` - -Argument ('-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "{0}" -TaskName "{1}"' -f $bootstrap, $taskName) - $trigBoot = New-ScheduledTaskTrigger -AtStartup - $trigRep = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(5) ` - -RepetitionInterval (New-TimeSpan -Minutes 15) - $principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest - $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries ` - -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Minutes 30) - Register-ScheduledTask -TaskName $taskName -Action $action ` - -Trigger @($trigBoot, $trigRep) -Principal $principal -Settings $settings ` - -Force -ErrorAction Stop | Out-Null - Write-Host " Registered '$taskName' (at boot + every 15 min, SYSTEM)" - Write-Host " It waits for ShopDB, installs the enforce client, then removes itself." - } catch { - Write-Warning " Failed to register '$taskName': $_" - } -} - -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '09-Setup-Display: complete' -StageIndex 4 -StageTotal 8 -} -Write-Host '=== Display Setup Complete ===' diff --git a/playbook/shopfloor-setup/gea-shopfloor-display/Install-ShopdbKiosk-WhenOnline.ps1 b/playbook/shopfloor-setup/gea-shopfloor-display/Install-ShopdbKiosk-WhenOnline.ps1 deleted file mode 100644 index f9efbf2..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-display/Install-ShopdbKiosk-WhenOnline.ps1 +++ /dev/null @@ -1,189 +0,0 @@ -<# -.SYNOPSIS - Run the ShopDB kiosk installer as soon as ShopDB becomes reachable. - -.DESCRIPTION - A PXE-imaged display currently ends up with NO GE-Enforce client at all. - Confirmed on 579C144, 2026-08-06: - - is the client installed? NOT FOUND - scheduled tasks that would run it? NONE - - The client is delivered by Install-ShopdbKiosk.ps1, which downloads itself - from {BaseUrl}/installers/kiosk over HTTPS - and ShopDB is only reachable - once the bay has joined the AESFMA wifi SSID. So the installer cannot run - during imaging, and nothing was arranged to run it afterwards. - - This closes that gap. Imaging stages the installer and the key; this waiter - runs as SYSTEM on a schedule, does nothing until ShopDB answers, then runs - the installer once and removes itself. - - Deliberately does NOT reimplement the installer. It waits, invokes, verifies - and cleans up - the vendor script keeps doing the actual work, so it can be - replaced wholesale without touching this. - -.PARAMETER EnrollmentRoot - Where imaging staged things. Expects: - \display-type.txt Dashboard | Lobby | 3DPrintRoom - and, beside this script (see -KioskRoot): - kiosk\Install-ShopdbKiosk.ps1 - kiosk\shopdb-key.txt (optional) labelled: collector=..., fetch=... - -.PARAMETER TaskName - The scheduled task to remove once installation succeeds. - -.NOTES - The key file is deleted after a successful install. The installer writes the - secrets into HKLM:\SOFTWARE\GE\ShopDB, which is ACLed to SYSTEM and - Administrators - a better home than a file readable by any local user until - lockdown. Bounding that exposure to the imaging window is the point. -#> - -[CmdletBinding()] -param( - [string]$EnrollmentRoot = 'C:\Enrollment', - - # Where the staged installer and key live. Defaults to kiosk\ NEXT TO THIS - # SCRIPT, not under EnrollmentRoot: startnet copies the whole type-specific - # tree to - # C:\Enrollment\shopfloor-setup\gea-shopfloor-display\ - # so the payload arrives beside this file, not at C:\Enrollment\kiosk. - # Getting this wrong is silent - the bootstrap just logs "not staged" every - # cycle and never installs anything. - [string]$KioskRoot = (Join-Path $PSScriptRoot 'kiosk'), - [string]$BaseUrl = 'https://tsgwp00525.wjs.geaerospace.net/shopdb', - [string]$TaskName = 'ShopDB Kiosk Bootstrap', - [int]$TimeoutSeconds = 30 -) - -$ErrorActionPreference = 'Continue' -$logDir = 'C:\Logs\ShopDB' -$log = Join-Path $logDir 'kiosk-bootstrap.log' -New-Item -ItemType Directory -Path $logDir -Force -EA SilentlyContinue | Out-Null - -function Log { param([string]$m) - $line = "{0} {1}" -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $m - Write-Host $line - Add-Content -Path $log -Value $line -EA SilentlyContinue -} - -function Remove-Self { - try { - Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -EA Stop - Log "Unregistered '$TaskName' - nothing further to do." - } catch { Log "Could not unregister '$TaskName': $_" } -} - -Log "=== kiosk bootstrap ===" - -# --- already done? ------------------------------------------------------ -# Both conditions, not just the registry key: BaseUrl alone can be present from -# a partial run, and the enforce task is what actually proves an install. -$reg = 'HKLM:\SOFTWARE\GE\ShopDB' -$haveCfg = (Test-Path $reg) -and ((Get-ItemProperty $reg -EA SilentlyContinue).BaseUrl) -$haveTask = [bool](Get-ScheduledTask -EA SilentlyContinue | - Where-Object { $_.TaskName -match '(?i)shopdb.*enforce' }) -if ($haveCfg -and $haveTask) { - Log "Already installed (BaseUrl set, enforce task present)." - Remove-Self - return -} - -# --- what kind of display is this? -------------------------------------- -$dtFile = Join-Path $EnrollmentRoot 'display-type.txt' -if (-not (Test-Path $dtFile)) { - Log "No $dtFile - cannot choose a DisplayType. Leaving the task armed." - return -} -$displayType = (Get-Content $dtFile -First 1).Trim() -if ($displayType -notin @('Dashboard','Lobby','3DPrintRoom')) { - Log "display-type.txt says '$displayType', which the installer will reject. Leaving armed." - return -} -Log "DisplayType: $displayType" - -$installer = Join-Path $KioskRoot 'Install-ShopdbKiosk.ps1' -if (-not (Test-Path $installer)) { - Log "Installer not staged at $installer. Leaving armed." - return -} - -# --- is ShopDB reachable yet? ------------------------------------------- -# Expected to fail until the bay joins AESFMA. That is the whole reason this -# script exists, so a failure here is logged quietly and retried, not raised. -$probe = "$($BaseUrl.TrimEnd('/'))/api/docs" -try { - $r = Invoke-WebRequest -Uri $probe -UseBasicParsing -TimeoutSec $TimeoutSeconds -EA Stop - Log "ShopDB reachable (HTTP $($r.StatusCode))." -} catch { - $code = try { $_.Exception.Response.StatusCode.value__ } catch { $null } - if ($code) { - # Answered at all = reachable. 401/403 just means no token on this probe. - Log "ShopDB reachable (HTTP $code)." - } else { - Log "Not reachable yet - waiting for AESFMA. ($($_.Exception.Message))" - return - } -} - -# --- keys ---------------------------------------------------------------- -$keyFile = Join-Path $KioskRoot 'shopdb-key.txt' -$collectorKey = '' -$fetchToken = '' -if (Test-Path $keyFile) { - # LABELLED format, because the two tokens are not interchangeable and a - # positional mix-up is silent: a fetch token in the collector slot leaves - # asset reporting broken while everything looks configured. - # - # collector= always needed for asset reporting - # fetch= optional when the subnet is allowlisted - # - # A bare single line is REJECTED rather than guessed at. - foreach ($line in (Get-Content $keyFile -EA SilentlyContinue)) { - $t = $line.Trim() - if (-not $t -or $t.StartsWith('#')) { continue } - if ($t -match '^(?i)collector\s*=\s*(.+)$') { $collectorKey = $Matches[1].Trim() } - elseif ($t -match '^(?i)fetch\s*=\s*(.+)$') { $fetchToken = $Matches[1].Trim() } - else { - Log "Key file line is not labelled 'collector=' or 'fetch=' - ignoring it rather than guessing which token it is." - } - } - Log ("Key file present (collector={0}, fetch={1})" -f ` - $(if ($collectorKey) { 'yes' } else { 'no' }), $(if ($fetchToken) { 'yes' } else { 'no' })) -} else { - # Not fatal. The fetch token is unnecessary when the kiosk subnet is - # IP-allowlisted; only the asset-report task needs the collector key, and - # the installer skips that task rather than failing. - Log "No key file - installing without tokens (allowlisted subnets still work; no asset reporting)." -} - -# --- run the vendor installer ------------------------------------------- -$args = @{ DisplayType = $displayType; BaseUrl = $BaseUrl } -if ($collectorKey) { $args.CollectorKey = $collectorKey } -if ($fetchToken) { $args.ShopdbToken = $fetchToken } - -Log "Running $installer ..." -try { - & $installer @args 2>&1 | ForEach-Object { Log " $_" } -} catch { - Log "Installer threw: $_" - return -} - -# --- verify, then clean up ---------------------------------------------- -$haveCfg = (Test-Path $reg) -and ((Get-ItemProperty $reg -EA SilentlyContinue).BaseUrl) -$haveTask = [bool](Get-ScheduledTask -EA SilentlyContinue | - Where-Object { $_.TaskName -match '(?i)shopdb.*enforce' }) -if ($haveCfg -and $haveTask) { - Log "Install verified: BaseUrl set and enforce task registered." - if (Test-Path $keyFile) { - # The installer has moved the secrets into HKLM (SYSTEM/Admins ACL). - # The staged copy is readable by any local user until lockdown, so it - # goes now rather than lingering. - Remove-Item $keyFile -Force -EA SilentlyContinue - Log "Removed staged key file." - } - Remove-Self -} else { - Log "Installer ran but verification FAILED (BaseUrl=$haveCfg, enforceTask=$haveTask). Leaving armed to retry." -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-genspect/09-Setup-Genspect.ps1 b/playbook/shopfloor-setup/gea-shopfloor-genspect/09-Setup-Genspect.ps1 deleted file mode 100644 index 5ff2b0d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-genspect/09-Setup-Genspect.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -# 09-Setup-Genspect.ps1 - Genspect pc-type setup -# -# Currently OpenText-only (same as common). Genspect-specific software -# will be added here when the application catalog is finalized. - -$lib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Set-OpenTextAutoStart.ps1' - -Write-Host '=== Genspect Setup ===' -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-Genspect: starting' -StageIndex 3 -StageTotal 8 } catch { } -} -if (Test-Path -LiteralPath $lib) { - & $lib -} else { - Write-Warning "Set-OpenTextAutoStart.ps1 not found at $lib - OpenText auto-start NOT configured" -} -# TODO: Genspect-specific apps go here. -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '09-Setup-Genspect: complete' -StageIndex 4 -StageTotal 8 -} -Write-Host '=== Genspect Setup Complete ===' diff --git a/playbook/shopfloor-setup/gea-shopfloor-heattreat/01-eDNC.ps1 b/playbook/shopfloor-setup/gea-shopfloor-heattreat/01-eDNC.ps1 deleted file mode 100644 index 1446308..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-heattreat/01-eDNC.ps1 +++ /dev/null @@ -1,119 +0,0 @@ -# 01-eDNC.ps1 - Install eDNC and deploy custom eMxInfo.txt (Standard-Machine only) - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '01-eDNC.log') -Append -Force | Out-Null } catch {} - -# --- Skip on Timeclock sub-type --- -$subtypeFile = 'C:\Enrollment\pc-subtype.txt' -if (Test-Path $subtypeFile) { - $subtype = (Get-Content $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($subtype -eq 'Timeclock') { - Write-Host "=== eDNC Setup: skipped (Standard-Timeclock) ===" - try { Stop-Transcript | Out-Null } catch {} - return - } -} - -Write-Host "=== eDNC Setup ===" - -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path -LiteralPath $configPath)) { - Write-Host "site-config.json not found - using defaults" -ForegroundColor DarkGray - return $null - } - try { - return (Get-Content -LiteralPath $configPath -Raw -ErrorAction Stop | ConvertFrom-Json) - } catch { - Write-Warning "Failed to parse site-config.json: $_" - return $null - } -} -$siteConfig = Get-SiteConfig - -$siteName = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } -$siteNameCompact = if ($siteConfig) { $siteConfig.siteNameCompact } else { 'WestJefferson' } - -$edncDir = Join-Path $PSScriptRoot 'eDNC' - -if (-not (Test-Path $edncDir)) { - Write-Warning "eDNC folder not found at $edncDir - skipping." - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -# --- Find installer --- -# Default DNC install is the single shared copy staged by startnet.cmd to -# C:\PreInstall\installers\dnc (currently eDNC-6.4.7.msi) - one source of truth -# across every DNC pc-type instead of a per-type msi. Fall back to the per-type -# eDNC\ folder for older images that still bundle their own. Filter is eDNC*.msi -# (no dash) so both vendor naming styles match: eDNC-6.4.7.msi and eDNC_6-4-5.msi. -$sharedDncDir = 'C:\PreInstall\installers\dnc' -$edncMsi = Get-ChildItem -Path $sharedDncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 -if ($edncMsi) { - Write-Host "Using shared DNC installer: $($edncMsi.FullName)" -} else { - $edncMsi = Get-ChildItem -Path $edncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 - if ($edncMsi) { Write-Host "Shared DNC installer not found - falling back to per-type: $($edncMsi.FullName)" } -} -$emxInfo = Join-Path $edncDir "eMxInfo.txt" - -# --- 1. Install eDNC --- -if ($edncMsi) { - Write-Host "Installing eDNC: $($edncMsi.Name)..." - $p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$($edncMsi.FullName)`" /qn /norestart LAUNCHNTLARS=false SITESELECTED=`"$siteName`"" -Wait -PassThru - Write-Host " eDNC exit code: $($p.ExitCode)" -} else { - Write-Warning "eDNC installer not found in $edncDir (expected eDNC*.msi)" -} - -# --- 2. Mirror x86 install to 64-bit Program Files (app uses hardcoded paths) --- -# mxTransactionDll.dll references \Dnc\Server Files\ -$copies = @( - @{ Src = "C:\Program Files (x86)\Dnc"; Dst = "C:\Program Files\Dnc" } -) -foreach ($c in $copies) { - if (Test-Path $c.Src) { - if (-not (Test-Path $c.Dst)) { - New-Item -Path $c.Dst -ItemType Directory -Force | Out-Null - } - Copy-Item -Path "$($c.Src)\*" -Destination $c.Dst -Recurse -Force - Write-Host " Copied $($c.Src) -> $($c.Dst)" - } -} - -# --- 3. Set DNC site + machine number --- -$regBase = "HKLM\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC" -reg add "$regBase\General" /v Site /t REG_SZ /d $siteNameCompact /f | Out-Null -Write-Host " DNC site set to $siteNameCompact." - -# Set machine number if tech entered one during PXE menu (defaults to 9999) -$machineNumFile = 'C:\Enrollment\machine-number.txt' -$machineNum = '9999' -if (Test-Path -LiteralPath $machineNumFile) { - $num = (Get-Content -LiteralPath $machineNumFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($num -and $num -match '^\d+$') { $machineNum = $num } -} -reg add "$regBase\General" /v MachineNo /t REG_SZ /d $machineNum /f | Out-Null -Write-Host " DNC MachineNo set to $machineNum." - -# --- 4. Deploy custom eMxInfo.txt to both Program Files paths --- -if (Test-Path $emxInfo) { - $dest86 = "C:\Program Files (x86)\DNC\Server Files" - $dest64 = "C:\Program Files\DNC\Server Files" - - foreach ($dest in @($dest86, $dest64)) { - if (-not (Test-Path $dest)) { - New-Item -Path $dest -ItemType Directory -Force | Out-Null - } - Copy-Item -Path $emxInfo -Destination (Join-Path $dest "eMxInfo.txt") -Force - Write-Host " eMxInfo.txt -> $dest" - } -} else { - Write-Warning "eMxInfo.txt not found at $emxInfo" -} - -Write-Host "=== eDNC Setup Complete ===" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-heattreat/02-Setup-HeatTreat.ps1 b/playbook/shopfloor-setup/gea-shopfloor-heattreat/02-Setup-HeatTreat.ps1 deleted file mode 100644 index f08768c..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-heattreat/02-Setup-HeatTreat.ps1 +++ /dev/null @@ -1,86 +0,0 @@ -# 02-Setup-HeatTreat.ps1 - HeatTreat app setup (runs AFTER 01-eDNC.ps1). -# -# HeatTreat_6-4-9.msi is a WiX/GE Aviation installer, same lineage as Mark -# and eDNC. Decompiled findings: -# - LAUNCHNTLARS=true by default and the LaunchNtlars custom action fires -# under /qn (condition NOT Installed AND LAUNCHNTLARS="true"). Pass -# LAUNCHNTLARS=false to suppress it (same as 01-eDNC.ps1 and Mark). -# - No ForceReboot/ScheduleReboot (only WixCheckRebootRequired, which just -# sets a flag) - so /norestart is safe. -# - Only LaunchCondition is NOT NEWERVERSIONDETECTED (blocks downgrade). -# -# After the MSI, HeatTreat imports the per-machine DNC config .reg matching -# the machine number the tech entered at imaging (6601-6604). The .reg files -# ship in this type dir under reg\.reg. Like WJPRT.reg they -# target HKLM\SOFTWARE\GE Aircraft Engines\DNC (the 64-bit view as written), -# but DNC is a 32-bit app and reads WOW6432Node, so we rewrite the key paths -# to WOW6432Node before importing (reg import does not honor /reg:32). -# -# Log: C:\Logs\HeatTreat\02-Setup-HeatTreat.log - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\HeatTreat' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '02-Setup-HeatTreat.log') -Append -Force | Out-Null } catch {} - -Write-Host '=== HeatTreat Setup ===' - -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '02-Setup-HeatTreat: starting' -StageIndex 3 -StageTotal 8 } catch { } -} - -$payloadDir = Join-Path $PSScriptRoot 'HeatTreat' - -# ============================================================================ -# Install HeatTreat_6-4-9.msi -# ============================================================================ -$htMsi = Get-ChildItem -Path $payloadDir -Filter 'HeatTreat*.msi' -File -ErrorAction SilentlyContinue | Select-Object -First 1 -if ($htMsi) { - Write-Host "Installing HeatTreat: $($htMsi.Name)..." - $p = Start-Process -FilePath 'msiexec.exe' ` - -ArgumentList "/i `"$($htMsi.FullName)`" /qn /norestart LAUNCHNTLARS=false" ` - -Wait -PassThru - Write-Host " HeatTreat exit code: $($p.ExitCode)" -} else { - Write-Warning "HeatTreat MSI not found in $payloadDir (expected HeatTreat*.msi) - skipping install" -} - -# ============================================================================ -# Import the per-machine DNC config .reg (redirected to WOW6432Node) -# ============================================================================ -$machineNum = '' -$mnFile = 'C:\Enrollment\machine-number.txt' -if (Test-Path -LiteralPath $mnFile) { - $machineNum = (Get-Content -LiteralPath $mnFile -First 1 -EA 0).Trim() -} -if ($machineNum) { - $regSrc = Join-Path $PSScriptRoot "reg\$machineNum.reg" - if (Test-Path -LiteralPath $regSrc) { - try { - $regText = Get-Content -LiteralPath $regSrc -Raw - $redirected = $regText -replace ` - 'HKEY_LOCAL_MACHINE\\SOFTWARE\\GE Aircraft Engines', ` - 'HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\GE Aircraft Engines' - $tmpReg = Join-Path $env:TEMP "$machineNum-wow6432.reg" - Set-Content -LiteralPath $tmpReg -Value $redirected -Encoding ASCII -Force - Write-Host "Importing $machineNum.reg (redirected to WOW6432Node)..." - $r = Start-Process -FilePath 'reg.exe' -ArgumentList "import `"$tmpReg`"" -Wait -PassThru - Write-Host " reg import exit code: $($r.ExitCode)" - Remove-Item -LiteralPath $tmpReg -Force -ErrorAction SilentlyContinue - } catch { - Write-Warning "Import of $machineNum.reg failed: $_" - } - } else { - Write-Warning "No DNC .reg for machine number $machineNum at $regSrc - DNC machine config NOT applied" - } -} else { - Write-Warning "machine-number.txt empty/missing - cannot pick a DNC .reg to import" -} - -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '02-Setup-HeatTreat: complete' -StageIndex 4 -StageTotal 8 -} -Write-Host '=== HeatTreat Setup Complete ===' -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-heattreat/09-Setup-Heattreat.ps1 b/playbook/shopfloor-setup/gea-shopfloor-heattreat/09-Setup-Heattreat.ps1 deleted file mode 100644 index f15bea2..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-heattreat/09-Setup-Heattreat.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -# 09-Setup-Heattreat.ps1 - Heattreat pc-type setup -# -# Currently OpenText-only (same as common). Heattreat-specific software -# will be added here when the application catalog is finalized. - -$lib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Set-OpenTextAutoStart.ps1' - -Write-Host '=== Heattreat Setup ===' -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-Heattreat: starting' -StageIndex 3 -StageTotal 8 } catch { } -} -if (Test-Path -LiteralPath $lib) { - & $lib -} else { - Write-Warning "Set-OpenTextAutoStart.ps1 not found at $lib - OpenText auto-start NOT configured" -} -# TODO: Heattreat-specific apps go here. -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '09-Setup-Heattreat: complete' -StageIndex 4 -StageTotal 8 -} -Write-Host '=== Heattreat Setup Complete ===' diff --git a/playbook/shopfloor-setup/gea-shopfloor-heattreat/HeatTreat/HeatTreat_6-4-9.msi b/playbook/shopfloor-setup/gea-shopfloor-heattreat/HeatTreat/HeatTreat_6-4-9.msi deleted file mode 100755 index c2be89f..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-heattreat/HeatTreat/HeatTreat_6-4-9.msi and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-heattreat/README.md b/playbook/shopfloor-setup/gea-shopfloor-heattreat/README.md deleted file mode 100644 index dabd633..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-heattreat/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# gea-shopfloor-heattreat - -Placeholder PC type. No type-specific stage scripts yet. The shopfloor baseline -(`Shopfloor/00-PreInstall-MachineApps.ps1` etc.) still runs for this type. - -When heattreat-specific apps are identified, drop numbered stage scripts (`01-*.ps1` etc.) -in this dir and add Applications entries to the matching v2 manifest at -`tsgwp00525-v2/.../gea-shopfloor-heattreat/manifest.json`. diff --git a/playbook/shopfloor-setup/gea-shopfloor-heattreat/eDNC/eDNC-6.4.7.msi b/playbook/shopfloor-setup/gea-shopfloor-heattreat/eDNC/eDNC-6.4.7.msi deleted file mode 100755 index 04b4f74..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-heattreat/eDNC/eDNC-6.4.7.msi and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/09-Setup-Keyence.ps1 b/playbook/shopfloor-setup/gea-shopfloor-keyence/09-Setup-Keyence.ps1 deleted file mode 100644 index a1c7c9d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-keyence/09-Setup-Keyence.ps1 +++ /dev/null @@ -1,243 +0,0 @@ -# 09-Setup-Keyence.ps1 - Keyence type setup (runs during shopfloor-setup phase). -# -# Performs the imaging-time install of one of three Keyence model variants: -# VR-3000 G2 / VR-5000 / VR-6000 -# based on C:\Enrollment\keyence-model.txt (vr3000 / vr5000 / vr6000), set -# during the WinPE menu. Per-model manifest + installers live at -# /manifest.json + /installers/. Ongoing enforcement is handled -# by GE-Enforce reading keyence/manifest.json from the tsgwp00525 share. -# -# Layout at $PSScriptRoot (xcopied by startnet.cmd only for PCTYPE=Keyence): -# 09-Setup-Keyence.ps1 (this file) -# vr3000\manifest.json + installers\VR-3000 G2 Series Software.msi + Data*.cab -# vr5000\manifest.json + installers\VR-5000 Series Software.msi + Data1.cab -# vr6000\manifest.json + installers\VR-6000 Series Software.msi + Data1.cab -# + drivers\keyence_vr_series.inf (legacy - only VR-6000) -# -# Library lookup: the imaging-time install uses the common Install-FromManifest -# library at ..\common\lib\Install-FromManifest.ps1 (relative to $PSScriptRoot). -# -# Log: C:\Logs\Keyence\09-Setup-Keyence.log -# C:\Logs\Keyence\install.log (written by Install-FromManifest) - -$ErrorActionPreference = 'Continue' - -$libSource = Join-Path $PSScriptRoot '..\common\lib\Install-FromManifest.ps1' - -# Resolve which Keyence model variant to install. WinPE writes the choice -# (vr3000 / vr5000 / vr6000) into C:\Enrollment\keyence-model.txt during -# the imaging menu. If the file is missing, default to vr6000 since that -# was the original single-model setup before this refactor. -$modelFile = 'C:\Enrollment\keyence-model.txt' -if (Test-Path -LiteralPath $modelFile) { - $model = (Get-Content -LiteralPath $modelFile -First 1 -ErrorAction SilentlyContinue).Trim().ToLower() -} -if (-not $model) { $model = 'vr6000' } - -# Manifest comes via shopfloor-setup tree xcopy (small file, git-tracked). -# Installer payload (MSI + Data*.cab) comes via installers-post stage at -# C:\KeyenceInstall\\ - placed there by startnet.cmd's keyence-stage -# block. So manifest paths reference installers\... which resolve relative -# to InstallerRoot=C:\KeyenceInstall\. -$modelRoot = Join-Path $PSScriptRoot $model -$manifestPath = Join-Path $modelRoot 'manifest.json' -$stagingRoot = "C:\KeyenceInstall\$model" - -$logDir = 'C:\Logs\Keyence' -$installLog = Join-Path $logDir 'install.log' -$transcriptLog = Join-Path $logDir '09-Setup-Keyence.log' - -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -try { Start-Transcript -Path $transcriptLog -Append -Force | Out-Null } catch {} - -function Write-KeyenceLog { - param([string]$Message, [string]$Level = 'INFO') - $stamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" - Write-Host "[$stamp] [$Level] $Message" -} - -Write-KeyenceLog "================================================================" -Write-KeyenceLog "=== Keyence Setup (imaging-time) session start (PID $PID) ===" -Write-KeyenceLog "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" -Write-KeyenceLog "Script root: $PSScriptRoot" -Write-KeyenceLog "================================================================" - -# Status push to PXE webapp - best-effort, never blocks imaging. -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-Keyence: starting' -StageIndex 3 -StageTotal 8 } catch { } -} - -# Diagnostic dump -foreach ($file in @('pc-type.txt','pc-subtype.txt','machine-number.txt')) { - $path = "C:\Enrollment\$file" - if (Test-Path -LiteralPath $path) { - $content = (Get-Content -LiteralPath $path -First 1 -ErrorAction SilentlyContinue).Trim() - Write-KeyenceLog " $file = $content" - } else { - Write-KeyenceLog " $file = (not present)" - } -} - -# ============================================================================ -# Step 0: Pre-stage Keyence VR Series USB driver + trust the publisher cert. -# ============================================================================ -# The VR-6000 MSI invokes dpinst.exe internally as a custom action to install -# the USB driver. dpinst inherits the MSI's silent context inconsistently and -# usually pops a Setup-wizard GUI even with /qn on the parent MSI. -# -# Two pre-steps suppress the prompt: -# 1. pnputil /add-driver /install stages the INF + co-installers into the -# Windows DriverStore. dpinst then sees the driver as already present and -# skips its install path (the GUI lives behind the "needs to install" -# branch). -# 2. Add the publisher cert (extracted from the catalog file) to -# LocalMachine\TrustedPublisher so dpinst's "Would you like to install -# this device software?" Windows Security dialog auto-accepts. -# -# If either step fails, log + continue - the MSI is still expected to install -# successfully; the only fallout is the GUI prompt the operator would have -# had to click through anyway. -# Drivers come via the staging dir now. Only VR-6000 ships an external .inf; -# VR-3000 + VR-5000 embed drivers inside the MSI so the pre-stage step is a -# no-op for those models (no file found, log + continue). -$driverInf = Join-Path $stagingRoot 'drivers\keyence_vr_series.inf' -$driverCat = Join-Path $stagingRoot 'drivers\KEYENCE_VR_SERIES.cat' - -if (Test-Path -LiteralPath $driverInf) { - Write-KeyenceLog "Pre-staging USB driver via pnputil (suppresses dpinst GUI inside MSI)" - try { - $pnpOut = & pnputil /add-driver $driverInf /install 2>&1 - Write-KeyenceLog " pnputil exit $LASTEXITCODE" - foreach ($line in ($pnpOut | Where-Object { $_ })) { Write-KeyenceLog " $line" } - } catch { - Write-KeyenceLog " pnputil failed: $_" 'WARN' - } -} else { - Write-KeyenceLog "Driver INF not found at $driverInf - skipping pre-stage" 'WARN' -} - -if (Test-Path -LiteralPath $driverCat) { - Write-KeyenceLog "Adding Keyence publisher cert to LocalMachine\TrustedPublisher store" - try { - $sig = Get-AuthenticodeSignature -FilePath $driverCat -ErrorAction Stop - if ($sig -and $sig.SignerCertificate) { - $store = New-Object System.Security.Cryptography.X509Certificates.X509Store('TrustedPublisher','LocalMachine') - $store.Open('ReadWrite') - $store.Add($sig.SignerCertificate) - $store.Close() - Write-KeyenceLog " Added: $($sig.SignerCertificate.Subject) thumb=$($sig.SignerCertificate.Thumbprint)" - } else { - Write-KeyenceLog " Catalog is not signed - cert pre-trust skipped" 'WARN' - } - } catch { - Write-KeyenceLog " Cert add failed: $_" 'WARN' - } -} else { - Write-KeyenceLog "Driver catalog not found at $driverCat - cert pre-trust skipped" 'WARN' -} - -# ============================================================================ -# Step 1: Install via manifest (imaging-time) -# ============================================================================ -if (-not (Test-Path $manifestPath)) { - Write-KeyenceLog "keyence-manifest.json not found at $manifestPath" "ERROR" -} elseif (-not (Test-Path $libSource)) { - Write-KeyenceLog "Install-FromManifest.ps1 not found at $libSource" "ERROR" -} else { - Write-KeyenceLog "Running Install-FromManifest (InstallerRoot=$stagingRoot)" - & $libSource -ManifestPath $manifestPath -InstallerRoot $stagingRoot -LogFile $installLog - $rc = $LASTEXITCODE - Write-KeyenceLog "Install-FromManifest returned $rc" -} - -# ============================================================================ -# Step 1.5: Install Keyence-bundled DirectX End-User Runtimes -# ============================================================================ -# VR-6000's MSI deploys DXSETUP.exe to the install dir but never runs it. -# Without DirectX, the app's first launch errors: "Runtime required to move -# the application is not installed correctly. Install from the following -# folder: C:\Program Files\Keyence\VR-6000\Common\DirectX End-User Runtimes\ -# DXSETUP.exe". Run it silently here; /silent suppresses all UI + reboot. -# Probe both VR-3000 G2, VR-5000, VR-6000 install paths under both Program Files -# roots. Whichever model's MSI installed will have its DXSETUP at one of these. -$dxCandidates = @() -foreach ($pf in @('C:\Program Files\KEYENCE','C:\Program Files (x86)\KEYENCE')) { - foreach ($prod in @('VR-3000 G2','VR-5000','VR-6000')) { - $dxCandidates += (Join-Path $pf "$prod\Common\DirectX End-User Runtimes\DXSETUP.exe") - } -} -$dxPath = $dxCandidates | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 - -if ($dxPath) { - Write-KeyenceLog "Running DirectX End-User Runtimes: $dxPath /silent" - try { - $p = Start-Process -FilePath $dxPath -ArgumentList '/silent' -Wait -PassThru -NoNewWindow - Write-KeyenceLog " DXSETUP exit $($p.ExitCode)" - } catch { - Write-KeyenceLog " DXSETUP failed: $_" 'WARN' - } -} else { - Write-KeyenceLog "DXSETUP.exe not found under either Program Files - DirectX install skipped" 'WARN' -} - -# ============================================================================ -# Step 1.6: FIPS opt-out for Keyence .NET apps (VR-3000 G2 only) -# ============================================================================ -# REQUIREMENT BEFORE IMAGING: the bay's hostname must be reported to GE -# InfoSec and added to the documented FIPS-exception list. Do not image a -# VR-3000 G2 bay through this path without that ticket on record. -# -# Why: Keyence VR-series Viewer / Analyzer / Inspection apps read EEPROM -# calibration from the probe and verify it via MD5CryptoServiceProvider. -# Under Intune-enforced LSA FIPS policy that ctor throws (see -# keyence3000.txt / .png in pxe-images for the dialog + stack trace). -# Patch every .exe.config under C:\Program Files\KEYENCE\\ with -# . -# -# Scope: app-level CLR only. Does NOT touch OS-wide Lsa policy. Intune / -# Defender baselines on the Lsa key remain enforced. CMMC posture: scoped -# exception, non-CUI integrity hash, documented in SSP. Currently only -# approved for VR-3000 G2 model; vr5000 / vr6000 bays do not auto-apply. -if ($model -eq 'vr3000') { - $fipsPatch = Join-Path $PSScriptRoot 'common\Patch-KeyenceFipsConfigs.ps1' - if (Test-Path -LiteralPath $fipsPatch) { - Write-KeyenceLog "Running FIPS opt-out patch (VR-3000 G2): $fipsPatch" - Write-KeyenceLog " REMINDER: confirm bay hostname is on InfoSec FIPS-exception list before production cutover" - try { - & $fipsPatch 2>&1 | ForEach-Object { Write-KeyenceLog " $_" } - } catch { - Write-KeyenceLog " FIPS patch failed: $_" 'WARN' - } - } else { - Write-KeyenceLog "Patch-KeyenceFipsConfigs.ps1 not found at $fipsPatch - FIPS opt-out skipped" 'WARN' - } -} else { - Write-KeyenceLog "FIPS opt-out patch not applied: model=$model (only vr3000 currently approved)" -} - -# ============================================================================ -# Step 2: OpenText auto-start at login (HostExplorer "WJ Shopfloor" session) -# ============================================================================ -$autoStartLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Set-OpenTextAutoStart.ps1' -if (Test-Path -LiteralPath $autoStartLib) { - Write-KeyenceLog "Calling $autoStartLib" - & $autoStartLib -} else { - Write-KeyenceLog "Set-OpenTextAutoStart.ps1 not found at $autoStartLib - OpenText auto-start NOT configured" 'WARN' -} - -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - $finalStatus = if ($rc -eq 0) { 'in_progress' } else { 'failed' } - $finalErr = if ($rc -ne 0) { "Install-FromManifest exit $rc" } else { '' } - Send-PxeStatus -Stage '09-Setup-Keyence: complete' -StageIndex 4 -StageTotal 8 -Status $finalStatus -Error_ $finalErr -} - -Write-KeyenceLog "================================================================" -Write-KeyenceLog "=== Keyence Setup session end ===" -Write-KeyenceLog "================================================================" - -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/common/Patch-KeyenceFipsConfigs.ps1 b/playbook/shopfloor-setup/gea-shopfloor-keyence/common/Patch-KeyenceFipsConfigs.ps1 deleted file mode 100644 index b9e8ccf..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-keyence/common/Patch-KeyenceFipsConfigs.ps1 +++ /dev/null @@ -1,114 +0,0 @@ -<# -.SYNOPSIS - Patches all Keyence VR-series .exe.config files to opt the app out of .NET - FIPS policy enforcement so the EEPROM MD5 calibration check does not throw - 'This implementation is not part of the Windows Platform FIPS validated - cryptographic algorithms.' - - Currently approved only for VR-3000 G2. Before running on a production - bay, report the PC hostname to GE InfoSec and confirm the bay is on - the documented FIPS-exception list. Imaging-time auto-apply (in - 09-Setup-Keyence.ps1) gates this script behind model=vr3000. - -.DESCRIPTION - Scans C:\Program Files\KEYENCE and C:\Program Files (x86)\KEYENCE for any - .exe.config under VR-3000 G2, VR-5000, VR-6000 (and any other Keyence model - that ships in the same root). Injects: - - - - as a sibling under . Preserves any existing - children (generatePublisherEvidence, useLegacyJit, etc). - - Idempotent. Re-running is a no-op for already-patched configs. - - This patch is SCOPED to the Keyence app's CLR. It does NOT disable the - OS-wide LSA FIPS policy. Intune / Defender baseline policies that enforce - the LSA key remain in effect. - -.PARAMETER InstallRoots - Override the default search roots. By default both C:\Program Files\KEYENCE - and C:\Program Files (x86)\KEYENCE are scanned. - -.PARAMETER WhatIf - Show what would be patched without writing any files. - -.EXAMPLE - .\Patch-KeyenceFipsConfigs.ps1 - .\Patch-KeyenceFipsConfigs.ps1 -WhatIf - .\Patch-KeyenceFipsConfigs.ps1 -InstallRoots 'D:\KEYENCE' - -.NOTES - Affected EXEs (Profilometer3.exe, VRAnalyzer*.exe, VRInspection_*.exe, etc.) - must be restarted after the patch for the new config to take effect. -#> -[CmdletBinding(SupportsShouldProcess)] -param( - [string[]]$InstallRoots = @( - 'C:\Program Files\KEYENCE', - 'C:\Program Files (x86)\KEYENCE' - ) -) - -$ErrorActionPreference = 'Continue' - -$patched = 0 -$skipped = 0 -$errors = 0 - -foreach ($root in $InstallRoots) { - if (-not (Test-Path -LiteralPath $root)) { - Write-Host "Root not present, skipping: $root" - continue - } - Write-Host "Scanning: $root" - $configs = Get-ChildItem -LiteralPath $root -Filter '*.exe.config' -Recurse -ErrorAction SilentlyContinue - foreach ($cfg in $configs) { - try { - [xml]$xml = Get-Content -LiteralPath $cfg.FullName - $cfgRoot = $xml.configuration - if (-not $cfgRoot) { - Write-Warning " [SKIP] No root: $($cfg.FullName)" - $errors++ - continue - } - - $rt = $cfgRoot.SelectSingleNode('runtime') - if (-not $rt) { - $rt = $xml.CreateElement('runtime') - $cfgRoot.AppendChild($rt) | Out-Null - } - - $existing = $rt.SelectSingleNode("enforceFIPSPolicy[@enabled='false']") - if ($existing) { - Write-Host " [SKIP] already patched: $($cfg.FullName)" - $skipped++ - continue - } - - # Remove any other enforceFIPSPolicy variants (enabled=true or no attr). - $rt.SelectNodes('enforceFIPSPolicy') | ForEach-Object { $rt.RemoveChild($_) | Out-Null } - - $fips = $xml.CreateElement('enforceFIPSPolicy') - $fips.SetAttribute('enabled', 'false') - $rt.AppendChild($fips) | Out-Null - - if ($PSCmdlet.ShouldProcess($cfg.FullName, 'Inject enforceFIPSPolicy')) { - $xml.Save($cfg.FullName) - Write-Host " [OK] patched: $($cfg.FullName)" - $patched++ - } else { - Write-Host " [WHATIF] would patch: $($cfg.FullName)" - } - } catch { - Write-Warning " [ERR] $($cfg.FullName): $_" - $errors++ - } - } -} - -Write-Host "" -Write-Host "Summary: patched=$patched skipped=$skipped errors=$errors" -Write-Host "" -Write-Host "Restart Keyence apps (Profilometer3.exe, VRAnalyzer*.exe, VRLauncher.exe," -Write-Host "VRInspection_*.exe, etc.) for the new config to take effect. No reboot needed." diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/1033.mst b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/1033.mst deleted file mode 100644 index c75d1e1..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/1033.mst and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/manifest.json b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/manifest.json deleted file mode 100644 index 3bb278b..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/manifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "Version": "1.0", - "_comment": "Keyence VR-3000 G2 imaging-time manifest. Consumed by 09-Setup-Keyence.ps1 when keyence-model.txt = vr3000. USB drivers are embedded in the MSI (newer InstallShield deploys them via custom action) - no separate .inf needed. The MSI references Data1.cab (2.0 GB) + Data11.cab (388 MB) in the same Installer\\ dir; those cabs are gitignored (see .gitignore). Stage them from /home/camp/pxe-images/iso/keyence/Keyence-VR-3000-G2-v2.5.0.iso (Installer/Data*.cab) into installers/ before sync-keyence.sh. Verified silent install via msiexec on Win11 2026-05-18 with /qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TRANSFORMS=1033.mst (English transform).", - "Applications": [ - { - "_comment": "VR-3000 G2 Series Software. v2.5.0 Sept 2017. ProductCode {9CC9A062-2A93-4D3B-AECA-F70C691A46F2}. The bundled InstallShield setup.exe wrapper is 227 MB and bundles its own VC++/DotNet prereqs; we skip it and call the MSI directly via msiexec since modern Win11 ships compatible runtimes.", - "Name": "VR-3000 G2 Series Software", - "Installer": "installers\\VR-3000 G2 Series Software.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TRANSFORMS=installers\\1033.mst", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9CC9A062-2A93-4D3B-AECA-F70C691A46F2}", - "DetectionName": "DisplayVersion", - "DetectionValue": "2.5.0" - } - ] -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/1033.mst b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/1033.mst deleted file mode 100644 index ab5f983..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/1033.mst and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/manifest.json b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/manifest.json deleted file mode 100644 index 109d7bb..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/manifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "Version": "1.0", - "_comment": "Keyence VR-5000 imaging-time manifest. Consumed by 09-Setup-Keyence.ps1 when keyence-model.txt = vr5000. USB drivers embedded in MSI (newer InstallShield). MSI references Data1.cab (702 MB) in installers/ - gitignored, stage from /home/camp/pxe-images/iso/keyence/Keyence-VR-5000-v3.3.1.iso. Verified silent install via msiexec on Win11 2026-05-18.", - "Applications": [ - { - "_comment": "VR-5000 Series Software v3.3.1 Nov 2018. ProductCode {AF7E8B93-DBEB-4DB1-91CB-4DA592D8E222}. Same bypass-bootstrapper pattern: call MSI directly skipping the InstallShield setup.exe (203 MB - prereq bundle we don't need).", - "Name": "VR-5000 Series Software", - "Installer": "installers\\VR-5000 Series Software.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TRANSFORMS=installers\\1033.mst", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{AF7E8B93-DBEB-4DB1-91CB-4DA592D8E222}", - "DetectionName": "DisplayVersion", - "DetectionValue": "3.3.1" - } - ] -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/KEYENCE_VR_SERIES.cat b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/KEYENCE_VR_SERIES.cat deleted file mode 100644 index cbf0767..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/KEYENCE_VR_SERIES.cat and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WdfCoInstaller01009.dll b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WdfCoInstaller01009.dll deleted file mode 100644 index 47d4466..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WdfCoInstaller01009.dll and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WinUsbCoinstaller2.dll b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WinUsbCoinstaller2.dll deleted file mode 100644 index 80506b8..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WinUsbCoinstaller2.dll and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/keyence_vr_series.inf b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/keyence_vr_series.inf deleted file mode 100644 index bea6905..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/keyence_vr_series.inf +++ /dev/null @@ -1,94 +0,0 @@ -[Version] -Signature = "$Windows NT$" -DriverPackageDisplayName=%DESC% -Class = KeyenceUSB -ClassGuid={EE304F37-F588-45FC-91FE-B76873981AD1} -Provider = %ProviderName% -CatalogFile=KEYENCE_VR_SERIES.cat -DriverVer=03/26/2020,1.0.0.0 - -; ================== Class section ================== - -[ClassInstall32] -Addreg=KeyenceClassReg - -[KeyenceClassReg] -HKR,,,0,%ClassName% -HKR,,Icon,,-5 - -; ========== Manufacturer/Models sections =========== - -[Manufacturer] -%ProviderName% = KEYENCE,NTamd64 - -[KEYENCE.NTamd64] -%USB\KeyenceDevice.DeviceDesc% =USB_Install,USB\VID_0720&PID_102C - -; =================== Installation =================== - -;[1] -[USB_Install] -Include=winusb.inf -Needs=WINUSB.NT - -;[2] -[USB_Install.Services] -Include=winusb.inf -AddService=WinUSB,0x00000002,WinUSB_ServiceInstall - -;[3] -[WinUSB_ServiceInstall] -DisplayName = %WinUSB_SvcDesc% -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %12%\WinUSB.sys - -;[4] -[USB_Install.Wdf] -KmdfService=WINUSB, WinUsb_Install - -[WinUSB_Install] -KmdfLibraryVersion=1.9 - -;[5] -[USB_Install.HW] -AddReg=Dev_AddReg - -[Dev_AddReg] -HKR,,DeviceInterfaceGUIDs,0x10000,"{B708995F-18C9-4D52-8D29-41FF2BFBF215}" - -;[6] -[USB_Install.CoInstallers] -AddReg=CoInstallers_AddReg -CopyFiles=CoInstallers_CopyFiles - -[CoInstallers_AddReg] -HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUsbCoinstaller2.dll" - -[CoInstallers_CopyFiles] -WdfCoInstaller01009.dll -WinUsbCoinstaller2.dll - -[DestinationDirs] -CoInstallers_CopyFiles=11 - -; ================= Source Media Section ===================== -;[7] - -[SourceDisksNames] -1 = %DISK_NAME%,,,\amd64 - -[SourceDisksFiles.amd64] -WinUSBCoInstaller2.dll=1 -WdfCoInstaller01009.dll=1 - -; =================== Strings =================== - -[Strings] -ProviderName="KEYENCE" -DESC="VR Series USB-Driver" -WinUSB_SvcDesc="WinUSB.sys : KEYENCE USB Device" -DISK_NAME="KEYENCE USB Driver Installation Disk" -ClassName="KEYENCE USB Device Class" -USB\KeyenceDevice.DeviceDesc="VR Series" diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/installers/VR-6000 Series Software.msi b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/installers/VR-6000 Series Software.msi deleted file mode 100644 index a6220ca..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/installers/VR-6000 Series Software.msi and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/manifest.json b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/manifest.json deleted file mode 100644 index bcd4732..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "Version": "1.0", - "_comment": "Keyence machine-app manifest, imaging-time only. Consumed by 09-Setup-Keyence.ps1, reading from the in-repo shopfloor-setup/Keyence/ dir xcopied by startnet.cmd. Ongoing enforcement is handled separately by GE-Enforce reading keyence/manifest.json from the tsgwp00525 share. Each entry has an InstallerRoot-relative 'Installer' path plus standard detection. The 'Type' field is MSI, EXE, or INF: INF invokes pnputil /add-driver /install. When releasing a new VR-6000 version, update the Installer path + DetectionValue here AND on the share manifest.", - "Applications": [ - { - "_comment": "VR-6000 Series Software - main Keyence microscope/profilometer control app. Extracted from Keyence6000.exe (Inno Setup wrapper around an InstallShield 2019 MSI). Silent install works fine with /qn + REBOOT=ReallySuppress as long as you bypass the Inno wrapper - the wrapper's [Run] entry calls the bundled InstallShield Setup.exe without silent flags which hangs in session 0. The MSI references Data1.cab (560 MB compressed payload) in the same directory; that cab is gitignored. Stage from tsgwp00525\\sfld$\\v2\\shared\\dt\\shopfloor\\gea-shopfloor-keyence\\apps\\Data1.cab into installers/ before building the USB. Missing cab = msiexec exit 1603 with 'SECREPAIR: Failed to open ... Data1.cab' in the verbose MSI log.", - "Name": "VR-6000 Series Software", - "Installer": "installers\\VR-6000 Series Software.msi", - "Type": "MSI", - "InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{058E7194-BDF8-4FA2-9D69-978BB0F25214}", - "DetectionName": "DisplayVersion", - "DetectionValue": "4.3.7" - }, - { - "_comment": "KEYENCE VR Series USB driver (WinUSB-based). Pulled from DriverStore after a full interactive install because dpinst.exe in the Inno wrapper needs GUI confirmation. pnputil /add-driver /install stages the INF + cat + co-installer DLLs to the Windows DriverStore; if a physical VR device is plugged in, Windows binds it immediately. Detection checks 'pnputil /enum-drivers' output for the INF filename - this matches regardless of driver version so updates (new INF with same basename) won't false-skip.", - "Name": "KEYENCE VR Series USB Driver", - "Installer": "drivers\\keyence_vr_series.inf", - "Type": "INF", - "DetectionMethod": "pnputil", - "DetectionPattern": "keyence_vr_series\\.inf" - } - ] -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-nocollections/01-eDNC.ps1 b/playbook/shopfloor-setup/gea-shopfloor-nocollections/01-eDNC.ps1 deleted file mode 100644 index 1446308..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-nocollections/01-eDNC.ps1 +++ /dev/null @@ -1,119 +0,0 @@ -# 01-eDNC.ps1 - Install eDNC and deploy custom eMxInfo.txt (Standard-Machine only) - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '01-eDNC.log') -Append -Force | Out-Null } catch {} - -# --- Skip on Timeclock sub-type --- -$subtypeFile = 'C:\Enrollment\pc-subtype.txt' -if (Test-Path $subtypeFile) { - $subtype = (Get-Content $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($subtype -eq 'Timeclock') { - Write-Host "=== eDNC Setup: skipped (Standard-Timeclock) ===" - try { Stop-Transcript | Out-Null } catch {} - return - } -} - -Write-Host "=== eDNC Setup ===" - -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path -LiteralPath $configPath)) { - Write-Host "site-config.json not found - using defaults" -ForegroundColor DarkGray - return $null - } - try { - return (Get-Content -LiteralPath $configPath -Raw -ErrorAction Stop | ConvertFrom-Json) - } catch { - Write-Warning "Failed to parse site-config.json: $_" - return $null - } -} -$siteConfig = Get-SiteConfig - -$siteName = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } -$siteNameCompact = if ($siteConfig) { $siteConfig.siteNameCompact } else { 'WestJefferson' } - -$edncDir = Join-Path $PSScriptRoot 'eDNC' - -if (-not (Test-Path $edncDir)) { - Write-Warning "eDNC folder not found at $edncDir - skipping." - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -# --- Find installer --- -# Default DNC install is the single shared copy staged by startnet.cmd to -# C:\PreInstall\installers\dnc (currently eDNC-6.4.7.msi) - one source of truth -# across every DNC pc-type instead of a per-type msi. Fall back to the per-type -# eDNC\ folder for older images that still bundle their own. Filter is eDNC*.msi -# (no dash) so both vendor naming styles match: eDNC-6.4.7.msi and eDNC_6-4-5.msi. -$sharedDncDir = 'C:\PreInstall\installers\dnc' -$edncMsi = Get-ChildItem -Path $sharedDncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 -if ($edncMsi) { - Write-Host "Using shared DNC installer: $($edncMsi.FullName)" -} else { - $edncMsi = Get-ChildItem -Path $edncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 - if ($edncMsi) { Write-Host "Shared DNC installer not found - falling back to per-type: $($edncMsi.FullName)" } -} -$emxInfo = Join-Path $edncDir "eMxInfo.txt" - -# --- 1. Install eDNC --- -if ($edncMsi) { - Write-Host "Installing eDNC: $($edncMsi.Name)..." - $p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$($edncMsi.FullName)`" /qn /norestart LAUNCHNTLARS=false SITESELECTED=`"$siteName`"" -Wait -PassThru - Write-Host " eDNC exit code: $($p.ExitCode)" -} else { - Write-Warning "eDNC installer not found in $edncDir (expected eDNC*.msi)" -} - -# --- 2. Mirror x86 install to 64-bit Program Files (app uses hardcoded paths) --- -# mxTransactionDll.dll references \Dnc\Server Files\ -$copies = @( - @{ Src = "C:\Program Files (x86)\Dnc"; Dst = "C:\Program Files\Dnc" } -) -foreach ($c in $copies) { - if (Test-Path $c.Src) { - if (-not (Test-Path $c.Dst)) { - New-Item -Path $c.Dst -ItemType Directory -Force | Out-Null - } - Copy-Item -Path "$($c.Src)\*" -Destination $c.Dst -Recurse -Force - Write-Host " Copied $($c.Src) -> $($c.Dst)" - } -} - -# --- 3. Set DNC site + machine number --- -$regBase = "HKLM\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC" -reg add "$regBase\General" /v Site /t REG_SZ /d $siteNameCompact /f | Out-Null -Write-Host " DNC site set to $siteNameCompact." - -# Set machine number if tech entered one during PXE menu (defaults to 9999) -$machineNumFile = 'C:\Enrollment\machine-number.txt' -$machineNum = '9999' -if (Test-Path -LiteralPath $machineNumFile) { - $num = (Get-Content -LiteralPath $machineNumFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($num -and $num -match '^\d+$') { $machineNum = $num } -} -reg add "$regBase\General" /v MachineNo /t REG_SZ /d $machineNum /f | Out-Null -Write-Host " DNC MachineNo set to $machineNum." - -# --- 4. Deploy custom eMxInfo.txt to both Program Files paths --- -if (Test-Path $emxInfo) { - $dest86 = "C:\Program Files (x86)\DNC\Server Files" - $dest64 = "C:\Program Files\DNC\Server Files" - - foreach ($dest in @($dest86, $dest64)) { - if (-not (Test-Path $dest)) { - New-Item -Path $dest -ItemType Directory -Force | Out-Null - } - Copy-Item -Path $emxInfo -Destination (Join-Path $dest "eMxInfo.txt") -Force - Write-Host " eMxInfo.txt -> $dest" - } -} else { - Write-Warning "eMxInfo.txt not found at $emxInfo" -} - -Write-Host "=== eDNC Setup Complete ===" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-nocollections/02-MachineNumberACLs.ps1 b/playbook/shopfloor-setup/gea-shopfloor-nocollections/02-MachineNumberACLs.ps1 deleted file mode 100644 index ce841f8..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-nocollections/02-MachineNumberACLs.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -# 02-MachineNumberACLs.ps1 - NO-OP (deprecated 2026-05-24). -# -# This script used to grant BUILTIN\Users SetValue on the eDNC reg key -# and Modify on the UDC ProgramData dir so the logged-in user could -# update machine number from the Check-MachineNumber logon dialog without -# elevation. -# -# That design had two flaws: -# 1. Security hole - any logged-in user could overwrite the machine- -# identity reg key. -# 2. Fragile - ACL grants raced with eDNC install timing on some bays; -# the OpenSubKey call returned null + the grant was silently skipped, -# leaving Check-MachineNumber unable to update the bay (yet the old -# Update-MachineNumber.ps1 reported success anyway because -# Set-ItemProperty's PermissionDenied is non-terminating). -# -# Replaced by the two-task design in Register-CheckMachineNumberTask.ps1: -# - "Prompt Machine Number" : user-context GUI, no privileges -# - "Apply Machine Number" : SYSTEM-context worker, full HKLM access -# -# Left as a no-op so Stage-Dispatcher / Run-ShopfloorSetup discovery -# patterns don't have to be updated. Existing bays' ACL grants are still -# present and harmless (the SYSTEM Apply task ignores them). - -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '02-MachineNumberACLs.log') -Append -Force | Out-Null } catch {} -Write-Host "02-MachineNumberACLs.ps1: no-op (replaced by SYSTEM Apply task - see Register-CheckMachineNumberTask.ps1)" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-nocollections/03-RestoreEDncConfig.ps1 b/playbook/shopfloor-setup/gea-shopfloor-nocollections/03-RestoreEDncConfig.ps1 deleted file mode 100644 index 3ab197d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-nocollections/03-RestoreEDncConfig.ps1 +++ /dev/null @@ -1,87 +0,0 @@ -# 03-RestoreEDncConfig.ps1 - Restore per-machine eDNC config from .reg backup. -# -# Runs at shopfloor-setup time AFTER 01-eDNC.ps1 has installed eDNC. If the -# tech typed a real machine number at the PXE menu (not left blank -> 9999), -# look for a .reg backup matching that number on the PXE-local copy of the -# setup tree and import it. That restores everything eDNC-side the backup -# captured: eFocas IP/port, PPDCS serial (baud/parity/bits), Hssb KRelay1, -# etc. - instead of the reimaged PC coming up on factory defaults. -# -# After reg import, the tech-typed machine number is written to HKLM and to -# UDC's settings JSON to guarantee the current number wins over whatever the -# backup happened to contain (off-by-one backups exist in the historical -# dump; see ntlars-fixed/ work on the PXE host). -# -# Skipped when: -# - pc-subtype != Machine (Timeclock PCs do not use a machine number) -# - machine-number.txt missing / empty / 9999 (tech declined to set one) -# - ntlars-backups/ folder missing from the staged setup tree -# - no matching .reg file on disk for this machine number - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '03-RestoreEDncConfig.log') -Append -Force | Out-Null } catch {} - -Write-Host "=== Restore eDNC config from backup ===" - -# ---- Sub-type gate ---- -$subtypeFile = 'C:\Enrollment\pc-subtype.txt' -if (Test-Path $subtypeFile) { - $subtype = (Get-Content $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($subtype -eq 'Timeclock') { - Write-Host "Standard-Timeclock - skipping." - try { Stop-Transcript | Out-Null } catch {} - return - } -} - -# ---- Read machine number captured at PXE time ---- -$mnFile = 'C:\Enrollment\machine-number.txt' -if (-not (Test-Path $mnFile)) { - Write-Host "machine-number.txt not present - skipping (tech did not set one)." - try { Stop-Transcript | Out-Null } catch {} - return -} -$machineNum = (Get-Content $mnFile -First 1 -ErrorAction SilentlyContinue).Trim() -if (-not $machineNum -or $machineNum -eq '9999') { - Write-Host "Machine number is '$machineNum' (placeholder or empty) - skipping." - try { Stop-Transcript | Out-Null } catch {} - return -} - -Write-Host "Machine number: $machineNum" - -# ---- Locate local backup root (staged from PXE during imaging) ---- -# Lives at C:\Enrollment\shopfloor-setup\_ntlars-backups (shared root dir). -$backupRoot = Join-Path $PSScriptRoot '..\_ntlars-backups' -if (-not (Test-Path $backupRoot)) { - Write-Host "ntlars-backups folder not staged at $backupRoot - skipping." - try { Stop-Transcript | Out-Null } catch {} - return -} - -. "$PSScriptRoot\..\Shopfloor\lib\Restore-EDncReg.ps1" -$imported = Import-EDncRegBackup -SourceRoot $backupRoot -MachineNumber $machineNum - -if (-not $imported) { - Write-Host "No backup imported - leaving eDNC at installer defaults." - try { Stop-Transcript | Out-Null } catch {} - return -} - -# ---- Tech-typed number wins: overwrite MachineNo in both eDNC and UDC. ---- -# The imported .reg probably already has the right number (we rewrote the -# historical dump) but off-by-one backups exist, and this is cheap insurance. -. "$PSScriptRoot\..\Shopfloor\lib\Update-MachineNumber.ps1" - -$current = Get-CurrentMachineNumber -Write-Host "Post-import state: UDC='$($current.Udc)' eDNC='$($current.Ednc)'" - -$result = Update-MachineNumber -NewNumber $machineNum -if ($result.UdcUpdated) { Write-Host " UDC MachineNumber set to $machineNum" } -if ($result.EdncUpdated) { Write-Host " eDNC MachineNo set to $machineNum" } -foreach ($err in $result.Errors) { Write-Warning " $err" } - -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-nocollections/Install-eMxInfo.cmd.template b/playbook/shopfloor-setup/gea-shopfloor-nocollections/Install-eMxInfo.cmd.template deleted file mode 100644 index 7e5521d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-nocollections/Install-eMxInfo.cmd.template +++ /dev/null @@ -1,32 +0,0 @@ -@echo off -REM Install-eMxInfo.cmd - copy the site-specific eMxInfo.txt into both -REM DNC Program Files install paths. Run by Install-FromManifest.ps1 -REM (Type=CMD) when Hash detection on the x86 path fails. -REM -REM Real install paths confirmed via 01-eDNC.ps1 (PXE preinstall) + a -REM real shopfloor install log capture: -REM C:\Program Files (x86)\DNC\Server Files\eMxInfo.txt -REM C:\Program Files\DNC\Server Files\eMxInfo.txt -REM Both required because mxTransactionDll.dll references both. -REM -REM Earlier versions wrote to C:\Program Files\eDNC\eMxInfo.txt - that -REM path doesn't exist on disk; the eDNC product creates \DNC\ (no 'e') -REM with a "Server Files" subdir. Corrected 2026-04-28. - -set "SRC=%~dp0eMxInfo.txt" -if not exist "%SRC%" ( - echo Install-eMxInfo: source file not found at %SRC% - exit /b 1 -) - -set "DST64=C:\Program Files\DNC\Server Files" -set "DST86=C:\Program Files (x86)\DNC\Server Files" - -if not exist "%DST64%\" mkdir "%DST64%" 2>nul -if not exist "%DST86%\" mkdir "%DST86%" 2>nul - -copy /Y "%SRC%" "%DST64%\eMxInfo.txt" >nul || exit /b 2 -copy /Y "%SRC%" "%DST86%\eMxInfo.txt" >nul || exit /b 3 - -echo Install-eMxInfo: deployed eMxInfo.txt to both DNC\Server Files paths -exit /b 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-nocollections/Set-MachineNumber.bat b/playbook/shopfloor-setup/gea-shopfloor-nocollections/Set-MachineNumber.bat deleted file mode 100644 index dd5ef5b..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-nocollections/Set-MachineNumber.bat +++ /dev/null @@ -1,38 +0,0 @@ -@echo off -REM Set-MachineNumber.bat - Wrapper for Set-MachineNumber.ps1 -REM -REM Looks for the .ps1 in three places, in order: -REM 1. %~dp0Set-MachineNumber.ps1 -REM - .bat and .ps1 side-by-side (normal desktop-copied case, repo layout) -REM 2. C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1 -REM - dispatcher-copied location, if this .bat lives somewhere else -REM 3. C:\Enrollment\shopfloor-setup\gea-shopfloor-nocollections\Set-MachineNumber.ps1 -REM - canonical enrollment staging copy -REM -REM Goto-based dispatch - no nested if blocks, no literal parens in echo lines. -REM CMD parses "if (...)" blocks by counting parens and will silently eat any -REM "(" or ")" inside an echo, so keeping the flow flat avoids that class of -REM syntax bomb entirely. - -setlocal -set "PS1=%~dp0Set-MachineNumber.ps1" -if exist "%PS1%" goto :run - -set "PS1=C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1" -if exist "%PS1%" goto :run - -set "PS1=C:\Enrollment\shopfloor-setup\gea-shopfloor-nocollections\Set-MachineNumber.ps1" -if exist "%PS1%" goto :run - -echo ERROR: Set-MachineNumber.ps1 not found in any of: -echo %~dp0Set-MachineNumber.ps1 -echo C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1 -echo C:\Enrollment\shopfloor-setup\gea-shopfloor-nocollections\Set-MachineNumber.ps1 -echo. -pause -exit /b 1 - -:run -echo Launching: %PS1% -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%PS1%" -exit /b %errorlevel% diff --git a/playbook/shopfloor-setup/gea-shopfloor-nocollections/Set-MachineNumber.ps1 b/playbook/shopfloor-setup/gea-shopfloor-nocollections/Set-MachineNumber.ps1 deleted file mode 100644 index c07ad60..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-nocollections/Set-MachineNumber.ps1 +++ /dev/null @@ -1,131 +0,0 @@ -# Set-MachineNumber.ps1 - Update UDC + eDNC machine number on a Standard shopfloor PC -# -# Purpose: -# Both UDC and eDNC use the same per-machine identifier ("Workstation Number" / -# "Machine Number"). On Standard PCs imaged via PXE preinstall, both are installed -# with a placeholder. When the PC is brought to its physical machine and assigned -# a real number, this helper updates both apps in one step. -# -# Persistence locations updated: -# 1. UDC: C:\ProgramData\UDC\udc_settings.json (GeneralSettings.MachineNumber) -# 2. eDNC: HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General\MachineNo -# -# After updating, kills any running UDC.exe and relaunches it with the new args -# so the in-memory state matches the persisted value. -# -# Run as SupportUser (admin). Requires write access to ProgramData and HKLM. - -Add-Type -AssemblyName Microsoft.VisualBasic -Add-Type -AssemblyName System.Windows.Forms - -. "$PSScriptRoot\..\Shopfloor\lib\Get-PCProfile.ps1" -. "$PSScriptRoot\..\Shopfloor\lib\Update-MachineNumber.ps1" - -$site = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } - -# --- Read current values for display --- -$currentMN = Get-CurrentMachineNumber -$currentUdc = $currentMN.Udc -$currentEdnc = $currentMN.Ednc - -# --- Show prompt with current state --- -$promptLines = @() -$promptLines += "Current UDC machine number: $(if ($currentUdc) { $currentUdc } else { '(not set)' })" -$promptLines += "Current eDNC machine number: $(if ($currentEdnc) { $currentEdnc } else { '(not set)' })" -$promptLines += "" -$promptLines += "Enter the new Machine Number for this PC:" -$prompt = $promptLines -join "`n" - -$new = [Microsoft.VisualBasic.Interaction]::InputBox($prompt, "Set Machine Number", "") - -if ([string]::IsNullOrWhiteSpace($new)) { - Write-Host "Cancelled." - exit 0 -} - -$new = $new.Trim() - -# --- Validate: digits only (loosen if you need alphanumerics) --- -if ($new -notmatch '^\d+$') { - [System.Windows.Forms.MessageBox]::Show( - "Machine number must be digits only.`n`nYou entered: '$new'", - "Invalid Machine Number", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Error - ) | Out-Null - exit 1 -} - -# --- Reassign confirmation (real -> real). Placeholder (9999/null) skips. --- -$currentIsReal = (($currentUdc -and $currentUdc -ne '9999') -or - ($currentEdnc -and $currentEdnc -ne '9999')) -$differsFromNew = ($currentUdc -ne $new) -or ($currentEdnc -ne $new) -if ($currentIsReal -and $differsFromNew) { - $oldDisplay = if ($currentUdc) { $currentUdc } else { $currentEdnc } - $confirmMsg = @( - "Reassign machine number from $oldDisplay to $new ?" - "" - "This will pull from the SFLD share for $new :" - " - NTLARS .reg backup (eFocas / PPDCS / Hssb)" - " - UDC settings (udc_settings_$new.json)" - " - UDC live data backup (if present)" - "" - "Use this only when the PC was imaged with the wrong number." - ) -join "`n" - $confirm = [System.Windows.Forms.MessageBox]::Show( - $confirmMsg, - "Confirm Reassignment", - [System.Windows.Forms.MessageBoxButtons]::OKCancel, - [System.Windows.Forms.MessageBoxIcon]::Warning - ) - if ($confirm -ne [System.Windows.Forms.DialogResult]::OK) { - Write-Host "Reassignment cancelled." - exit 0 - } -} - -$mnResult = Update-MachineNumber -NewNumber $new -Site $site - -# --- Audit log: one line per machine-number change. Best-effort. --- -try { - $logDir = 'C:\Logs\Shopfloor' - if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } - $logFile = Join-Path $logDir 'reassign.log' - $now = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') - $whoami = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name - $oldDisp = if ($mnResult.OldUdc) { $mnResult.OldUdc } elseif ($mnResult.OldEdnc) { $mnResult.OldEdnc } else { '(none)' } - $regFlag = if ($mnResult.RegImported) { 'OK' } else { 'skip' } - $udcFlag = if ($mnResult.UdcSettingsRestored) { 'OK' } else { 'skip' } - $dataFlag = if ($mnResult.UdcRestored) { 'OK' } else { 'skip' } - $mtcCnt = @($mnResult.MTConnectUpdated).Count - $line = "$now $env:COMPUTERNAME user=$whoami $oldDisp -> $new udc=$($mnResult.UdcUpdated) ednc=$($mnResult.EdncUpdated) reg=$regFlag settings=$udcFlag data=$dataFlag mtc=$mtcCnt" - Add-Content -Path $logFile -Value $line -Encoding UTF8 -} catch {} - -$results = @() -if ($mnResult.UdcUpdated) { - Write-Host "UDC: $currentUdc -> $new" - $results += "UDC updated to $new" -} elseif (-not (Test-Path 'C:\ProgramData\UDC\udc_settings.json')) { - $results += "UDC: settings file missing (run UDC.exe once first)" -} -if ($mnResult.EdncUpdated) { - Write-Host "eDNC: $currentEdnc -> $new" - $results += "eDNC updated to $new" -} elseif (-not (Test-Path 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC\General')) { - $results += "eDNC: registry key missing (eDNC not installed?)" -} -foreach ($err in $mnResult.Errors) { - Write-Warning $err - $results += $err -} -if ($mnResult.UdcUpdated) { Write-Host "UDC.exe relaunched." } - -# --- Show summary --- -$summary = ($results -join "`n") + "`n`nTo apply eDNC changes, restart any running DncMain.exe." -[System.Windows.Forms.MessageBox]::Show( - $summary, - "Set Machine Number - Done", - [System.Windows.Forms.MessageBoxButtons]::OK, - [System.Windows.Forms.MessageBoxIcon]::Information -) | Out-Null diff --git a/playbook/shopfloor-setup/gea-shopfloor-nocollections/eDNC/eDNC-6.4.7.msi b/playbook/shopfloor-setup/gea-shopfloor-nocollections/eDNC/eDNC-6.4.7.msi deleted file mode 100755 index 04b4f74..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-nocollections/eDNC/eDNC-6.4.7.msi and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/01-eDNC.ps1 b/playbook/shopfloor-setup/gea-shopfloor-partmarker/01-eDNC.ps1 deleted file mode 100644 index 1446308..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/01-eDNC.ps1 +++ /dev/null @@ -1,119 +0,0 @@ -# 01-eDNC.ps1 - Install eDNC and deploy custom eMxInfo.txt (Standard-Machine only) - -# --- Transcript --- -$logDir = 'C:\Logs\SFLD' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '01-eDNC.log') -Append -Force | Out-Null } catch {} - -# --- Skip on Timeclock sub-type --- -$subtypeFile = 'C:\Enrollment\pc-subtype.txt' -if (Test-Path $subtypeFile) { - $subtype = (Get-Content $subtypeFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($subtype -eq 'Timeclock') { - Write-Host "=== eDNC Setup: skipped (Standard-Timeclock) ===" - try { Stop-Transcript | Out-Null } catch {} - return - } -} - -Write-Host "=== eDNC Setup ===" - -function Get-SiteConfig { - $configPath = 'C:\Enrollment\site-config.json' - if (-not (Test-Path -LiteralPath $configPath)) { - Write-Host "site-config.json not found - using defaults" -ForegroundColor DarkGray - return $null - } - try { - return (Get-Content -LiteralPath $configPath -Raw -ErrorAction Stop | ConvertFrom-Json) - } catch { - Write-Warning "Failed to parse site-config.json: $_" - return $null - } -} -$siteConfig = Get-SiteConfig - -$siteName = if ($siteConfig) { $siteConfig.siteName } else { 'West Jefferson' } -$siteNameCompact = if ($siteConfig) { $siteConfig.siteNameCompact } else { 'WestJefferson' } - -$edncDir = Join-Path $PSScriptRoot 'eDNC' - -if (-not (Test-Path $edncDir)) { - Write-Warning "eDNC folder not found at $edncDir - skipping." - try { Stop-Transcript | Out-Null } catch {} - exit 0 -} - -# --- Find installer --- -# Default DNC install is the single shared copy staged by startnet.cmd to -# C:\PreInstall\installers\dnc (currently eDNC-6.4.7.msi) - one source of truth -# across every DNC pc-type instead of a per-type msi. Fall back to the per-type -# eDNC\ folder for older images that still bundle their own. Filter is eDNC*.msi -# (no dash) so both vendor naming styles match: eDNC-6.4.7.msi and eDNC_6-4-5.msi. -$sharedDncDir = 'C:\PreInstall\installers\dnc' -$edncMsi = Get-ChildItem -Path $sharedDncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 -if ($edncMsi) { - Write-Host "Using shared DNC installer: $($edncMsi.FullName)" -} else { - $edncMsi = Get-ChildItem -Path $edncDir -Filter "eDNC*.msi" -ErrorAction SilentlyContinue | Select-Object -First 1 - if ($edncMsi) { Write-Host "Shared DNC installer not found - falling back to per-type: $($edncMsi.FullName)" } -} -$emxInfo = Join-Path $edncDir "eMxInfo.txt" - -# --- 1. Install eDNC --- -if ($edncMsi) { - Write-Host "Installing eDNC: $($edncMsi.Name)..." - $p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$($edncMsi.FullName)`" /qn /norestart LAUNCHNTLARS=false SITESELECTED=`"$siteName`"" -Wait -PassThru - Write-Host " eDNC exit code: $($p.ExitCode)" -} else { - Write-Warning "eDNC installer not found in $edncDir (expected eDNC*.msi)" -} - -# --- 2. Mirror x86 install to 64-bit Program Files (app uses hardcoded paths) --- -# mxTransactionDll.dll references \Dnc\Server Files\ -$copies = @( - @{ Src = "C:\Program Files (x86)\Dnc"; Dst = "C:\Program Files\Dnc" } -) -foreach ($c in $copies) { - if (Test-Path $c.Src) { - if (-not (Test-Path $c.Dst)) { - New-Item -Path $c.Dst -ItemType Directory -Force | Out-Null - } - Copy-Item -Path "$($c.Src)\*" -Destination $c.Dst -Recurse -Force - Write-Host " Copied $($c.Src) -> $($c.Dst)" - } -} - -# --- 3. Set DNC site + machine number --- -$regBase = "HKLM\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC" -reg add "$regBase\General" /v Site /t REG_SZ /d $siteNameCompact /f | Out-Null -Write-Host " DNC site set to $siteNameCompact." - -# Set machine number if tech entered one during PXE menu (defaults to 9999) -$machineNumFile = 'C:\Enrollment\machine-number.txt' -$machineNum = '9999' -if (Test-Path -LiteralPath $machineNumFile) { - $num = (Get-Content -LiteralPath $machineNumFile -First 1 -ErrorAction SilentlyContinue).Trim() - if ($num -and $num -match '^\d+$') { $machineNum = $num } -} -reg add "$regBase\General" /v MachineNo /t REG_SZ /d $machineNum /f | Out-Null -Write-Host " DNC MachineNo set to $machineNum." - -# --- 4. Deploy custom eMxInfo.txt to both Program Files paths --- -if (Test-Path $emxInfo) { - $dest86 = "C:\Program Files (x86)\DNC\Server Files" - $dest64 = "C:\Program Files\DNC\Server Files" - - foreach ($dest in @($dest86, $dest64)) { - if (-not (Test-Path $dest)) { - New-Item -Path $dest -ItemType Directory -Force | Out-Null - } - Copy-Item -Path $emxInfo -Destination (Join-Path $dest "eMxInfo.txt") -Force - Write-Host " eMxInfo.txt -> $dest" - } -} else { - Write-Warning "eMxInfo.txt not found at $emxInfo" -} - -Write-Host "=== eDNC Setup Complete ===" -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/02-Setup-PartMarker.ps1 b/playbook/shopfloor-setup/gea-shopfloor-partmarker/02-Setup-PartMarker.ps1 deleted file mode 100644 index aff3762..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/02-Setup-PartMarker.ps1 +++ /dev/null @@ -1,126 +0,0 @@ -# 02-Setup-PartMarker.ps1 - Telesis Part Marker setup (runs AFTER 01-eDNC.ps1). -# -# Order (per the marker imaging recipe): -# 1. Install Mark-6.2.1.msi silently. -# 2. AFTER the MSI install: import WJPRT.reg, copy the Mark overlay files -# and eMxInfo.txt into the install dir. -# -# Mark-6.2.1.msi is a WiX/GE Aviation installer. Decompiled findings: -# - LAUNCHNTLARS=true by default and the LaunchNtlars custom action is -# scheduled in InstallExecuteSequence (condition NOT Installed AND -# LAUNCHNTLARS="true"), so under /qn it WOULD launch NTLARS mid-install. -# We pass LAUNCHNTLARS=false to suppress it (same as 01-eDNC.ps1). -# - No ForceReboot/ScheduleReboot, so /norestart is safe. -# - Only LaunchCondition is NOT NEWERVERSIONDETECTED (blocks downgrade). -# - Installs to C:\Program Files (x86)\Mark (32-bit MSI, ProgramFilesFolder). -# -# WJPRT.reg targets HKLM\SOFTWARE\GE Aircraft Engines\DNC (the 64-bit view as -# written), but DNC is a 32-bit app and reads from WOW6432Node (see -# 01-eDNC.ps1, which uses HKLM\SOFTWARE\WOW6432Node\GE Aircraft Engines\DNC). -# reg.exe import does NOT honor /reg:32, so we rewrite the key paths to -# WOW6432Node before importing. -# -# Log: C:\Logs\PartMarker\02-Setup-PartMarker.log - -$ErrorActionPreference = 'Continue' - -$logDir = 'C:\Logs\PartMarker' -if (-not (Test-Path $logDir)) { try { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } catch {} } -try { Start-Transcript -Path (Join-Path $logDir '02-Setup-PartMarker.log') -Append -Force | Out-Null } catch {} - -Write-Host '=== Part Marker Setup ===' - -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '02-Setup-PartMarker: starting' -StageIndex 3 -StageTotal 8 } catch { } -} - -$payloadDir = Join-Path $PSScriptRoot 'PartMarker' -$markInstall = 'C:\Program Files (x86)\Mark' - -# ============================================================================ -# Step 1: Install Mark-6.2.1.msi -# ============================================================================ -$markMsi = Get-ChildItem -Path $payloadDir -Filter 'Mark-*.msi' -File -ErrorAction SilentlyContinue | Select-Object -First 1 -if ($markMsi) { - Write-Host "Installing Mark: $($markMsi.Name)..." - $p = Start-Process -FilePath 'msiexec.exe' ` - -ArgumentList "/i `"$($markMsi.FullName)`" /qn /norestart LAUNCHNTLARS=false" ` - -Wait -PassThru - Write-Host " Mark exit code: $($p.ExitCode)" -} else { - Write-Warning "Mark MSI not found in $payloadDir (expected Mark-*.msi) - skipping install" -} - -# ============================================================================ -# Step 2: Import WJPRT.reg into WOW6432Node -# ============================================================================ -# Rewrite the GE Aircraft Engines path to its WOW6432Node equivalent so the -# 32-bit DNC app sees the marker config. The source .reg is REGEDIT4 format; -# a simple key-path string replace is sufficient (values are untouched). -$wjprtSrc = Join-Path $payloadDir 'Mark\WJPRT.reg' -if (Test-Path -LiteralPath $wjprtSrc) { - try { - $regText = Get-Content -LiteralPath $wjprtSrc -Raw - $redirected = $regText -replace ` - 'HKEY_LOCAL_MACHINE\\SOFTWARE\\GE Aircraft Engines', ` - 'HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\GE Aircraft Engines' - $tmpReg = Join-Path $env:TEMP 'WJPRT-wow6432.reg' - # reg.exe expects ANSI/Unicode; write as default (ASCII is fine for REGEDIT4). - Set-Content -LiteralPath $tmpReg -Value $redirected -Encoding ASCII -Force - Write-Host "Importing WJPRT.reg (redirected to WOW6432Node)..." - $r = Start-Process -FilePath 'reg.exe' -ArgumentList "import `"$tmpReg`"" -Wait -PassThru - Write-Host " reg import exit code: $($r.ExitCode)" - Remove-Item -LiteralPath $tmpReg -Force -ErrorAction SilentlyContinue - } catch { - Write-Warning "WJPRT.reg import failed: $_" - } -} else { - Write-Warning "WJPRT.reg not found at $wjprtSrc - DNC marker config NOT applied" -} - -# ============================================================================ -# Step 3: Copy the Mark overlay + eMxInfo.txt into C:\Program Files (x86)\Mark -# ============================================================================ -# The MSI lays down the base app; these files are the site-customized overlay -# (bin, Server Files, Documents, Logs, utilpassword.txt). WJPRT.reg is NOT -# copied (it is imported above, not a runtime file). -if (-not (Test-Path -LiteralPath $markInstall)) { - try { New-Item -ItemType Directory -Path $markInstall -Force | Out-Null } catch {} -} -$overlaySrc = Join-Path $payloadDir 'Mark' -if (Test-Path -LiteralPath $overlaySrc) { - Write-Host "Copying Mark overlay to $markInstall ..." - Get-ChildItem -LiteralPath $overlaySrc -Force -ErrorAction SilentlyContinue | - Where-Object { $_.Name -ne 'WJPRT.reg' } | - ForEach-Object { - try { - Copy-Item -LiteralPath $_.FullName -Destination $markInstall -Recurse -Force -ErrorAction Stop - Write-Host " copied $($_.Name)" - } catch { - Write-Warning " failed to copy $($_.Name): $_" - } - } -} else { - Write-Warning "Mark overlay folder not found at $overlaySrc" -} - -# eMxInfo.txt - the marker also needs the custom eMxInfo (same as eDNC). It -# lives in the sibling eDNC payload; copy it into the Mark install dir. -$emxInfo = Join-Path $PSScriptRoot 'eDNC\eMxInfo.txt' -if (Test-Path -LiteralPath $emxInfo) { - try { - Copy-Item -LiteralPath $emxInfo -Destination (Join-Path $markInstall 'eMxInfo.txt') -Force -ErrorAction Stop - Write-Host " copied eMxInfo.txt -> $markInstall" - } catch { - Write-Warning " failed to copy eMxInfo.txt: $_" - } -} else { - Write-Warning "eMxInfo.txt not found at $emxInfo" -} - -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '02-Setup-PartMarker: complete' -StageIndex 4 -StageTotal 8 -} -Write-Host '=== Part Marker Setup Complete ===' -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/Install-eMxInfo-PartMarker.cmd.template b/playbook/shopfloor-setup/gea-shopfloor-partmarker/Install-eMxInfo-PartMarker.cmd.template deleted file mode 100644 index fcdd449..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/Install-eMxInfo-PartMarker.cmd.template +++ /dev/null @@ -1,45 +0,0 @@ -@echo off -REM Install-eMxInfo-PartMarker.cmd - eMxInfo.txt healing for MARKER bays. -REM -REM Identical to Install-eMxInfo.cmd for the two paths that matter, plus the -REM Mark install directory. -REM -REM WHICH PATH ACTUALLY MATTERS: mxTransactionDll.dll (shipped in the Mark -REM overlay) references "\Dnc\Server Files\eMxInfo.txt", so the Mark suite -REM reads the DNC install just as eDNC does. The two DNC paths below are -REM therefore the functional ones on a marker bay too. -REM -REM WHY THE MARK PATH IS HERE AT ALL: 02-Setup-PartMarker.ps1 copies -REM eMxInfo.txt into C:\Program Files (x86)\Mark at imaging time. Nothing -REM reads it there, but leaving it stale would make a healed bay differ from a -REM freshly imaged one, and the next person to compare the two would waste an -REM afternoon on it. Copying a 1KB file is cheaper than that. -REM -REM Use this INSTEAD of Install-eMxInfo.cmd on gea-shopfloor-partmarker, or -REM simply add the marker PCType to the existing entry and accept that the Mark -REM copy goes stale - it is cosmetic either way. - -rem The config lives in the scope's configs\ dir, NOT beside this file. -rem The repo copy of the collections template still says %~dp0eMxInfo.txt, -rem which is stale - the cmd actually deployed on the share uses ..\configs\. -set "SRC=%~dp0..\configs\eMxInfo.txt" -if not exist "%SRC%" ( - echo Install-eMxInfo-PartMarker: source file not found at %SRC% - exit /b 1 -) - -set "DST64=C:\Program Files\DNC\Server Files" -set "DST86=C:\Program Files (x86)\DNC\Server Files" -set "DSTMARK=C:\Program Files (x86)\Mark" - -if not exist "%DST64%\" mkdir "%DST64%" 2>nul -if not exist "%DST86%\" mkdir "%DST86%" 2>nul - -copy /Y "%SRC%" "%DST64%\eMxInfo.txt" >nul || exit /b 2 -copy /Y "%SRC%" "%DST86%\eMxInfo.txt" >nul || exit /b 3 - -REM The Mark directory only exists on a marker bay; not an error elsewhere. -if exist "%DSTMARK%\" copy /Y "%SRC%" "%DSTMARK%\eMxInfo.txt" >nul - -echo Install-eMxInfo-PartMarker: deployed eMxInfo.txt to the DNC paths (and Mark, if present) -exit /b 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark-6.2.1.msi b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark-6.2.1.msi deleted file mode 100755 index 02a0b45..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark-6.2.1.msi and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/BrenMarkDNC.doc b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/BrenMarkDNC.doc deleted file mode 100755 index f528ba3..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/BrenMarkDNC.doc and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/BrenMarkEdit.doc b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/BrenMarkEdit.doc deleted file mode 100755 index cdef626..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/BrenMarkEdit.doc and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/EvenMarkEdit.doc b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/EvenMarkEdit.doc deleted file mode 100755 index 7c0462b..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/EvenMarkEdit.doc and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/MarkDNC_release_notes.txt b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/MarkDNC_release_notes.txt deleted file mode 100755 index 2491638..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/MarkDNC_release_notes.txt +++ /dev/null @@ -1,171 +0,0 @@ - __ __ _ ____ _ _ ____ - | \/ | __ _ _ __| | __| _ \| \ | |/ ___| - | |\/| |/ _` | '__| |/ /| | | | \| | | - | | | | (_| | | | < | |_| | |\ | |___ - |_| |_|\__,_|_| |_|\_\|____/|_| \_|\____| - - Release 6.0.0 - June 5th, 2013 - - MarkDNC is used with Telesis TMC400 series marking controls. It provides error - proofing and simplifies the Part Marking process for the operator by - automatically retriving variable data fields from CSF and substituting them - into a selected pattern file on the marking controller. It is very similar to - the Mark application, but has the added capability of storing and retrieving - the pattern and "part marking" files in eMX. - - I. Release Notes - II. Change History - III. Install Instructions - IV. Uninstall Instructions - V. Package Contents - VI. Build Environment - - ############################################################################## - I. RELEASE NOTES - ############################################################################## - - 1. Windows 7 & 64-bit OS support has been added as of MarkDNC 6.0.0. - 2. MarkDNC requires eDNC 6.0.0 or later to be installed. - 3. Oracle ODBC drivers for connecting to eMX are no longer bundled with this - install package. These should already be included in all shop floor images. - For business images, please install "Oracle Database Client 11g" from - AppDepot before installing MarkDNC. - 4. Make sure port.dat is NOT read-only. - - ############################################################################## - II. CHANGE HISTORY - ############################################################################## - - OpenGE Tracker: - https://openge.ge.com/gf/project/ednc/tracker/ - - MarkDNC 6.0.0 - Released 2013-06-05 - =================================== - [#373114] Add Support for Windows 7 & 64-bit OS - - MarkDNC 4.0.1 - Released 2011-03-09 - =================================== - - For WJF: After marking last item, clear the variable fields in the pattern - before displaying the "COMPLETED" message - - For WILM: The download executable for test will read a registry value - (HKEY_LOCAL_MACHINE\Software\GE Aircraft Engines\DNC\Mark\MarkerHome) - And will act as follows based on the value: - 0 = do NOT home - 1 = Home at start - 2 = Home at end - 3 = Home at start and end - default = 1 (if MarkerHome not set) - The registry value must be configured with regedit instead of LARS (this - feature is only used at one old maker with an indexing table). - - ############################################################################## - III. INSTALL INSTRUCTIONS - ############################################################################## - - 1. Run the "MarkDNC-x.x.x.msi" file. - 2. If a previous version was installed, it will be uninstalled first. - 3. You may be instructed to restart the PC. Do so when prompted. - 4. NTLARS will launch automatically during the install. Confirm the settings - on the "General" tab are correct for this machine and interface type. It - is recommended to load settings from an existing registry file if one is - available. Backups are automatically saved to "U:\Dnc\Reg Files". - 5. If NLARS did not launch automatically during the install, then it is most - likely because the target PC has UAC enabled. In this case, please launch - NTLARS from the start menu after the installation is finished. - 6. Refer to "C:\Program Files\Dnc\Server Files\Instructions.txt" if you need - to add shortcuts to the start menu for Shop Floor functional accounts. - - ############################################################################## - IV. UNINSTALL INSTRUCTIONS - ############################################################################## - - 1. Go to Control Panel and choose "Uninstall or change a program". - 2. Select "MarkDNC x.x.x" from the list of programs, and click "Uninstall". - - ############################################################################## - V. PACKAGE CONTENTS - ############################################################################## - - Installation package will perform the following actions... - - CREATE FOLDERS - ============== - C:\Program Files\Dnc - C:\Program Files\Dnc\Common - C:\Program Files\Mark - C:\Program Files\Mark\bin - C:\Program Files\Mark\Documents - C:\Program Files\Mark\Logs - C:\Program Files\Telesis - C:\Program Files\Telesis\Backup400 - C:\Program Files\Telesis\Backup400\Params - C:\Program Files\Telesis\Backup420 - C:\Program Files\Telesis\Backup420\Params - C:\Program Files\Telesis\Backup470 - C:\Program Files\Telesis\Backup470\Params - - COPY FILES (* = new or updated file) - ==================================== - C:\Program Files\Dnc\NewBadgefmt.txt - C:\Program Files\Dnc\Common\NTLARS.exe 6.0.0.3 * - C:\Program Files\Dnc\Server Files\eMxInfo.txt - - C:\Program Files\Mark\bin\DNCdll.dll 6.0.0.3 * - C:\Program Files\Mark\bin\Mark.exe 6.0.0.1 * - C:\Program Files\Mark\bin\MarkEdit.exe 6.0.0.3 * - C:\Program Files\Mark\bin\MarkTelesis.exe 6.0.0.3 * - C:\Program Files\Mark\Documents\BrekMarkEdit.doc - C:\Program Files\Mark\Documents\BrenMarkDNC.doc - C:\Program Files\Mark\Documents\EvenMarkEdit.doc - C:\Program Files\Mark\Documents\MarkDNC_release_notes.txt - C:\Program Files\Mark\Documents\MarkFileSpec.doc - C:\Program Files\Mark\Documents\WilmMarkEdit.doc - - C:\Program Files\Telesis\Backup400\_ISREG32.DLL 2.0.0.0 - C:\Program Files\Telesis\Backup400\Backup400.exe 1.0.0.1 - C:\Program Files\Telesis\Backup400\Backup400.cnt - C:\Program Files\Telesis\Backup400\BACKUP400.HLP - C:\Program Files\Telesis\Backup400\Params\port.dat - C:\Program Files\Telesis\Backup420\_ISREG32.DLL 2.0.0.0 - C:\Program Files\Telesis\Backup420\Backup420.exe 1.0.0.1 - C:\Program Files\Telesis\Backup420\31946.chm - C:\Program Files\Telesis\Backup420\Params\port.dat - C:\Program Files\Telesis\Backup470\Backup470.exe 1.0.0.1 - C:\Program Files\Telesis\Backup470\32914.chm - C:\Program Files\Telesis\Backup470\32914.pdf - C:\Program Files\Telesis\Backup470\Params\port.dat - - C:\Windows\System32\Csh.dll 2.0.39.0 - C:\Windows\System32\msflxgrd.ocx 6.0.84.18 - C:\Windows\System32\mfc71.dll 7.10.3077.0 - C:\Windows\System32\msvcr71.dll 7.10.3052.4 - C:\Windows\System32\msvcp71.dll 7.10.3077.0 - - CREATE ODBC DATA SOURCE FOR MX - ============================== - Add MX Entries to C:\Windows\ODBC.ini - Add Registry Keys/Values... - [HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MX] - [HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources] - - CREATE REGISTRY KEYS - ==================== - [HKEY_LOCAL_MACHINE\Software\GE Aircraft Engines\MarkDNC\6.0.0] - [HKEY_LOCAL_MACHINE\Software\GE Aircraft Engines\DNC] - - ADD SHORTCUTS TO START MENU - =========================== - MarkEdit (Shortcut to C:\Program Files\Mark\bin\MarkEdit.exe) - MarkTelesis (Shortcut to C:\Program Files\Mark\bin\MarkTelesis.exe) - Backup400 (Shortcut to C:\Program Files\Telesis\Backup400.exe) - Backup420 (Shortcut to C:\Program Files\Telesis\Backup420.exe) - Backup470 (Shortcut to C:\Program Files\Telesis\Backup470.exe) - NTLARS (Shortcut to C:\Program Files\Dnc\Common\NTLARS.exe) - - ############################################################################## - V. BUILD ENVIRONMENT - ############################################################################## - - Windows XP Version 2002 SP3 - Visual Studio .Net 2003 7.1 SP1 - Windows Installer XML (WiX) Toolset Version 3.6 \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/MarkFileSpec.doc b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/MarkFileSpec.doc deleted file mode 100755 index 3e3dddd..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/MarkFileSpec.doc and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/Mark_release_notes.txt b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/Mark_release_notes.txt deleted file mode 100755 index c5157ee..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/Mark_release_notes.txt +++ /dev/null @@ -1,164 +0,0 @@ - __ __ _ - | \/ | __ _ _ __| | __ - | |\/| |/ _` | '__| |/ / - | | | | (_| | | | < - |_| |_|\__,_|_| |_|\_\ - - Release 6.0.0 - June 5th, 2013 - - Mark is used with Telesis TMC400 series marking controls in Evendale. The Mark - application provides error proofing and simplifies the Part Marking process - for the operator by automatically retriving variable data fields from CSF and - substituting them into a selected pattern file on the marking controller. - - I. Release Notes - II. Change History - III. Install Instructions - IV. Uninstall Instructions - V. Package Contents - VI. Build Environment - - ############################################################################## - I. RELEASE NOTES - ############################################################################## - - 1. Windows 7 & 64-bit OS support has been added as of Mark 6.0.0. - 2. Oracle ODBC drivers for connecting to eMX are no longer bundled with this - install package. These should already be included in all shop floor images. - For business images, please install "Oracle Database Client 11g" from - AppDepot before installing Mark. - 3. The U:\PartMarking folder must be created by the SFxx0Axxx account and then - the SFxx0Uxxx account must be grated read/write access. The Mark apps - should then be able to create the xxxxx subfolders as required. - - ############################################################################## - II. CHANGE HISTORY - ############################################################################## - - OpenGE Tracker: - https://openge.ge.com/gf/project/ednc/tracker/ - - Mark 6.0.0 - Released 2013-06-05 - ================================ - [#373114] Add Support for Windows 7 & 64-bit OS - - Mark 4.0.0 - Released 2010-07-06 - ================================ - - Use new versions of MxTransaction & DNCdll Dynamic Link Libraries - - ############################################################################## - III. INSTALL INSTRUCTIONS - ############################################################################## - - 1. Run the "Mark-x.x.x.msi" file. - 2. If a previous version was installed, it will be uninstalled first. - 3. You may be instructed to restart the PC. Do so when prompted. - 4. NTLARS will launch automatically during the install. Confirm the settings - on the "General" tab are correct for this machine and interface type. It - is recommended to load settings from an existing registry file if one is - available. Backups are automatically saved to "U:\Dnc\Reg Files". - 5. If NLARS did not launch automatically during the install, then it is most - likely because the target PC has UAC enabled. In this case, please launch - NTLARS from the start menu after the installation is finished. - 6. Refer to "C:\Program Files\Dnc\Server Files\Instructions.txt" if you need - to add shortcuts to the start menu for Shop Floor functional accounts. - - ############################################################################## - IV. UNINSTALL INSTRUCTIONS - ############################################################################## - - 1. Go to Control Panel and choose "Uninstall or change a program". - 2. Select "Mark x.x.x" from the list of programs, and click "Uninstall". - - ############################################################################## - V. PACKAGE CONTENTS - ############################################################################## - - Installation package will perform the following actions... - - CREATE FOLDERS - ============== - C:\Program Files\Dnc - C:\Program Files\Dnc\Common - C:\Program Files\Dnc\Server Files - C:\Program Files\Mark - C:\Program Files\Mark\bin - C:\Program Files\Mark\Documents - C:\Program Files\Mark\Logs - C:\Program Files\Mark\Server Files - C:\Program Files\Telesis - C:\Program Files\Telesis\Backup400 - C:\Program Files\Telesis\Backup400\Params - C:\Program Files\Telesis\Backup420 - C:\Program Files\Telesis\Backup420\Params - C:\Program Files\Telesis\Backup470 - C:\Program Files\Telesis\Backup470\Params - - COPY FILES (* = new or updated file) - ==================================== - C:\Program Files\Dnc\NewBadgefmt.txt - C:\Program Files\Dnc\Common\NTLARS.exe 6.0.0.3 * - C:\Program Files\Dnc\Server Files\eMxInfo.txt - - C:\Program Files\Mark\Mark.chm * - C:\Program Files\Mark\MarkPat.chm * - C:\Program Files\Mark\utilpassword.txt - C:\Program Files\Mark\bin\DNCdll.dll 6.0.0.3 * - C:\Program Files\Mark\bin\Mark.exe 6.0.0.1 * - C:\Program Files\Mark\bin\MarkPatterns.exe 6.0.0.3 * - C:\Program Files\Mark\bin\MarkUtil.exe 6.0.0.3 * - C:\Program Files\Mark\bin\mxTransactionDll.dll 6.0.0.5 * - C:\Program Files\Mark\Documents\Mark_release_notes.txt - C:\Program Files\Mark\Server Files\LMark.exe 6.0.0.1 * - C:\Program Files\Mark\Server Files\LMarkUtil.exe 6.0.0.1 * - C:\Program Files\Mark\Server Files\Mark.lnk - C:\Program Files\Mark\Server Files\MarkUtils.lnk - - C:\Program Files\Telesis\Backup400\_ISREG32.DLL 2.0.0.0 - C:\Program Files\Telesis\Backup400\Backup400.exe 1.0.0.1 - C:\Program Files\Telesis\Backup400\Backup400.cnt - C:\Program Files\Telesis\Backup400\BACKUP400.HLP - C:\Program Files\Telesis\Backup400\Params\port.dat - C:\Program Files\Telesis\Backup420\_ISREG32.DLL 2.0.0.0 - C:\Program Files\Telesis\Backup420\Backup420.exe 1.0.0.1 - C:\Program Files\Telesis\Backup420\31946.chm - C:\Program Files\Telesis\Backup420\Params\port.dat - C:\Program Files\Telesis\Backup470\Backup470.exe 1.0.0.1 - C:\Program Files\Telesis\Backup470\32914.chm - C:\Program Files\Telesis\Backup470\32914.pdf - C:\Program Files\Telesis\Backup470\Params\port.dat - - C:\Windows\System32\Csh.dll 2.0.39.0 - C:\Windows\System32\msflxgrd.ocx 6.0.84.18 - C:\Windows\System32\mfc71.dll 7.10.3077.0 - C:\Windows\System32\msvcr71.dll 7.10.3052.4 - C:\Windows\System32\msvcp71.dll 7.10.3077.0 - - CREATE ODBC DATA SOURCE FOR MX - ============================== - Add MX Entries to C:\Windows\ODBC.ini - Add Registry Keys/Values... - [HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MX] - [HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources] - - CREATE REGISTRY KEYS - ==================== - [HKEY_LOCAL_MACHINE\Software\GE Aircraft Engines\Mark\6.0.0] - [HKEY_LOCAL_MACHINE\Software\GE Aircraft Engines\DNC] - - ADD SHORTCUTS TO START MENU - =========================== - Mark (Shortcut to C:\Program Files\Mark\bin\Mark.exe) - MarkUtils (Shortcut to C:\Program Files\Mark\bin\MarkUtil.exe) - Backup400 (Shortcut to C:\Program Files\Telesis\Backup400.exe) - Backup420 (Shortcut to C:\Program Files\Telesis\Backup420.exe) - Backup470 (Shortcut to C:\Program Files\Telesis\Backup470.exe) - NTLARS (Shortcut to C:\Program Files\Dnc\Common\NTLARS.exe) - - ############################################################################## - V. BUILD ENVIRONMENT - ############################################################################## - - Windows XP Version 2002 SP3 - Visual Studio .Net 2003 7.1 SP1 - Windows Installer XML (WiX) Toolset Version 3.6 \ No newline at end of file diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/WilmMarkEdit.doc b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/WilmMarkEdit.doc deleted file mode 100755 index 59666fd..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Documents/WilmMarkEdit.doc and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Logs/Marklog.txt b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Logs/Marklog.txt deleted file mode 100755 index ceb411b..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Logs/Marklog.txt +++ /dev/null @@ -1,8 +0,0 @@ -************************************ -Starting Mark application 15:50:25 Wed February 09 2022 -Application Succesfully Registered -Mark Dialog Invoked -Reading Mark registry variables -Pattern Count read from registry as 0 -Successfully read Registry Variables -OnSetfocusDocard, entering diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Logs/marktelesislog.txt b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Logs/marktelesislog.txt deleted file mode 100755 index e69de29..0000000 diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/LMark.exe b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/LMark.exe deleted file mode 100755 index 0ea505d..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/LMark.exe and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/LMarkUtil.exe b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/LMarkUtil.exe deleted file mode 100755 index 05621fb..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/LMarkUtil.exe and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/Mark.lnk b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/Mark.lnk deleted file mode 100755 index 60f6e55..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/Mark.lnk and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/MarkUtils.lnk b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/MarkUtils.lnk deleted file mode 100755 index 0dbcc5f..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/Server Files/MarkUtils.lnk and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/WJPRT.reg b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/WJPRT.reg deleted file mode 100755 index 8f1d1fc..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/WJPRT.reg +++ /dev/null @@ -1,240 +0,0 @@ -REGEDIT4 - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC] -"COMPUTERNAME"="G1ZTNCX3ESF" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Btr] -"BTR Rate"="300" -"Seq Search"="NO" -"Auto Rewind"="YES" -"BCC"="NO" -"CMNT"="NO" -"CmntLag"=dword:00000000 -"DisableScrnSvr"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DatC] -"Debug"="NO" -"Multi"="NO" -"WorkStations"="0" -"WS1"="" -"WS2"="" -"WS3"="" -"WS4"="" -"WS5"="" -"WS6"="" -"Files Threshold"="200" -"Any"="NO" -"DaysOld"="7" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\General] -"Site"="WestJefferson" -"Cnc"="MARKER" -"NcIF"="SERIAL" -"MachineNo"="WJPRT" -"Debug"="ON" -"Uploads"="NO" -"Scanner"="NO" -"HostType"="WILM" -"DvUpldDir"="" -"Ncedt"="NO" -"Maint"="NO" -"Mode"="Small" -"Unit/Area"="" -"Dripfeed"="NO" -"ChangeWorkstation"="NO" -"CWRegPath"="C:\\Program Files\\Dnc" -"FtpFileSel"="Host" -"DvDnldDir"="" -"RemindEnable"="NO" -"RemindBkupHost"="" -"RemindBkupFolder"="" -"Print"="NO" -"FixTorque"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Hssb] -"KRelay1"= -"ProgIdLimit"="" -"KeyCheck"="" -"DelHighIds"="" -"StdPmcG"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\MX] -"FtpPasswd"="" -"FtpHostPrimary"="" -"FtpHostSecondary"="" -"FtpAccount"="" -"FtpHostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\QUAL] -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"SocketNo"="" -"Timeout"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Serial] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"CRLF"="NO" -"EOL Delay"="NO" -"MC2000Dels"="NO" -"EOT"="NO" -"EOL Delay msec"="0" -"DeleteLT9000"="" -"SwapSize"="" -"2Saddle"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Mark] -"Port Id"="COM4" -"Baud"="9600" -"Parity"="None" -"Data Bits"="8" -"Stop Bits"="1" -"Message Type"="V" -"Debug"="ON" -"MarkerType"="2Line" -"DncPatterns"="NO" -"CageCode"="" -"DataHost"="" -"DataPath"="" -"MarkMasterPath"="" -"Port Id2"="" -"Baud2"="" -"Parity2"="" -"Data Bits2"="" -"Stop Bits2"="" -"DisableWeight"="YES" -"DisableBarcode"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\NTSHR] -"ShrHost"="" -"ShrFolder"="" -"ShrExt"="" -"ShrFolder2"="" -"ShrFolder3"="" -"ProgIdLimit"="" -"Deletes"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FtpDnld] -"Target"="" -"Username"="" -"Password"="" -"DirectoryPath"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\DNC2] -"MPRelay"="" -"ProgIdLimit"="" -"PMC-NB"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\FMS] -"FMSHostPrimary"="WJFMS3" -"FMSHostSecondary"="WJFMS3" -"FMSSocketBase"="5003" -"FMSTimeOut"=dword:0000000a - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PPDCS] -"Port Id"="" -"Baud"="" -"Data Bits"="" -"Parity"="" -"Stop Bits"="" -"Start Char"="" -"Wait Time"="250" -"UserName"="" -"Password"="" -"Primary"="" -"Secondary"="" -"Timeout"="10" -"Files Threshold"="5" -"FrontEnd"="" -"TQM9030"="NO" -"TextMode Menu"="NO" -"TreeDisplay"="NO" -"CLMShare"="" -"ShareFile"="" -"SharePoll"="" -"MDMacroVar"="" -"TQMCaron"="NO" -"CycleStart Inhibits"="NO" -"EnableSharePoll"="" -"WaitForCncFile"="" -"HostType"="VMS" -"HostPath"="" -"Port Id2"="" -"ShareHost"="" -"SharePollUnits"="msec" -"FileAge"="" -"HostPath2"="" -"SearchSubfolders"="" -"ManualDataBadge"="NO" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TncRemo] -"TncFolder"="" -"TncExt"="" -"TncIpAddr"="" -"Port"="" -"Medium"="" -"MjtLaser"="" -"HFolder"="" -"IFolder"="" -"DFolder"="" -"TABFolder"="" -"TFolder"="" -"TCHFolder"="" -"PFolder"="" -"PNTFolder"="" -"CDTFolder"="" -"AFolder"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\eFocas] -"IpAddr"="" -"SocketNo"="" -"DualPath"="" -"Path1Name"="" -"Path2Name"="" -"Danobat"="" -"DataServer"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQM9030] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\HeatTreat] -"FtpHost"="" -"FtpAccount"="" -"9030IpAddr"="" -"9030Register"="" -"CycleFilePath"="" -"FtpPasswd"="" -"9030Register2"="" -"9030Register3"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\Plant3] -"Host"="ev010dataaege" -"Path"="SHARED\\FAWS_LIB\\tmp" -"Account"="geaeevendale\\az0262t" -"Password"="" -"EnableAutomation"="NO" -"MachineType"="Lathe" -"HostType"="Windows" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\TQMCaron] -"Port Id"="" -"Baud"="" -"Parity"="" -"Data Bits"="" -"Stop Bits"="" - -[HKEY_LOCAL_MACHINE\SOFTWARE\GE Aircraft Engines\DNC\PaintBooth] -"DataHost"="" -"DataFolder"="" -"PlcIpAddress"="" -"PollRate"="" - diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/DNCdll.dll b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/DNCdll.dll deleted file mode 100755 index 0e2290a..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/DNCdll.dll and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/Mark.exe b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/Mark.exe deleted file mode 100755 index edf1c1e..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/Mark.exe and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkEdit.exe b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkEdit.exe deleted file mode 100755 index 2821e9e..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkEdit.exe and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkPatterns.exe b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkPatterns.exe deleted file mode 100755 index 6e3537d..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkPatterns.exe and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkTelesis.exe b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkTelesis.exe deleted file mode 100755 index b7e621c..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkTelesis.exe and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkUtil.exe b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkUtil.exe deleted file mode 100755 index e61e867..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/MarkUtil.exe and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/mxTransactionDll.dll b/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/mxTransactionDll.dll deleted file mode 100755 index 8eead75..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/bin/mxTransactionDll.dll and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/eDNC/eDNC-6.4.7.msi b/playbook/shopfloor-setup/gea-shopfloor-partmarker/eDNC/eDNC-6.4.7.msi deleted file mode 100755 index 04b4f74..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-partmarker/eDNC/eDNC-6.4.7.msi and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/manifest-entry-emxinfo-partmarker.json b/playbook/shopfloor-setup/gea-shopfloor-partmarker/manifest-entry-emxinfo-partmarker.json deleted file mode 100644 index 4a0ef80..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/manifest-entry-emxinfo-partmarker.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "_comment": "CORRECTED 2026-08-25. The eMxInfo entries live in the COLLECTIONS and NOCOLLECTIONS scopes, which a marker bay never evaluates - so this is a new entry in gea-shopfloor-partmarker/manifest.json, not a PCTypes edit to an existing one. The site already duplicates this per scope: each carries its own configs/eMxInfo.txt and scripts/Install-eMxInfo.cmd. Markers now do too.", - "_files": "gea-shopfloor-partmarker\\configs\\eMxInfo.txt (copied from the collections scope - site secret, never committed) and gea-shopfloor-partmarker\\scripts\\Install-eMxInfo.cmd (the variant that also refreshes the copy imaging leaves in C:\\Program Files (x86)\\Mark).", - "_ordering": "None needed inside this scope: no eDNC installer entry reaches markers through GE-Enforce, so there is nothing to be evaluated after. Hash detection fires whenever the file is missing or stale, which is what a hand reinstall of eDNC or Mark produces.", - "_rotation": "Yearly rotation of eMxInfo.txt now touches THREE scopes - collections, nocollections and partmarker. Overwrite configs/eMxInfo.txt in each, recompute the SHA256, paste it into each DetectionValue.", - "Name": "eMxInfo.txt", - "Installer": "scripts/Install-eMxInfo.cmd", - "Type": "CMD", - "DetectionMethod": "Hash", - "DetectionPath": "C:\\Program Files (x86)\\DNC\\Server Files\\eMxInfo.txt", - "DetectionValue": "87733201CB11E7343BD432F1E303FBF41DB58EBAAEFF37BD4C3C9B267B145A20" -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-partmarker/manifest-entry-partmarker-backup.json b/playbook/shopfloor-setup/gea-shopfloor-partmarker/manifest-entry-partmarker-backup.json deleted file mode 100644 index 21b97df..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-partmarker/manifest-entry-partmarker-backup.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "_comment": "CORRECTED 2026-08-25 after checking the live share layout. This entry goes in common/manifest.json, NOT the partmarker scope: the script imports ..\\lib\\TelesisMarker.psm1 and ..\\lib\\ShopdbBackupClient.psm1, and those live in common\\lib. Backup-NtlarsSettings.ps1 sits in common for the same reason, and its entry already carries a PCTypes list including gea-shopfloor-partmarker. Scoping is by PCTypes, not by which directory the entry lives in.", - "_files": "common\\lib\\TelesisMarker.psm1 (new), common\\lib\\ShopdbBackupClient.psm1 (UPDATED - shared with the NTLARS backup, which uses none of the additions), common\\scripts\\Backup-PartMarker.ps1 (new). Test-ShareAccess.ps1 also goes in common\\scripts but needs no manifest entry: it is a hand-run diagnostic.", - "_schedule": "Captures run only at shift changes - 14:00 normally because someone is on site to fix a problem, 06:00 and 22:00 only once the backup is 3+ days overdue. The marker's COM port is shared with eDNC and exclusive-open, so a capture at a random hour would fail an operator's mark.", - "_settings": "ShopDB needs backups_shareroot set, and the bay needs a collector key plus either a machine number in pc-config.txt or a device asset number in C:\\Enrollment\\asset-id.txt. Missing any of these is logged once and the cycle skips.", - "Name": "Part Marker Backup to ShopDB", - "Type": "PS1", - "Script": "scripts/Backup-PartMarker.ps1", - "DetectionMethod": "Always", - "PCTypes": [ - "gea-shopfloor-partmarker" - ] -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/09-Setup-WaxAndTrace.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/09-Setup-WaxAndTrace.ps1 deleted file mode 100644 index 5b419b4..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/09-Setup-WaxAndTrace.ps1 +++ /dev/null @@ -1,432 +0,0 @@ -# 09-Setup-WaxAndTrace.ps1 - Wax and Trace pc-type setup (Mitutoyo FormTracePak v6.213) -# -# Imaging-time install. Installs prereqs from manifest, then runs the -# Mitutoyo FormTracePak v6.213 vendor installer from a mounted ISO. The -# VB6 Setup.exe wrapper checks GetDriveType() == DRIVE_CDROM; Mount-DiskImage -# satisfies that (a real CD drive isn't required). Per-asset calibration ISO -# applies last. -# -# Layout at C:\WaxTrace-Install\ (xcopied by startnet.cmd): -# waxtrace-manifest.json -# 09-Setup-WaxAndTrace.ps1 (this file) -# prereqs\vcredist_x86.exe (VC++ 2008 x86) -# prereqs\vcredist_x64.exe (VC++ 2008 x64) -# prereqs\vc_redist.x86.exe (VC++ 2017 x86) -# prereqs\vc_redist.x64.exe (VC++ 2017 x64) -# prereqs\HASPUserSetup.exe (Sentinel Runtime / HASP dongle driver) -# formtracepak\FORMTRACEPAK-V6.213.iso (vendor installer ISO, ~2 GB) -# calibrations\CAL-_serial-_probe-.iso (per-machine) -# -# Per-machine calibration is applied separately (mount cal ISO + run its -# Setup.exe), keyed by C:\Enrollment\machine-number.txt. -# -# Legacy captured/ replay path (V6.0 zip + reg) retired 2026-05-21. The -# captured-binary/ payload is still in the repo as a fallback - if the -# v6.213 vendor install fails on a bay, fall back to the captured path -# manually. See git history for the prior shape. -# -# Log: C:\Logs\WaxTrace\09-Setup-WaxAndTrace.log -# C:\Logs\WaxTrace\install.log (written by Install-FromManifest) - -$ErrorActionPreference = 'Continue' - -# Mirror the CMM pattern (09-Setup-CMM.ps1): the script itself lives in the -# shopfloor-setup tree (xcopied during WinPE), but the bulky bootstrap bundle -# (prereqs + captured master + cal ISOs) lives at C:\WaxTrace-Install\, put -# there by startnet.cmd from Y:\installers-post\waxtrace\ at imaging time. -$stagingRoot = 'C:\WaxTrace-Install' -$manifestPath = Join-Path $stagingRoot 'waxtrace-manifest.json' -$libSource = Join-Path $PSScriptRoot '..\common\lib\Install-FromManifest.ps1' - -$logDir = 'C:\Logs\WaxTrace' -$installLog = Join-Path $logDir 'install.log' -$transcriptLog = Join-Path $logDir '09-Setup-WaxAndTrace.log' - -if (-not (Test-Path $logDir)) { - New-Item -Path $logDir -ItemType Directory -Force | Out-Null -} - -try { Start-Transcript -Path $transcriptLog -Append -Force | Out-Null } catch {} - -function Write-WTLog { - param([string]$Message, [string]$Level = 'INFO') - $stamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" - Write-Host "[$stamp] [$Level] $Message" -} - -Write-WTLog "================================================================" -Write-WTLog "=== WaxTrace Setup (imaging-time) session start (PID $PID) ===" -Write-WTLog "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" -Write-WTLog "Script root: $PSScriptRoot" -Write-WTLog "================================================================" - -# Status push - best-effort. -$pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' -if (Test-Path $pxeStatusLib) { - try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-WaxAndTrace: starting' -StageIndex 3 -StageTotal 8 } catch { } -} - -foreach ($file in @('pc-type.txt','machine-number.txt')) { - $path = "C:\Enrollment\$file" - if (Test-Path -LiteralPath $path) { - $content = (Get-Content -LiteralPath $path -First 1 -ErrorAction SilentlyContinue).Trim() - Write-WTLog " $file = $content" - } else { - Write-WTLog " $file = (not present)" - } -} - -# ============================================================================ -# Step 1: Prereqs via manifest (VC++ 2008 + 2017, HASP/Sentinel) -# ============================================================================ -if (-not (Test-Path $manifestPath)) { - Write-WTLog "waxtrace-manifest.json not found at $manifestPath" 'ERROR' -} elseif (-not (Test-Path $libSource)) { - Write-WTLog "Install-FromManifest.ps1 not found at $libSource" 'ERROR' -} else { - Write-WTLog "Running Install-FromManifest (InstallerRoot=$PSScriptRoot)" - & $libSource -ManifestPath $manifestPath -InstallerRoot $stagingRoot -LogFile $installLog - $rc = $LASTEXITCODE - Write-WTLog "Install-FromManifest returned $rc" -} - -# ============================================================================ -# Step 2: FormTracePak vendor install - per-bay version + sub-version -# ============================================================================ -# Detection: skip if Formtracepak already present (re-run safe). -$ftpakExe = 'C:\Program Files (x86)\MitutoyoApp\Formtracepak\Formtracepak.exe' -if (Test-Path -LiteralPath $ftpakExe) { - Write-WTLog "Formtracepak.exe already present - skipping vendor install" -} else { - # Per-bay config resolved by resolve-bay-config.ps1 at WinPE time + written - # to C:\Enrollment\waxtrace\. Drives BOTH which FTPak ISO to mount AND what - # to relay to the tech in the pre-install banner + desktop reference file. - $waxCfgDir = 'C:\Enrollment\waxtrace' - $bayAsset = $null - $bayVersion = $null - $bayModel = $null - $bayUserId = $null - foreach ($pair in @( - @{ Var='bayAsset'; File='C:\Enrollment\machine-number.txt' }, - @{ Var='bayVersion'; File=(Join-Path $waxCfgDir 'version.txt') }, - @{ Var='bayModel'; File=(Join-Path $waxCfgDir 'model.txt') }, - @{ Var='bayUserId'; File=(Join-Path $waxCfgDir 'userid.txt') } - )) { - if (Test-Path -LiteralPath $pair.File) { - $val = (Get-Content -LiteralPath $pair.File -First 1 -ErrorAction SilentlyContinue) - if ($val) { Set-Variable -Name $pair.Var -Value $val.Trim() } - } - } - Write-WTLog "Bay config: asset=$bayAsset version=$bayVersion model=$bayModel userid=$bayUserId" - - if (-not $bayVersion) { - Write-WTLog "No FormTracePak version in $waxCfgDir\version.txt - bay-config did not resolve (asset_tag not in bay-config.csv?). Manual install required." 'ERROR' - } else { - $ftpakIso = Join-Path $stagingRoot ("formtracepak\FORMTRACEPAK-V$bayVersion.iso") - if (-not (Test-Path -LiteralPath $ftpakIso)) { - Write-WTLog "FormTracePak ISO missing: $ftpakIso" 'ERROR' - Write-WTLog " Bay needs V$bayVersion but no matching ISO at the expected path. Either bay-config.csv has the wrong version, or sync-waxtrace.sh did not push the right ISO. Manual install required." 'ERROR' - } else { - # Drop a reference text file on the SupportUser Desktop so the tech - # always has the model + USER ID in front of them when the Setup.exe - # dialogs come up. File persists post-imaging. - try { - $desktop = 'C:\Users\SupportUser\Desktop' - if (-not (Test-Path -LiteralPath $desktop)) { $desktop = 'C:\Users\Public\Desktop' } - $deskFile = Join-Path $desktop ("$bayAsset-FTPak-install-info.txt") - $deskContent = @( - '========================================', - 'FormTracePak install info for this bay', - '========================================', - '', - "Bay: $bayAsset", - "FormTracePak: V$bayVersion", - "Sub-version: $bayModel <- SELECT THIS IN THE Setup.exe DIALOG", - "USER ID: $bayUserId <- ENTER THIS AT THE LICENSING PROMPT", - '', - 'Reference file. Open this whenever you need to recall the USER ID', - 'during the install dialogs.', - '', - "Generated at imaging time by 09-Setup-WaxAndTrace.ps1 ($(Get-Date -Format 'yyyy-MM-dd HH:mm:ss'))" - ) -join "`r`n" - Set-Content -LiteralPath $deskFile -Value $deskContent -Force - Write-WTLog "Wrote reference file to $deskFile" - } catch { - Write-WTLog "Failed to write desktop reference file: $_" 'WARN' - } - - # Big banner in the PS host window. Operator sees this BEFORE Setup.exe - # opens so the model + USER ID are top-of-mind when the dialogs come up. - $bannerLines = @( - '', - '================================================================', - " BAY: $bayAsset", - " FORMTRACEPAK: V$bayVersion", - " SELECT MODEL: $bayModel", - " USER ID: $bayUserId", - '================================================================', - ' Setup.exe is about to launch. In its dialogs:', - " - Pick the MODEL '$bayModel' on the language / model page.", - " - Enter USER ID '$bayUserId' at the licensing prompt.", - " - A reference text file with these values has been placed on", - " SupportUser's desktop ($bayAsset-FTPak-install-info.txt).", - '================================================================', - '' - ) - foreach ($l in $bannerLines) { Write-WTLog $l } - - Write-WTLog "Mounting FormTracePak ISO: $ftpakIso" - try { - $img = Mount-DiskImage -ImagePath $ftpakIso -PassThru -ErrorAction Stop - Start-Sleep -Seconds 8 - $vol = Get-DiskImage -ImagePath $ftpakIso | Get-Volume - $ftpakDrive = $vol.DriveLetter - if (-not $ftpakDrive) { - Write-WTLog " Mount succeeded but no drive letter assigned" 'ERROR' - } else { - Write-WTLog " mounted at ${ftpakDrive}: (volume label=$($vol.FileSystemLabel))" - $setupExe = "${ftpakDrive}:\Setup.exe" - if (-not [System.IO.File]::Exists($setupExe)) { - Write-WTLog " Setup.exe not found at $setupExe" 'ERROR' - } else { - Write-WTLog " running $setupExe (VB6 wrapper - requires DRIVE_CDROM)" - try { - $p = Start-Process -FilePath $setupExe ` - -WorkingDirectory "${ftpakDrive}:\" ` - -ArgumentList '/silent' ` - -Wait -PassThru - Write-WTLog " Setup.exe exit $($p.ExitCode)" - } catch { - Write-WTLog " Setup.exe failed: $_" 'ERROR' - } - } - } - Dismount-DiskImage -ImagePath $ftpakIso -ErrorAction SilentlyContinue | Out-Null - Write-WTLog " FormTracePak ISO dismounted" - } catch { - Write-WTLog " Mount-DiskImage failed: $_" 'ERROR' - } - } - } -} - -# ============================================================================ -# Step 3: Per-machine calibration ISO (mount + apply via cal Setup.exe) -# ============================================================================ -# Cal ISOs are keyed by asset_tag. Read machine-number.txt to pick the right -# ISO. Each cal ISO is ~1.7MB and contains a tiny Mitutoyo wrapper Setup.exe -# plus data/*.txt compensation tables for the bay's specific probe + serial. -$mnPath = 'C:\Enrollment\machine-number.txt' -$asset = $null -if (Test-Path -LiteralPath $mnPath) { - $asset = (Get-Content -LiteralPath $mnPath -First 1 -ErrorAction SilentlyContinue).Trim() -} -if (-not $asset) { - Write-WTLog "machine-number.txt missing or empty - skipping calibration apply" 'WARN' -} else { - # Consistency: a per-asset backup ZIP (restored in Step 3b with HKLM + data - # + config, including the probe cal tables) is the single authoritative cal - # source. When one is staged - true for every migrated bay - skip the - # redundant, fragile cal-ISO mount/vendor-Setup path so all bays follow one - # flow (app ISO + backup restore), same as bays that never had a cal ISO. - # A future bay with a cal ISO but no backup still falls through to the ISO. - $haveBackup = @('C:\WaxTrace-Install\backups','C:\WaxTrace-Install\backup') | - Where-Object { Test-Path -LiteralPath $_ } | - ForEach-Object { Get-ChildItem -LiteralPath $_ -Filter "${asset}*.zip" -File -ErrorAction SilentlyContinue } | - Select-Object -First 1 - $calDir = Join-Path $stagingRoot 'calibrations' - $candidate = $null - if (-not $haveBackup) { - $candidate = Get-ChildItem $calDir -Filter "CAL-${asset}_*.iso" -ErrorAction SilentlyContinue | Select-Object -First 1 - } - if ($haveBackup) { - Write-WTLog "Per-asset backup ZIP present ($($haveBackup.Name)) - skipping cal ISO; calibration restored from backup (Step 3b)" - } elseif (-not $candidate) { - Write-WTLog "No cal ISO matched CAL-${asset}_*.iso in $calDir - skipping" 'WARN' - } else { - Write-WTLog "Mounting cal ISO: $($candidate.FullName)" - try { - $img = Mount-DiskImage -ImagePath $candidate.FullName -PassThru -ErrorAction Stop - Start-Sleep -Seconds 5 - $calDrive = (Get-DiskImage -ImagePath $candidate.FullName | Get-Volume).DriveLetter - $calRoot = "${calDrive}:\" - Write-WTLog " mounted at $calRoot" - - # Disc layout differs by probe series. We have observed two: - # - # Older 218-458A: E:\App.ini, E:\Setup.exe, E:\data\CVIFDLL.ini, - # E:\data\Cvif_Correction.exe, E:\data\.txt. - # Vendor Setup.exe works (VB6, may prompt). - # - # Newer 218-378-13: E:\setup.bat, E:\setup.exe (.NET 4.0), - # E:\iniStatus\, E:\data\cvifdll.ini, - # E:\data\.txt - BUT the filenames have a - # bug: probe ID ends with a TRAILING SPACE - # ("218-378-13 _100072210.txt"). The vendor's - # .NET Setup.exe calls FileSystemInfo.set_Attributes - # on the source path and throws System.ArgumentException - # because the path contains an embedded space - # component, crashing every time - # (exit -532462766 = 0xE0434352, .NET unhandled - # exception). See diag-cal.log, WER Event 1026. - # - # We bypass the vendor wrapper entirely when the disc carries - # the buggy filenames and do a direct file copy into FormTracePak's - # data dir, renaming each file to strip the trailing space. - $srcDataDir = Join-Path $calRoot 'data' - $dstDataDir = 'C:\Program Files (x86)\MitutoyoApp\Formtracepak\data' - - $bypassVendorSetup = $false - if (Test-Path -LiteralPath $srcDataDir) { - # The 218-378-13 probe series has a buggy .NET Setup.exe - # that crashes (0xE0434352) even when filenames are clean. - # Older ISOs had trailing-space filenames (' _' pattern); - # newer ISOs fixed the filenames but the .NET wrapper - # still crashes on some path operation. Detect by probe - # series in filename OR the trailing-space signature. - $bypassVendorSetup = [bool](Get-ChildItem -LiteralPath $srcDataDir -File -ErrorAction SilentlyContinue | - Where-Object { $_.Name -match '218-378-13' -or $_.Name -match ' _\d+\.txt$' } | - Select-Object -First 1) - } - - if ($bypassVendorSetup) { - Write-WTLog " 218-378-13 series detected - bypassing vendor Setup.exe, doing direct file copy" - if (-not (Test-Path -LiteralPath $dstDataDir)) { - Write-WTLog " destination data dir does not exist: $dstDataDir" 'ERROR' - Write-WTLog " (FormTracePak install may not be complete; cal apply aborted)" 'ERROR' - } else { - $copied = 0 - Get-ChildItem -LiteralPath $srcDataDir -File -ErrorAction SilentlyContinue | ForEach-Object { - # Strip ' _' (space-underscore) -> '_' inside the filename to - # heal the Mitutoyo burn-time typo. cvifdll.ini etc unaffected. - $cleanName = $_.Name -replace ' _', '_' - $dst = Join-Path $dstDataDir $cleanName - try { - Copy-Item -LiteralPath $_.FullName -Destination $dst -Force -ErrorAction Stop - # Clear read-only on the destination so future overwrites work. - try { (Get-Item -LiteralPath $dst).Attributes = 'Normal' } catch {} - Write-WTLog " copied $($_.Name) -> $cleanName" - $copied++ - } catch { - Write-WTLog " copy failed for $($_.Name): $_" 'ERROR' - } - } - Write-WTLog " direct copy complete: $copied file(s) into $dstDataDir" - } - } else { - # Older-style disc (clean filenames). Vendor Setup.exe is reliable. - $calSetup = "${calDrive}:\Setup.exe" - if (Test-Path -LiteralPath $calSetup) { - Write-WTLog " running cal Setup.exe (may prompt - VB6 wrapper, same vintage as main installer)" - $p = Start-Process -FilePath $calSetup -WorkingDirectory $calRoot -Wait -PassThru - Write-WTLog " cal Setup.exe exit $($p.ExitCode)" - } else { - Write-WTLog " cal Setup.exe not found at $calSetup" 'WARN' - } - } - - Dismount-DiskImage -ImagePath $candidate.FullName -ErrorAction SilentlyContinue | Out-Null - Write-WTLog " cal ISO dismounted" - } catch { - Write-WTLog " Mount-DiskImage failed: $_" 'ERROR' - } - } -} - -# ============================================================================ -# Step 3b: Restore captured layouts / prefs / data from per-asset backup ZIP -# ============================================================================ -# startnet.cmd stages C:\WaxTrace-Install\backup\.zip iff the PXE -# share has a backup ZIP for this asset. The ZIP is the output of -# Backup-FormtracepakSettings.ps1 captured on the LIVE bay BEFORE re-imaging. -# Restore is data + config only - skip -RestoreRegistry until the HKEY_USERS -# SID rewriting is built (captured .reg carries source bay's user SID which -# does not exist on the freshly imaged bay). HKLM controller config / model -# device-map / etc. came from the vendor MSI install in Step 2 already. -$backupZip = $null -# startnet.cmd robocopy's the whole installers-post\waxtrace\backups\ dir -# to C:\WaxTrace-Install\backups\ (plural). Try plural first, then singular -# for backward-compat with any older boot.wim that used the cherry-pick path. -$backupDirCandidates = @( - 'C:\WaxTrace-Install\backups', - 'C:\WaxTrace-Install\backup' -) -foreach ($bd in $backupDirCandidates) { - if (-not (Test-Path -LiteralPath $bd) -or -not $bayAsset) { continue } - $candidate = Join-Path $bd ("$bayAsset.zip") - if (Test-Path -LiteralPath $candidate) { - $backupZip = $candidate - break - } - $newest = Get-ChildItem -LiteralPath $bd -Filter "${bayAsset}*.zip" -File -ErrorAction SilentlyContinue | - Sort-Object LastWriteTime -Descending | Select-Object -First 1 - if ($newest) { - $backupZip = $newest.FullName - break - } -} -if ($backupZip) { - $installPs1 = Join-Path $stagingRoot 'Install-FormtracepakSettings.ps1' - if (Test-Path -LiteralPath $installPs1) { - Write-WTLog "Restoring per-asset backup from $backupZip (HKLM + files; HKEY_USERS deferred to first ShopFloor logon)" - try { - # In-line restore: HKLM (controller config, device-map) + files - # (layouts, prefs in install dir). HKEY_USERS per-user prefs would - # need ShopFloor's hive loaded, which it isn't at imaging time - - # deferred to a scheduled SYSTEM task that fires on first ShopFloor - # logon (see Schedule-WaxTracePerUserRestore call below). - & $installPs1 -BackupPath $backupZip -RestoreRegistry -RestoreData -RestoreConfig -Force - Write-WTLog " Restore call returned (see restore log + Install-FormtracepakSettings output above)" - } catch { - Write-WTLog " Restore call threw: $_" 'WARN' - } - - # Schedule the per-user prefs restore as a SYSTEM task that fires on - # first ShopFloor logon. The task self-removes after one successful - # run via flag file at C:\WaxTrace-Install\per-user-restore-ShopFloor.flag. - $schedScript = Join-Path $stagingRoot 'Schedule-WaxTracePerUserRestore.ps1' - if (-not (Test-Path -LiteralPath $schedScript)) { - # Fall back: pull from shopfloor-setup scripts/ sibling tree - $alt = Join-Path $PSScriptRoot 'scripts\Schedule-WaxTracePerUserRestore.ps1' - if (Test-Path -LiteralPath $alt) { $schedScript = $alt } - } - if (Test-Path -LiteralPath $schedScript) { - Write-WTLog "Registering deferred ShopFloor per-user restore task ($schedScript)" - try { - & $schedScript -BackupPath $backupZip -InstallScript $installPs1 -TargetUser 'ShopFloor' -AssetNumber $bayAsset - Write-WTLog " Scheduled task 'WaxTrace-PerUser-Restore' registered" - } catch { - Write-WTLog " Schedule task call threw: $_" 'WARN' - } - } else { - Write-WTLog "Schedule-WaxTracePerUserRestore.ps1 not found - per-user prefs will NOT auto-restore at first ShopFloor logon" 'WARN' - } - } else { - Write-WTLog "Install-FormtracepakSettings.ps1 not found at $installPs1 - skipping restore" 'WARN' - } -} else { - Write-WTLog "No per-asset backup ZIP for $bayAsset in $($backupDirCandidates -join ', ') - skipping restore (clean vendor install only)" -} - -# ============================================================================ -# Step 4: OpenText auto-start at login (HostExplorer "WJ Shopfloor" session) -# ============================================================================ -$autoStartLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Set-OpenTextAutoStart.ps1' -if (Test-Path -LiteralPath $autoStartLib) { - Write-WTLog "Calling $autoStartLib" - & $autoStartLib -} else { - Write-WTLog "Set-OpenTextAutoStart.ps1 not found at $autoStartLib - OpenText auto-start NOT configured" 'WARN' -} - -if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - $finalStatus = if ($rc -eq 0) { 'in_progress' } else { 'failed' } - $finalErr = if ($rc -ne 0) { "Install-FromManifest exit $rc" } else { '' } - Send-PxeStatus -Stage '09-Setup-WaxAndTrace: complete' -StageIndex 4 -StageTotal 8 -Status $finalStatus -Error_ $finalErr -} - -Write-WTLog "================================================================" -Write-WTLog "=== WaxTrace Setup session end ===" -Write-WTLog "================================================================" - -try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/bay-config.csv b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/bay-config.csv deleted file mode 100644 index 6484bf5..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/bay-config.csv +++ /dev/null @@ -1,18 +0,0 @@ -asset_tag,ftpak_version,model,user_id,hw_sn,hw_id,host,notes -WJF00052,6.103,CV-4500,3270314998,100032204,00039188,G2ZTNCX3ESF,bay-config was AVANT - corrected to CV-4500 per device-map -WJF00083,6.103,AVANT,2934506987,100062206,00039341,GDMT28Y3ESF, -WJF00084,6.103,AVANT,1476212857,100042205,00039348,G2GY4SY3ESF, -WJF00159,6.103,AVANT,3974839712,100072210,00040145,G5PRTW04ESF, -WJF00197,6.104,AVANT,1191612605,300022404,00041459,GHNWYRT3ESF, -WJF00450,6.213,AVANT,0992830128,400052411,MISSING_DATA,G8KRCPZ3ESF,app ISO 6.213 (only 6.2x ISO available) + restore 6.2.0.45 backup - same pattern as WJF00461 (6.213 ISO / 6.2.0.51 backup); do not change to 6.204 (no V6.204 ISO exists); user_id set 2026-06-08; hw_id needs dongle read (metadata only) -WJF00461,6.213,AVANT,3878777362,400012504,00044757,G2PMG3D4ESF,new bay (was misattributed to WJF00545 in old CSV) -WJF00545,6.213,AVANT,3268459559,500022512,00045652,G6MJG3D4ESF,user_id refreshed 2026-05-24 (was 3878777362) -WJRP0423,6.0,CV-3100,3669340917,720104,00025834,GGDBWRT3ESF,old bay - device-map name 'NewCVSV' is Mitutoyo internal for CV-3100 -WJRP2035,6.0,CV-4500,2292822471,200011406,0008232,G6W7JK44ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2335,6.0,CV-4500,1780916688,800011510,00011911,G4B48FZ3ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2347,6.0,CV-4500,3585172946,800021510,00011674,GDR6B8B3ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2659,6.0,CV-4500,2709054503,000021608,00015700,G33N20R3ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2660,6.0,CV-4500,236598621,000011607,00015588,GGGMF1V3ESF,live binary is 5.7.0.92 - migrating to original 6.0 target -WJRP3638,5.602,CV-4500,0720778210,400031808,00024395,GFDBWRT3ESF, -WJRP3689,5.510,CV-4500,3744284509,400021807f,00024390,G4HCKF33ESF,live binary is 5.6.0.40 (release 5.602) - migrating to original 5.510 target -WJRP4802,6.002,AVANT,0920866935,100062108,00034683,G5W7R704ESF,live binary is 5.7.0.92 - migrating to original 6.002 target diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.json b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.json deleted file mode 100644 index af00f09..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "DisplayName": "Formtracepak", - "DisplayVersion": null, - "Publisher": "Mitutoyo Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Formtracepak" - }, - { - "DisplayName": "Microsoft Visual C++ 2017 x86 Additional Runtime - 14.15.26706", - "DisplayVersion": "14.15.26706", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{2757496A-3E74-320A-B007-36120A9F126D}" - }, - { - "DisplayName": "Microsoft Visual C++ 2017 x86 Minimum Runtime - 14.15.26706", - "DisplayVersion": "14.15.26706", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{39E15475-23F2-345D-8977-B5DC47A94E26}" - }, - { - "DisplayName": "Microsoft Visual C++ 2017 Redistributable (x86) - 14.15.26706", - "DisplayVersion": "14.15.26706.0", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{7e9fae12-5bbf-47fb-b944-09c49e75c061}" - }, - { - "DisplayName": "Microsoft Visual C++ 2017 Redistributable (x64) - 14.15.26706", - "DisplayVersion": "14.15.26706.0", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{95ac1cfa-f4fb-4d1b-8912-7f9d5fbb140d}" - }, - { - "DisplayName": "Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17", - "DisplayVersion": "9.0.30729", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9A25302D-30C0-39D9-BD6F-21E6EC160475}" - }, - { - "DisplayName": "Sentinel Runtime", - "DisplayVersion": "7.92.28470.60000", - "Publisher": "Gemalto", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C8903CCB-67B6-4801-AA7B-B4E54E2B8406}" - }, - { - "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", - "DisplayVersion": "01/26/2014 1.0.0.0", - "Publisher": "Mitutoyo Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\0C2BF85342810B30769EBCA6B95E4E4BE156E077" - }, - { - "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (03/26/2012 6.1.7600.16385)", - "DisplayVersion": "03/26/2012 6.1.7600.16385", - "Publisher": "Mitutoyo Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\0D65E8F8146B3CCE8C4649A829EDCAFD02F3E6CF" - }, - { - "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/01/2016 1.0.0.0)", - "DisplayVersion": "01/01/2016 1.0.0.0", - "Publisher": "Mitutoyo Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\17940B80DB5791E80624748EB1CFB7CF28FA0BAE" - }, - { - "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", - "DisplayVersion": "01/26/2014 1.0.0.0", - "Publisher": "Mitutoyo Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\2B01E4170B345A54C5865F65CEA1BAFA50BB9C2C" - }, - { - "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", - "DisplayVersion": "01/26/2014 1.0.0.0", - "Publisher": "Mitutoyo Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\CB4E6EDB5EA0AB4F2E28F4C0CA4E0B09C7AE1F54" - }, - { - "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", - "DisplayVersion": "01/26/2014 1.0.0.0", - "Publisher": "Mitutoyo Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\F3159CAB242459F45CAF22F84A47213A0101C6CE" - }, - { - "DisplayName": "Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022", - "DisplayVersion": "9.0.21022", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{350AA351-21FA-3270-8B7A-835434E766AD}" - }, - { - "DisplayName": "Microsoft Visual C++ 2017 x64 Minimum Runtime - 14.15.26706", - "DisplayVersion": "14.15.26706", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C77195A4-CEB8-38EE-BDD6-C46CB459EF6E}" - }, - { - "DisplayName": "Microsoft Visual C++ 2017 x64 Additional Runtime - 14.15.26706", - "DisplayVersion": "14.15.26706", - "Publisher": "Microsoft Corporation", - "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F106B700-BFF8-3065-B305-14D36AD40539}" - } -] diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.xml b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.xml deleted file mode 100644 index a5c7c95..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.xml and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/capture.log b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/capture.log deleted file mode 100644 index 154d48a..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/capture.log and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/manifest.json b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/manifest.json deleted file mode 100644 index c163d81..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/manifest.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Label": "combined", - "CapturedAt": "2026-05-18T05:20:48", - "PfX86Mb": 107.9, - "DataMb": 0, - "ArpCount": 16, - "SysFilesAdded": 0, - "HklmWowMitutoyoExists": true -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/pnputil-drivers.txt b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/pnputil-drivers.txt deleted file mode 100644 index 75f3119..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/pnputil-drivers.txt +++ /dev/null @@ -1,237 +0,0 @@ -Microsoft PnP Utility - -Published Name: oem2.inf -Original Name: balloon.inf -Provider Name: Red Hat, Inc. -Class Name: System -Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem3.inf -Original Name: fwcfg.inf -Provider Name: Red Hat, Inc. -Class Name: System -Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem5.inf -Original Name: pvpanic.inf -Provider Name: Red Hat, Inc. -Class Name: System -Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem7.inf -Original Name: viofs.inf -Provider Name: Red Hat, Inc. -Class Name: System -Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem9.inf -Original Name: vioinput.inf -Provider Name: Red Hat, Inc. -Class Name: HIDClass -Class GUID: {745a17a0-74d3-11d0-b6fe-00a0c90f57da} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem11.inf -Original Name: viorng.inf -Provider Name: Red Hat, Inc. -Class Name: System -Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem12.inf -Original Name: vioscsi.inf -Provider Name: Red Hat, Inc. -Class Name: SCSIAdapter -Class GUID: {4d36e97b-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem13.inf -Original Name: vioser.inf -Provider Name: Red Hat, Inc. -Class Name: System -Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem14.inf -Original Name: viostor.inf -Provider Name: Red Hat, Inc. -Class Name: SCSIAdapter -Class GUID: {4d36e97b-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem8.inf -Original Name: cnc_comm.inf -Provider Name: Mitutoyo Corporation -Class Name: USB -Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} -Driver Version: 01/26/2014 1.0.0.0 -Signer Name: MITUTOYO CORPORATION -Attributes: Legacy -WHCP Version: Unknown - -Published Name: oem17.inf -Original Name: cps-476.inf -Provider Name: Mitutoyo Corporation -Class Name: USB -Class GUID: {a2e18d78-b77a-45af-bca9-2d7d3f27cf74} -Driver Version: 03/26/2012 6.1.7600.16385 -Signer Name: Mitutoyo Corporation -Attributes: Legacy -WHCP Version: Unknown - -Published Name: oem18.inf -Original Name: cs3200_comm.inf -Provider Name: Mitutoyo Corporation -Class Name: USB -Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} -Driver Version: 01/01/2016 1.0.0.0 -Signer Name: MITUTOYO CORPORATION -Attributes: Legacy -WHCP Version: Unknown - -Published Name: oem19.inf -Original Name: cv_1000_or_cv_2000.inf -Provider Name: Mitutoyo Corporation -Class Name: USB -Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} -Driver Version: 01/26/2014 1.0.0.0 -Signer Name: MITUTOYO CORPORATION -Attributes: Legacy -WHCP Version: Unknown - -Published Name: oem20.inf -Original Name: cv_2100.inf -Provider Name: Mitutoyo Corporation -Class Name: USB -Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} -Driver Version: 01/26/2014 1.0.0.0 -Signer Name: MITUTOYO CORPORATION -Attributes: Legacy -WHCP Version: Unknown - -Published Name: oem16.inf -Original Name: keyence_vr_series.inf -Provider Name: KEYENCE -Class Name: KeyenceUSB -Class GUID: {ee304f37-f588-45fc-91fe-b76873981ad1} -Driver Version: 03/26/2020 1.0.0.0 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Declarative - Attested -WHCP Version: Unknown - -Published Name: oem4.inf -Original Name: netkvm.inf -Provider Name: Red Hat, Inc. -Class Name: Net -Class GUID: {4d36e972-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem0.inf -Original Name: prnms009.inf -Provider Name: Microsoft -Class Name: Printer -Class GUID: {4d36e979-e325-11ce-bfc1-08002be10318} -Class Version: 4.0 -Driver Version: 06/21/2006 10.0.26100.4484 -Signer Name: Microsoft Windows -Attributes: Legacy -WHCP Version: Unknown - -Published Name: oem6.inf -Original Name: qemupciserial.inf -Provider Name: QEMU -Class Name: MultiFunction -Class GUID: {4d36e971-e325-11ce-bfc1-08002be10318} -Driver Version: 05/21/2022 100.90.104.22100 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Declarative - Attested -WHCP Version: Unknown - -Published Name: oem15.inf -Original Name: qxldod.inf -Provider Name: Red Hat, Inc. -Class Name: Display -Class GUID: {4d36e968-e325-11ce-bfc1-08002be10318} -Driver Version: 11/20/2020 10.0.0.21000 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal -WHCP Version: Unknown - -Published Name: oem21.inf -Original Name: sj_comm.inf -Provider Name: Mitutoyo Corporation -Class Name: USB -Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} -Driver Version: 01/26/2014 1.0.0.0 -Signer Name: MITUTOYO CORPORATION -Attributes: Legacy -WHCP Version: Unknown - -Published Name: oem10.inf -Original Name: viomem.inf -Provider Name: Red Hat, Inc. -Class Name: MTD -Class GUID: {4d36e970-e325-11ce-bfc1-08002be10318} -Driver Version: 07/09/2025 100.101.104.28500 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal - Attested -WHCP Version: Unknown - -Published Name: oem1.inf -Original Name: voiceclarityep_audio_component.inf -Provider Name: Microsoft Corporation -Class Name: AudioProcessingObject -Class GUID: {5989fce8-9cd0-467d-8a6a-5419e31529d4} -Driver Version: 03/31/2026 10.0.26100.6710 -Signer Name: Microsoft Windows Hardware Compatibility Publisher -Attributes: Universal -WHCP Version: Unknown - - diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/reg/hklm-wow-mitutoyo.reg.gz b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/reg/hklm-wow-mitutoyo.reg.gz deleted file mode 100644 index 76e76f4..0000000 Binary files a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/reg/hklm-wow-mitutoyo.reg.gz and /dev/null differ diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/sys-files-added.csv b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/sys-files-added.csv deleted file mode 100644 index e69de29..0000000 diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/resolve-bay-config.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/resolve-bay-config.ps1 deleted file mode 100644 index 6c2ba3e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/resolve-bay-config.ps1 +++ /dev/null @@ -1,90 +0,0 @@ -# resolve-bay-config.ps1 - WinPE-runnable bay-config resolver. -# -# Reads bay-config.csv (per-asset ftpak_version + model + user_id) and -# writes the matched row into per-field text files under $OutDir, so the -# rest of startnet.cmd + the post-imaging 09-Setup-WaxAndTrace.ps1 can -# read them as single-line files (cheaper than re-parsing CSV in batch). -# -# Outputs (under $OutDir, default W:\Enrollment\waxtrace\): -# version.txt - exact FormTracePak version (matches an installer ISO label) -# model.txt - sub-version (AVANT / CV-4500 / CV-3200) -# userid.txt - per-bay license USER ID -# bay-info.txt - human-readable audit dump (timestamped) -# -# Exit codes: -# 0 - row found + files written -# 1 - asset_tag not in bay-config.csv (Wax/Trace install will abort cleanly) -# 2 - bay-config.csv missing or unparseable - -[CmdletBinding()] -param( - [Parameter(Mandatory=$true)][string]$Asset, - [string]$ConfigCsv = '', - [string]$OutDir = 'W:\Enrollment\waxtrace' -) - -# Default ConfigCsv: bay-config.csv next to this script on the share OR -# under the script's own directory in the local C:\WaxTrace-Install\ tree -# (depending on where the caller invokes us from). -if (-not $ConfigCsv) { - $cands = @( - (Join-Path $PSScriptRoot 'bay-config.csv'), - (Join-Path $PSScriptRoot '..\bay-config.csv'), - 'Y:\installers-post\waxtrace\bay-config.csv', - 'C:\WaxTrace-Install\bay-config.csv' - ) - foreach ($c in $cands) { - if (Test-Path -LiteralPath $c) { $ConfigCsv = $c; break } - } -} - -if (-not (Test-Path -LiteralPath $ConfigCsv)) { - Write-Warning "bay-config.csv not found (looked under $PSScriptRoot, ..\, Y:\installers-post\waxtrace\, C:\WaxTrace-Install\)" - exit 2 -} - -Write-Host "resolve-bay-config.ps1: looking up '$Asset' in $ConfigCsv" - -try { - $rows = @(Import-Csv -LiteralPath $ConfigCsv) -} catch { - Write-Warning "Failed to parse ${ConfigCsv}: $_" - exit 2 -} - -$row = $rows | Where-Object { $_.asset_tag -ieq $Asset } | Select-Object -First 1 -if (-not $row) { - Write-Warning "Asset '$Asset' not in $ConfigCsv. Available asset_tags: $(($rows.asset_tag | Sort-Object) -join ', ')" - exit 1 -} - -if (-not (Test-Path -LiteralPath $OutDir)) { - New-Item -ItemType Directory -Path $OutDir -Force | Out-Null -} - -function Write-Line { - param([string]$Name, [string]$Value) - $p = Join-Path $OutDir $Name - Set-Content -LiteralPath $p -Value $Value -NoNewline -Force - Write-Host " wrote $p = '$Value'" -} - -Write-Line 'version.txt' $row.ftpak_version -Write-Line 'model.txt' $row.model -Write-Line 'userid.txt' $row.user_id - -$infoLines = @( - "Bay-config resolved at $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')", - " Asset: $($row.asset_tag)", - " FormTracePak: V$($row.ftpak_version)", - " Sub-version: $($row.model)", - " USER ID: $($row.user_id)", - "", - "Source: $ConfigCsv" -) -$infoPath = Join-Path $OutDir 'bay-info.txt' -Set-Content -LiteralPath $infoPath -Value ($infoLines -join "`r`n") -Force -Write-Host " wrote $infoPath" - -Write-Host "resolve-bay-config.ps1: OK" -exit 0 diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Backup-FormtracepakSettings.bat b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Backup-FormtracepakSettings.bat deleted file mode 100644 index cfe5a04..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Backup-FormtracepakSettings.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -REM Bypass launcher for Backup-FormtracepakSettings.ps1. -REM Forwards any args to the PS1 (e.g. -AssetNumber WJRP2335 -IncludeExecutables). -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0Backup-FormtracepakSettings.ps1" %* -exit /b %ERRORLEVEL% diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Backup-FormtracepakSettings.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Backup-FormtracepakSettings.ps1 deleted file mode 100755 index 1a0f842..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Backup-FormtracepakSettings.ps1 +++ /dev/null @@ -1,615 +0,0 @@ -<# -.SYNOPSIS - Backs up all Mitutoyo Formtracepak settings, data, and registry to a ZIP archive. - -.DESCRIPTION - Collects application config files, user data (part programs, layouts, measurements, - design values, calibration records), and registry keys from a Formtracepak host and - packages them into a portable ZIP file suitable for network storage or USB transfer. - - The backup includes a manifest.json and per-folder file_manifest.csv files that - Install-FormtracepakSettings.ps1 uses to restore files to their original locations. - - Supports Formtracepak v6.1 through current, FORMPAK-1000, SURFPAK-SV, DUAL TRACEPAK. - -.PARAMETER AssetNumber - Asset number (e.g. WJRP1234) used to namespace the backup on the shopfloor - share. If omitted, the script prompts interactively and defaults to the - current $env:COMPUTERNAME. The asset number is the leaf folder under - S:\DT\Shopfloor\backup\waxandtrace\ - Ignored if -Destination is supplied. - -.PARAMETER Destination - Where to write the ZIP file. Can be a USB drive, network share, or local path. - If omitted, defaults to the per-asset path on the mapped S: drive: - S:\DT\Shopfloor\backup\waxandtrace\ - The destination directory is created if it does not exist. - -.PARAMETER NoZip - Keep the backup as an uncompressed folder instead of creating a ZIP archive. - -.PARAMETER IncludeExecutables - Also back up EXE and DLL files from the application directories. Off by default - since the application should be reinstalled via installer on the new host. - -.EXAMPLE - .\Backup-FormtracepakSettings.ps1 - .\Backup-FormtracepakSettings.ps1 -AssetNumber WJRP2335 - .\Backup-FormtracepakSettings.ps1 -Destination "F:\mitutoyo_backups" -IncludeExecutables -#> -[CmdletBinding()] -param( - [string]$AssetNumber, - [string]$Destination, - [switch]$NoZip, - [switch]$IncludeExecutables -) - -$SharedRoot = 'S:\DT\Shopfloor\backup\waxandtrace' - -# Resolve the script's own directory robustly. $PSScriptRoot can come through -# empty in some hosts (IEX / dot-source / certain remote wrappers), which -# would silently skip the picker invocation below. -$scriptDir = if ($PSScriptRoot) { $PSScriptRoot } ` - elseif ($PSCommandPath) { Split-Path -Parent $PSCommandPath } ` - else { (Get-Location).Path } - -if (-not $Destination) { - if (-not $AssetNumber) { - $defaultAsset = $env:COMPUTERNAME - if ([Environment]::UserInteractive -and -not [Console]::IsInputRedirected) { - # Prefer arrow-key picker against bay-config.csv if it is sitting - # next to this script. Falls through to a plain Read-Host prompt - # if no picker / no CSV available. - $picker = Join-Path $scriptDir 'Select-WaxtraceAsset.ps1' - $cfg = Join-Path $scriptDir 'bay-config.csv' - if ((Test-Path -LiteralPath $picker) -and (Test-Path -LiteralPath $cfg)) { - $picked = & $picker -ConfigCsv $cfg -Title 'Backup FormTracePak - pick the bay being captured' - if ($picked) { - $AssetNumber = $picked - } - } - if (-not $AssetNumber) { - $input = Read-Host "Asset number for this backup (e.g. WJRP1234) [$defaultAsset]" - if ([string]::IsNullOrWhiteSpace($input)) { - $AssetNumber = $defaultAsset - } else { - $AssetNumber = $input.Trim() - } - } - } else { - # Non-interactive (qga / SYSTEM / scheduled task): fall back to COMPUTERNAME silently. - $AssetNumber = $defaultAsset - Write-Host "Non-interactive session - defaulting AssetNumber to $AssetNumber. Pass -AssetNumber to override." - } - } - $Destination = Join-Path $SharedRoot $AssetNumber -} - -if (-not (Test-Path -LiteralPath $Destination)) { - try { - New-Item -Path $Destination -ItemType Directory -Force -ErrorAction Stop | Out-Null - Write-Host "Created destination: $Destination" - } catch { - Write-Error "Destination not reachable / not creatable: $Destination`n$_" - exit 1 - } -} - -Set-StrictMode -Version Latest -$ErrorActionPreference = 'Continue' - -# ---------------------------------------------------------------------- -# CONFIGURABLE: Directories to scan. Add or remove to match your environment. -# ---------------------------------------------------------------------- - -$ApplicationPaths = @( - # v6.213 vendor MSI layout (the path the per-bay install lands on today). - "${env:ProgramFiles(x86)}\MitutoyoApp" - "${env:ProgramFiles}\MitutoyoApp" - "${env:ProgramFiles}\Mitutoyo" - "${env:ProgramFiles(x86)}\Mitutoyo" - "${env:ProgramFiles}\FORMTRACEPAK" - "${env:ProgramFiles(x86)}\FORMTRACEPAK" - "${env:ProgramFiles}\Formtracepak" - "${env:ProgramFiles(x86)}\Formtracepak" - "C:\Mitutoyo" - "D:\Mitutoyo" - "C:\FORMTRACEPAK" - "D:\FORMTRACEPAK" - "C:\FORMPAK" - "C:\SURFPAK" - "C:\MtFormTracer" - "C:\MtSurfMeas" -) - -$UserDataPaths = @( - "${env:APPDATA}\Mitutoyo" - "${env:LOCALAPPDATA}\Mitutoyo" - "${env:ProgramData}\Mitutoyo" - "${env:APPDATA}\FORMTRACEPAK" - "${env:LOCALAPPDATA}\FORMTRACEPAK" - "${env:ProgramData}\FORMTRACEPAK" - "${env:USERPROFILE}\Documents\Mitutoyo" - "${env:USERPROFILE}\Documents\FORMTRACEPAK" - "${env:USERPROFILE}\Documents\FORMPAK" - "${env:USERPROFILE}\Documents\SURFPAK" - "${env:PUBLIC}\Documents\Mitutoyo" - "${env:PUBLIC}\Documents\FORMTRACEPAK" -) - -$RegistryRoots = @( - "HKLM:\SOFTWARE\Mitutoyo" - "HKLM:\SOFTWARE\WOW6432Node\Mitutoyo" - "HKCU:\SOFTWARE\Mitutoyo" - "HKLM:\SOFTWARE\FORMTRACEPAK" - "HKLM:\SOFTWARE\WOW6432Node\FORMTRACEPAK" - "HKCU:\SOFTWARE\FORMTRACEPAK" - "HKLM:\SOFTWARE\FORMPAK" - "HKLM:\SOFTWARE\WOW6432Node\FORMPAK" - "HKCU:\SOFTWARE\FORMPAK" - "HKLM:\SOFTWARE\SURFPAK" -) - -# Sweep every loaded user hive under HKEY_USERS for Mitutoyo/FORMTRACEPAK/ -# FORMPAK/SURFPAK subkeys. Wax/Trace bays run as a domain "Shopfloor" account, -# whose HKCU prefs are NOT visible via HKCU:\ when the script runs as -# SupportUser / SYSTEM. As long as the Shopfloor user has a logged-in session -# (interactive or disconnected) the hive is mounted under HKEY_USERS\. -# Skip the special SIDs (S-1-5-18 = SYSTEM, S-1-5-19/20 = LocalService / -# NetworkService) and the *_Classes subhives. -$userHiveSubpaths = @('Software\Mitutoyo','Software\FORMTRACEPAK','Software\FORMPAK','Software\SURFPAK') -foreach ($u in (Get-ChildItem 'Registry::HKEY_USERS' -ErrorAction SilentlyContinue)) { - $sid = $u.PSChildName - if ($sid -notmatch '^S-1-5-21-' ) { continue } # only real user SIDs - if ($sid -match '_Classes$') { continue } - foreach ($sp in $userHiveSubpaths) { - $candidate = "Registry::HKEY_USERS\$sid\$sp" - if (Test-Path -LiteralPath $candidate) { - $RegistryRoots += $candidate - } - } -} -$RegistryRoots = $RegistryRoots + @( - "HKCU:\SOFTWARE\SURFPAK" -) - -# Config file patterns (always backed up) -$ConfigExtensions = @('*.ini', '*.cfg', '*.xml', '*.json', '*.config', '*.settings', '*.prefs') - -# Data file patterns (part programs, measurements, layouts, design data) -$DataExtensions = @( - '*.smp', '*.prn', '*.dat', '*.csv', '*.txt', - '*.tpl', '*.ppg', '*.ppt', '*.prg', - '*.fta', '*.srf', '*.ctr', '*.ctt', - '*.dxf', '*.igs', '*.iges', - '*.rpt', '*.lay', '*.lyt', - '*.html', '*.mhtml', - '*.cal', '*.stl', '*.ref', - '*.bmp', '*.jpg', '*.png' -) - -$BinaryExtensions = @('*.exe', '*.dll') - -# ---------------------------------------------------------------------- - -$timestamp = Get-Date -Format 'yyyyMMdd_HHmmss' -$backupName = "formtracepak_backup_${env:COMPUTERNAME}_${timestamp}" -$stagingDir = Join-Path $env:TEMP $backupName -$configStage = Join-Path $stagingDir 'config' -$dataStage = Join-Path $stagingDir 'data' -$regStage = Join-Path $stagingDir 'registry' -$binStage = Join-Path $stagingDir 'binaries' - -New-Item -ItemType Directory -Path $configStage -Force | Out-Null -New-Item -ItemType Directory -Path $dataStage -Force | Out-Null -New-Item -ItemType Directory -Path $regStage -Force | Out-Null - -if ($IncludeExecutables) { - New-Item -ItemType Directory -Path $binStage -Force | Out-Null -} - -$counters = @{ Config = 0; Data = 0; Binaries = 0; RegKeys = 0; Errors = 0 } - -Write-Host "`n----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host " FORMTRACEPAK Settings Backup" -ForegroundColor Yellow -Write-Host " Host: $env:COMPUTERNAME" -ForegroundColor Yellow -Write-Host "----------------------------------------------------------------------`n" -ForegroundColor Yellow - -# ---------------------------------------------------------------------- Helper: collect files into staging ---------------------------------------------------------------------- - -function Copy-ToStaging { - param( - [string]$SourceRoot, - [string]$StageRoot, - [string[]]$Patterns, - [string]$CounterKey - ) - - $manifestRows = [System.Collections.Generic.List[PSObject]]::new() - - foreach ($pattern in $Patterns) { - $files = Get-ChildItem -Path $SourceRoot -Filter $pattern -Recurse -File -ErrorAction SilentlyContinue - foreach ($f in $files) { - $relativePath = $f.FullName.Substring($SourceRoot.Length).TrimStart('\', '/') - $safeRelBase = ($SourceRoot -replace '[:\\]', '_').Trim('_') - $destRelPath = Join-Path $safeRelBase $relativePath - $destFull = Join-Path $StageRoot $destRelPath - $destDir = Split-Path $destFull -Parent - - try { - if (-not (Test-Path $destDir)) { - New-Item -ItemType Directory -Path $destDir -Force | Out-Null - } - Copy-Item -Path $f.FullName -Destination $destFull -Force - $counters[$CounterKey]++ - } catch { - Write-Warning " Failed to copy $($f.FullName): $_" - $counters.Errors++ - continue - } - - # Hash computation runs in its own try so a hash failure (e.g. FIPS - # policy banning MD5, missing file, permission) does NOT roll back - # the copy we just succeeded at. SHA256 is the default and is - # FIPS-compliant; older Backup runs may have written MD5 hashes - # into file_manifest.csv but Install never reads those - it computes - # fresh hashes at restore time for the [SKIP] Identical check. - $hash = $null - try { - $hash = (Get-FileHash -LiteralPath $f.FullName -Algorithm SHA256 -ErrorAction Stop).Hash - } catch { - Write-Warning " Hash skipped for $($f.FullName): $_" - } - - $manifestRows.Add([PSCustomObject]@{ - RelativePath = $destRelPath - OriginalPath = $f.FullName - SizeBytes = $f.Length - LastModified = $f.LastWriteTime.ToString('o') - Hash = $hash - }) - } - } - - if ($manifestRows.Count -gt 0) { - $manifestFile = Join-Path $StageRoot 'file_manifest.csv' - if (Test-Path $manifestFile) { - $manifestRows | Export-Csv -Path $manifestFile -NoTypeInformation -Encoding UTF8 -Append - } else { - $manifestRows | Export-Csv -Path $manifestFile -NoTypeInformation -Encoding UTF8 - } - } -} - -# ---------------------------------------------------------------------- 1. Backup Config Files ---------------------------------------------------------------------- -Write-Host "[1/4] Backing up configuration files..." -ForegroundColor Cyan - -foreach ($path in ($ApplicationPaths + $UserDataPaths)) { - if (-not (Test-Path $path)) { continue } - Write-Host " Scanning: $path" -ForegroundColor Green - Copy-ToStaging -SourceRoot $path -StageRoot $configStage ` - -Patterns $ConfigExtensions -CounterKey 'Config' -} - -# ---------------------------------------------------------------------- 2. Backup Data Files ---------------------------------------------------------------------- -Write-Host "[2/4] Backing up data files (part programs, layouts, measurements)..." -ForegroundColor Cyan - -foreach ($path in ($ApplicationPaths + $UserDataPaths)) { - if (-not (Test-Path $path)) { continue } - Write-Host " Scanning: $path" -ForegroundColor Green - Copy-ToStaging -SourceRoot $path -StageRoot $dataStage ` - -Patterns $DataExtensions -CounterKey 'Data' -} - -# ---------------------------------------------------------------------- 3. Backup Executables (optional) ---------------------------------------------------------------------- -if ($IncludeExecutables) { - Write-Host "[2b/4] Backing up binaries (EXE/DLL)..." -ForegroundColor Cyan - foreach ($path in $ApplicationPaths) { - if (-not (Test-Path $path)) { continue } - Write-Host " Scanning: $path" -ForegroundColor Green - Copy-ToStaging -SourceRoot $path -StageRoot $binStage ` - -Patterns $BinaryExtensions -CounterKey 'Binaries' - } -} - -# ---------------------------------------------------------------------- 4. Backup Registry ---------------------------------------------------------------------- -Write-Host "[3/4] Backing up registry keys..." -ForegroundColor Cyan - -$regCsvRows = [System.Collections.Generic.List[PSObject]]::new() - -foreach ($root in $RegistryRoots) { - if (-not (Test-Path $root)) { continue } - Write-Host " Found: $root" -ForegroundColor Green - - # Export as .reg file for easy manual import - $safeName = ($root -replace '[:\\]', '_').Trim('_') - $regFilePath = Join-Path $regStage "${safeName}.reg" - - # Normalize the PSPath-style root into a form reg.exe accepts. - # HKLM:\... -> HKEY_LOCAL_MACHINE\... - # HKCU:\... -> HKEY_CURRENT_USER\... - # Registry::HKEY_USERS\\... -> HKEY_USERS\\... - $nativeRoot = $root -replace '^HKLM:\\', 'HKEY_LOCAL_MACHINE\' ` - -replace '^HKCU:\\', 'HKEY_CURRENT_USER\' ` - -replace '^Registry::', '' - # reg.exe export wrapped in a 5-minute kill fence. On shopfloor PCs with - # a degraded SCM / antivirus interception / WMI repository corruption, - # reg.exe has been observed to wedge indefinitely; without this fence the - # whole Backup script hangs and the operator kills the .bat, leaving a - # 0-byte ZIP (root cause of the WJF00052 / 00083 / 00084 / 00159 backup - # failures on 2026-05-24). - try { - # System.Diagnostics.Process gives reliable ExitCode access; Start-Process - # -PassThru + WaitForExit(int) sometimes returns a stub object whose - # ExitCode is unset, causing a false "reg.exe exit for ..." warning. - $psi = New-Object System.Diagnostics.ProcessStartInfo - $psi.FileName = 'reg.exe' - $psi.Arguments = "export `"$nativeRoot`" `"$regFilePath`" /y" - $psi.UseShellExecute = $false - $psi.CreateNoWindow = $true - $psi.RedirectStandardOutput = $true - $psi.RedirectStandardError = $true - $proc = [System.Diagnostics.Process]::Start($psi) - if (-not $proc.WaitForExit(300000)) { - try { $proc.Kill() } catch { } - Write-Warning " reg.exe export wedged >5min for ${root} - killed, skipping" - $counters.Errors++ - } elseif ($proc.ExitCode -eq 0) { - Write-Host " Exported: $regFilePath" -ForegroundColor Green - } else { - $stderr = $proc.StandardError.ReadToEnd() - Write-Warning " reg.exe exit=$($proc.ExitCode) for ${root}: $stderr" - } - } catch { - Write-Warning " reg.exe export failed for ${root}: $_" - } - - # Also capture as CSV for granular restore. - # - # CSV path only round-trips cleanly for String / ExpandString / DWord / - # QWord. Binary and MultiString lossily coerce through [string] (Binary - # becomes "System.Byte[]" literal; MultiString becomes space-joined), - # which then corrupts the registry if the CSV restore overwrites the - # .reg-import result. Skip those types in the CSV (the .reg file is - # authoritative for them). - # - # Recursive Get-ChildItem on a 95k-value HKLM tree takes ~25s on healthy - # bays but has been seen to wedge on degraded ones. Run it in a job with - # a 10-minute timeout so a single bad root cannot kill the whole backup. - $csvSafeTypes = @('String', 'ExpandString', 'DWord', 'QWord') - $walkJob = Start-Job -ArgumentList $root -ScriptBlock { - param($rootArg) - $safeTypes = @('String', 'ExpandString', 'DWord', 'QWord') - try { - $allKeys = @(Get-Item -Path $rootArg -ErrorAction SilentlyContinue) - $allKeys += Get-ChildItem -Path $rootArg -Recurse -ErrorAction SilentlyContinue - foreach ($key in $allKeys) { - foreach ($valName in $key.GetValueNames()) { - $kind = $key.GetValueKind($valName) - if ($safeTypes -notcontains [string]$kind) { continue } - $val = $key.GetValue($valName) - # Emit each row to the pipeline so Receive-Job returns - # a flat array of PSObjects (not a List inside an array). - [PSCustomObject]@{ - Path = $key.PSPath - Name = $valName - Value = [string]$val - Type = [string]$kind - } - } - } - } catch { } - } - $walked = @() - if (Wait-Job -Job $walkJob -Timeout 600) { - $walked = @(Receive-Job -Job $walkJob -ErrorAction SilentlyContinue) - } else { - Write-Warning " Registry walk wedged >10min for ${root} - aborting (.reg file is still authoritative)" - Stop-Job -Job $walkJob -ErrorAction SilentlyContinue - $counters.Errors++ - } - Remove-Job -Job $walkJob -Force -ErrorAction SilentlyContinue - - foreach ($row in $walked) { - $regCsvRows.Add($row) - $counters.RegKeys++ - } -} - -if ($regCsvRows.Count -gt 0) { - $regCsvRows | Export-Csv -Path (Join-Path $regStage 'registry_values.csv') ` - -NoTypeInformation -Encoding UTF8 -} - -# ---------------------------------------------------------------------- 5. Detect installed version + model ---------------------------------------------------------------------- -# -# Evidence sources, established empirically by installing FormTracePak v6.213 -# on the win11 VM and probing the resulting registry / disk layout -# (2026-05-24): -# -# - bay-config.csv: authoritative for the per-asset marketing version -# ("6.213", "6.103", ...) AND model ("AVANT", "CV-4500", "CV-3200"). -# This is the source of truth for the 15 known wax/trace bays. -# -# - Formtracepak.exe VersionInfo (FileVersion / ProductVersion): the -# binary version on disk (e.g. 6.2.0.51). Does NOT match the -# bay-config marketing format directly (Mitutoyo numbers their -# binary releases differently from their MSI release labels), but is -# concrete on-disk evidence the install is real. -# -# - HKLM:\SOFTWARE\WOW6432Node\Mitutoyo\FORMPAK\Config\device map\DeviceName: -# the active controller / model picked at install time. Real values -# include "FORMTRACER Avant", "CV-4500", "CV-3200", "Contracer CV-3200". -# The Mitutoyo "Surfpak\FormMes\MachineInfo\Machine\Machine*" rows are -# installer templates listing every supported machine; ignore them. -# -# - Mitutoyo uninstall registry entries: useless for version. The -# "Formtracepak" uninstall entry has DisplayVersion = '' (empty), -# and the WinUSB driver-package entries falsely match a broad -# "Mitutoyo" regex with bogus dates like "01/26/2014 1.0.0.0". -# Not consulted. -# -# manifest.json now records both the bay-config-predicted values and the -# on-disk evidence, plus a Match flag so any drift between what's -# supposed to be installed and what actually is gets surfaced at restore -# time without needing a separate audit. - -# --- bay-config.csv predicted values --- -$bayConfigVersion = $null -$bayConfigModel = $null -$bayConfigSource = $null -if ($AssetNumber) { - $bayCfg = @( - (Join-Path $scriptDir 'bay-config.csv'), - 'C:\WaxTrace-Install\bay-config.csv', - 'Y:\installers-post\waxtrace\bay-config.csv' - ) | Where-Object { $_ -and (Test-Path -LiteralPath $_) } | Select-Object -First 1 - if ($bayCfg) { - try { - $row = Import-Csv -LiteralPath $bayCfg | - Where-Object { $_.asset_tag -ieq $AssetNumber } | Select-Object -First 1 - if ($row) { - $bayConfigVersion = $row.ftpak_version - $bayConfigModel = $row.model - $bayConfigSource = $bayCfg - } - } catch { } - } -} - -# --- Formtracepak.exe FileVersion --- -$installedExeVersion = $null -$installedExePath = $null -$exeCandidates = @( - "${env:ProgramFiles(x86)}\MitutoyoApp\Formtracepak\Formtracepak.exe" - "${env:ProgramFiles}\MitutoyoApp\Formtracepak\Formtracepak.exe" - "${env:ProgramFiles(x86)}\Mitutoyo\Formtracepak\Formtracepak.exe" - "${env:ProgramFiles}\Mitutoyo\Formtracepak\Formtracepak.exe" - 'C:\Mitutoyo\Formtracepak\Formtracepak.exe' - 'D:\Mitutoyo\Formtracepak\Formtracepak.exe' -) -foreach ($exe in $exeCandidates) { - if (Test-Path -LiteralPath $exe) { - try { - $vi = (Get-Item -LiteralPath $exe).VersionInfo - $installedExeVersion = if ($vi.FileVersion) { $vi.FileVersion.Trim() } elseif ($vi.ProductVersion) { $vi.ProductVersion.Trim() } else { $null } - $installedExePath = $exe - break - } catch { } - } -} - -# --- Active device-map DeviceName + normalized model --- -$installedDeviceName = $null -$installedModelNormalized = $null -$deviceMapKey = 'HKLM:\SOFTWARE\WOW6432Node\Mitutoyo\FORMPAK\Config\device map' -if (Test-Path -LiteralPath $deviceMapKey) { - try { - $dm = Get-ItemProperty -LiteralPath $deviceMapKey -ErrorAction Stop - if ($dm.PSObject.Properties['DeviceName']) { - $installedDeviceName = [string]$dm.DeviceName - } - } catch { } -} -# Normalize DeviceName to bay-config.csv notation (AVANT / CV-4500 / CV-3200 / ...). -if ($installedDeviceName) { - switch -Regex ($installedDeviceName) { - '(?i)FORMTRACER\s*Avant|^AVANT$' { $installedModelNormalized = 'AVANT'; break } - '(?i)CV-?4500' { $installedModelNormalized = 'CV-4500'; break } - '(?i)CV-?3200' { $installedModelNormalized = 'CV-3200'; break } - '(?i)CV-?3100' { $installedModelNormalized = 'CV-3100'; break } - '(?i)CV-?4100' { $installedModelNormalized = 'CV-4100'; break } - '(?i)CV-?4200' { $installedModelNormalized = 'CV-4200'; break } - '(?i)Contracer|^CS-' { $installedModelNormalized = 'Contracer'; break } - '(?i)Surftest|^SV-' { $installedModelNormalized = 'Surftest'; break } - default { $installedModelNormalized = $installedDeviceName } - } -} - -# --- Reconcile + log --- -$bayConfigMatch = $true -if ($bayConfigModel -and $installedModelNormalized -and ($bayConfigModel -ine $installedModelNormalized)) { - $bayConfigMatch = $false -} -$detectedVersion = if ($bayConfigVersion) { $bayConfigVersion } elseif ($installedExeVersion) { $installedExeVersion } else { 'Unknown' } -$detectedModel = if ($bayConfigModel) { $bayConfigModel } elseif ($installedModelNormalized) { $installedModelNormalized } else { 'Unknown' } - -Write-Host "Bay config lookup : $(if ($bayConfigSource) { "$bayConfigSource (asset='$AssetNumber' -> ver='$bayConfigVersion' model='$bayConfigModel')" } else { 'asset not in any bay-config.csv' })" -Write-Host "Installed exe : $(if ($installedExePath) { "$installedExePath FileVersion=$installedExeVersion" } else { 'no Formtracepak.exe found on disk' })" -Write-Host "Installed device-map : $(if ($installedDeviceName) { "DeviceName='$installedDeviceName' -> normalized '$installedModelNormalized'" } else { "$deviceMapKey not present" })" -if (-not $bayConfigMatch) { - Write-Warning "Bay-config says model='$bayConfigModel' but device-map says '$installedModelNormalized' - DRIFT (recapture the bay-config.csv or the live install before restoring to a new bay)" -} - -# ---------------------------------------------------------------------- Write manifest ---------------------------------------------------------------------- -Write-Host "[4/4] Writing manifest..." -ForegroundColor Cyan - -$manifest = [PSCustomObject]@{ - SourceComputer = $env:COMPUTERNAME - AssetNumber = $AssetNumber - BackupTimestamp = (Get-Date -Format 'o') - FormtracepakVersion = $detectedVersion - Model = $detectedModel - BayConfigVersion = $bayConfigVersion - BayConfigModel = $bayConfigModel - BayConfigSource = $bayConfigSource - InstalledExeVersion = $installedExeVersion - InstalledExePath = $installedExePath - InstalledDeviceName = $installedDeviceName - InstalledModelNormalized= $installedModelNormalized - BayConfigMatch = $bayConfigMatch - OSVersion = [System.Environment]::OSVersion.VersionString - PowerShellVersion = $PSVersionTable.PSVersion.ToString() - IncludesConfig = ($counters.Config -gt 0) - IncludesData = ($counters.Data -gt 0) - IncludesBinaries = ($counters.Binaries -gt 0) - IncludesRegistry = ($counters.RegKeys -gt 0) - ConfigFileCount = $counters.Config - DataFileCount = $counters.Data - BinaryFileCount = $counters.Binaries - RegistryValueCount = $counters.RegKeys - ErrorCount = $counters.Errors -} - -$manifest | ConvertTo-Json -Depth 3 | - Set-Content -Path (Join-Path $stagingDir 'manifest.json') -Encoding UTF8 - -# ---------------------------------------------------------------------- Create ZIP or copy folder ---------------------------------------------------------------------- - -if (-not (Test-Path $Destination)) { - New-Item -ItemType Directory -Path $Destination -Force | Out-Null -} - -if ($NoZip) { - $finalPath = Join-Path $Destination $backupName - Copy-Item -Path $stagingDir -Destination $finalPath -Recurse -Force - Write-Host "`n Backup folder: $finalPath" -ForegroundColor Green -} else { - $zipPath = Join-Path $Destination "${backupName}.zip" - Compress-Archive -Path "$stagingDir\*" -DestinationPath $zipPath -Force - Write-Host "`n Backup archive: $zipPath" -ForegroundColor Green -} - -# Cleanup staging -Remove-Item -Path $stagingDir -Recurse -Force -ErrorAction SilentlyContinue - -# ---------------------------------------------------------------------- Summary ---------------------------------------------------------------------- -Write-Host "`n----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host " Backup Summary" -ForegroundColor Yellow -Write-Host "----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host (" Config Files : {0}" -f $counters.Config) -ForegroundColor White -Write-Host (" Data Files : {0}" -f $counters.Data) -ForegroundColor White -Write-Host (" Binaries : {0}" -f $counters.Binaries) -ForegroundColor White -Write-Host (" Registry Values : {0}" -f $counters.RegKeys) -ForegroundColor White -Write-Host (" Errors : {0}" -f $counters.Errors) -ForegroundColor $(if ($counters.Errors -gt 0) { 'Red' } else { 'White' }) -Write-Host (" Detected Version : {0}" -f $detectedVersion) -ForegroundColor White -Write-Host "----------------------------------------------------------------------" -ForegroundColor Yellow - -if ($counters.Config -eq 0 -and $counters.Data -eq 0 -and $counters.RegKeys -eq 0) { - Write-Warning "`n No Formtracepak artifacts found. Verify the search paths in the script" - Write-Warning " match your installation, or add custom paths to the configuration section." -} - -Write-Host "`n REMINDER: Stylus calibration data lives on the probe hardware." -ForegroundColor Magenta -Write-Host " Re-calibrate after restoring to a new host.`n" -ForegroundColor Magenta diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Export-FormtracepakInventory.bat b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Export-FormtracepakInventory.bat deleted file mode 100644 index fe0e8bd..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Export-FormtracepakInventory.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -REM Bypass launcher for Export-FormtracepakInventory.ps1. -REM Forwards any args to the PS1 (e.g. -OutputPath E:\inventories). -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0Export-FormtracepakInventory.ps1" %* -exit /b %ERRORLEVEL% diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Export-FormtracepakInventory.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Export-FormtracepakInventory.ps1 deleted file mode 100755 index a50bfb7..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Export-FormtracepakInventory.ps1 +++ /dev/null @@ -1,342 +0,0 @@ -<# -.SYNOPSIS - Inventories Mitutoyo Formtracepak installation artifacts on a Windows host. - -.DESCRIPTION - Scans known and configurable paths for Formtracepak v6.1+ application files, - registry keys, part programs, calibration data, layout templates, design values, - and measurement data. Produces a CSV inventory and console summary. - - Supports FORMTRACEPAK, FORMPAK-1000, SURFPAK-SV, and DUAL TRACEPAK components. - -.PARAMETER OutputPath - Directory where the inventory CSV will be written. Defaults to script directory. - -.PARAMETER ComputerName - Hostname to stamp on the inventory rows. Defaults to $env:COMPUTERNAME. - -.PARAMETER AssetNumber - Asset number (e.g. WJRP1234) used in the output CSV filename so multiple - inventories from the same host stay distinguishable. If omitted, the script - prompts interactively (with arrow-key picker if bay-config.csv is alongside) - and defaults to $ComputerName non-interactively. - -.EXAMPLE - .\Export-FormtracepakInventory.ps1 - .\Export-FormtracepakInventory.ps1 -OutputPath "E:\inventories" -AssetNumber WJRP2335 -#> -[CmdletBinding()] -param( - [string]$OutputPath, - [string]$ComputerName = $env:COMPUTERNAME, - [string]$AssetNumber -) - -# $PSScriptRoot can come through empty in some PowerShell hosts (e.g. when -# the script is invoked via IEX, dot-sourced, or run through certain remote -# wrappers). The param default = $PSScriptRoot then coerces to '' on a [string] -# parameter and Join-Path later fails with "Cannot bind argument to parameter -# 'Path' because it is an empty string". Resolve $OutputPath lazily with a -# fallback chain so the script always lands on a writable directory. -if (-not $OutputPath) { - if ($PSScriptRoot) { - $OutputPath = $PSScriptRoot - } elseif ($PSCommandPath) { - $OutputPath = Split-Path -Parent $PSCommandPath - } else { - $OutputPath = (Get-Location).Path - } -} - -$scriptDir = if ($PSScriptRoot) { $PSScriptRoot } ` - elseif ($PSCommandPath) { Split-Path -Parent $PSCommandPath } ` - else { (Get-Location).Path } - -if (-not $AssetNumber) { - if ([Environment]::UserInteractive -and -not [Console]::IsInputRedirected) { - $picker = Join-Path $scriptDir 'Select-WaxtraceAsset.ps1' - $cfg = Join-Path $scriptDir 'bay-config.csv' - if ((Test-Path -LiteralPath $picker) -and (Test-Path -LiteralPath $cfg)) { - $picked = & $picker -ConfigCsv $cfg -Title 'Inventory FormTracePak - pick the bay being audited' - if ($picked) { - $AssetNumber = $picked - } - } - if (-not $AssetNumber) { - $assetInput = Read-Host "Asset number to stamp on inventory (e.g. WJRP1234) [$ComputerName]" - if ([string]::IsNullOrWhiteSpace($assetInput)) { - $AssetNumber = $ComputerName - } else { - $AssetNumber = $assetInput.Trim() - } - } - } else { - $AssetNumber = $ComputerName - } -} - -Set-StrictMode -Version Latest -$ErrorActionPreference = 'Continue' - -# ---------------------------------------------------------------------- -# CONFIGURABLE: Add or remove paths to match your environment. -# The script scans every path that exists on the target machine. -# ---------------------------------------------------------------------- - -$ApplicationSearchPaths = @( - # v6.213 vendor MSI layout (the path the per-bay install lands on today). - "${env:ProgramFiles(x86)}\MitutoyoApp" - "${env:ProgramFiles}\MitutoyoApp" - "${env:ProgramFiles}\Mitutoyo" - "${env:ProgramFiles(x86)}\Mitutoyo" - "${env:ProgramFiles}\FORMTRACEPAK" - "${env:ProgramFiles(x86)}\FORMTRACEPAK" - "${env:ProgramFiles}\Formtracepak" - "${env:ProgramFiles(x86)}\Formtracepak" - "C:\Mitutoyo" - "D:\Mitutoyo" - "C:\FORMTRACEPAK" - "D:\FORMTRACEPAK" - "C:\FORMPAK" - "C:\SURFPAK" - "C:\MtFormTracer" - "C:\MtSurfMeas" -) - -$UserDataSearchPaths = @( - "${env:APPDATA}\Mitutoyo" - "${env:LOCALAPPDATA}\Mitutoyo" - "${env:ProgramData}\Mitutoyo" - "${env:APPDATA}\FORMTRACEPAK" - "${env:LOCALAPPDATA}\FORMTRACEPAK" - "${env:ProgramData}\FORMTRACEPAK" - "${env:USERPROFILE}\Documents\Mitutoyo" - "${env:USERPROFILE}\Documents\FORMTRACEPAK" - "${env:USERPROFILE}\Documents\FORMPAK" - "${env:USERPROFILE}\Documents\SURFPAK" - "${env:PUBLIC}\Documents\Mitutoyo" - "${env:PUBLIC}\Documents\FORMTRACEPAK" -) - -$RegistrySearchRoots = @( - "HKLM:\SOFTWARE\Mitutoyo" - "HKLM:\SOFTWARE\WOW6432Node\Mitutoyo" - "HKCU:\SOFTWARE\Mitutoyo" - "HKLM:\SOFTWARE\FORMTRACEPAK" - "HKLM:\SOFTWARE\WOW6432Node\FORMTRACEPAK" - "HKCU:\SOFTWARE\FORMTRACEPAK" - "HKLM:\SOFTWARE\FORMPAK" - "HKLM:\SOFTWARE\WOW6432Node\FORMPAK" - "HKCU:\SOFTWARE\FORMPAK" - "HKLM:\SOFTWARE\SURFPAK" - "HKCU:\SOFTWARE\SURFPAK" -) - -# File extensions associated with Formtracepak / Mitutoyo form-measurement software -$MitutoyoFileExtensions = @( - '*.smp', '*.prn', '*.dat', '*.csv', '*.txt', - '*.tpl', '*.ppg', '*.ppt', '*.prg', - '*.fta', '*.srf', '*.ctr', '*.ctt', - '*.dxf', '*.igs', '*.iges', - '*.rpt', '*.lay', '*.lyt', '*.html', '*.mhtml', - '*.ini', '*.cfg', '*.xml', '*.json', '*.config', - '*.cal', '*.stl', '*.ref', - '*.bmp', '*.jpg', '*.png', - '*.exe', '*.dll' -) - -# ---------------------------------------------------------------------- - -$timestamp = Get-Date -Format 'yyyyMMdd_HHmmss' - -# Ensure $OutputPath exists / is creatable BEFORE doing the slow scan, so -# the operator does not sit through a 90k-item registry walk only to have -# the final Export-Csv fail. -if (-not (Test-Path -LiteralPath $OutputPath)) { - try { - New-Item -ItemType Directory -Path $OutputPath -Force -ErrorAction Stop | Out-Null - } catch { - Write-Error "OutputPath '$OutputPath' does not exist and cannot be created: $_" - exit 1 - } -} -$csvFile = Join-Path $OutputPath "formtracepak_inventory_${AssetNumber}_${ComputerName}_${timestamp}.csv" -$inventory = [System.Collections.Generic.List[PSObject]]::new() - -function Add-Item { - param( - [string]$Category, - [string]$ItemType, - [string]$Path, - [string]$Name, - [string]$Value, - [long]$SizeBytes = 0 - ) - $inventory.Add([PSCustomObject]@{ - ComputerName = $ComputerName - Category = $Category - ItemType = $ItemType - Path = $Path - Name = $Name - Value = $Value - SizeBytes = $SizeBytes - ScanTime = (Get-Date -Format 'o') - }) -} - -# ---------------------------------------------------------------------- 1. Scan Application Directories ---------------------------------------------------------------------- -Write-Host "`n[1/5] Scanning application directories..." -ForegroundColor Cyan - -foreach ($searchPath in $ApplicationSearchPaths) { - if (-not (Test-Path $searchPath)) { continue } - Write-Host " Found: $searchPath" -ForegroundColor Green - - Add-Item -Category 'AppDirectory' -ItemType 'Directory' ` - -Path $searchPath -Name (Split-Path $searchPath -Leaf) -Value 'EXISTS' - - foreach ($pattern in $MitutoyoFileExtensions) { - try { - $files = Get-ChildItem -Path $searchPath -Filter $pattern -Recurse -File -ErrorAction SilentlyContinue - foreach ($f in $files) { - Add-Item -Category 'AppFile' -ItemType $f.Extension ` - -Path $f.FullName -Name $f.Name ` - -Value $f.LastWriteTime.ToString('o') ` - -SizeBytes $f.Length - } - } catch { } - } -} - -# ---------------------------------------------------------------------- 2. Scan User / Shared Data Directories ---------------------------------------------------------------------- -Write-Host "[2/5] Scanning user and shared data directories..." -ForegroundColor Cyan - -foreach ($searchPath in $UserDataSearchPaths) { - if (-not (Test-Path $searchPath)) { continue } - Write-Host " Found: $searchPath" -ForegroundColor Green - - Add-Item -Category 'DataDirectory' -ItemType 'Directory' ` - -Path $searchPath -Name (Split-Path $searchPath -Leaf) -Value 'EXISTS' - - foreach ($pattern in $MitutoyoFileExtensions) { - try { - $files = Get-ChildItem -Path $searchPath -Filter $pattern -Recurse -File -ErrorAction SilentlyContinue - foreach ($f in $files) { - Add-Item -Category 'DataFile' -ItemType $f.Extension ` - -Path $f.FullName -Name $f.Name ` - -Value $f.LastWriteTime.ToString('o') ` - -SizeBytes $f.Length - } - } catch { } - } -} - -# ---------------------------------------------------------------------- 3. Scan Registry ---------------------------------------------------------------------- -Write-Host "[3/5] Scanning registry..." -ForegroundColor Cyan - -function Export-RegistryTree { - param([string]$RegPath) - if (-not (Test-Path $RegPath)) { return } - Write-Host " Found: $RegPath" -ForegroundColor Green - - try { - $key = Get-Item -Path $RegPath -ErrorAction SilentlyContinue - if ($key) { - foreach ($valName in $key.GetValueNames()) { - $val = $key.GetValue($valName) - Add-Item -Category 'Registry' -ItemType 'Value' ` - -Path $RegPath -Name $valName ` - -Value ([string]$val) - } - } - $subkeys = Get-ChildItem -Path $RegPath -Recurse -ErrorAction SilentlyContinue - foreach ($sk in $subkeys) { - foreach ($valName in $sk.GetValueNames()) { - $val = $sk.GetValue($valName) - Add-Item -Category 'Registry' -ItemType 'Value' ` - -Path $sk.PSPath -Name $valName ` - -Value ([string]$val) - } - } - } catch { - Write-Warning " Registry error at ${RegPath}: $_" - } -} - -foreach ($root in $RegistrySearchRoots) { - Export-RegistryTree -RegPath $root -} - -# ---------------------------------------------------------------------- 4. Locate Executables via Uninstall Keys ---------------------------------------------------------------------- -Write-Host "[4/5] Checking installed programs (Uninstall registry)..." -ForegroundColor Cyan - -$uninstallPaths = @( - 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', - 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall', - 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall' -) - -foreach ($uPath in $uninstallPaths) { - if (-not (Test-Path $uPath)) { continue } - $entries = Get-ChildItem -Path $uPath -ErrorAction SilentlyContinue - foreach ($entry in $entries) { - try { - $displayName = (Get-ItemProperty -Path $entry.PSPath -ErrorAction SilentlyContinue).DisplayName - if ($displayName -and ($displayName -match 'Mitutoyo|FORMTRACEPAK|FORMPAK|SURFPAK|FormTrace|SurfPak|DUAL\s*TRACEPAK')) { - $props = Get-ItemProperty -Path $entry.PSPath - Add-Item -Category 'InstalledProgram' -ItemType 'Uninstall' ` - -Path $entry.PSPath -Name $displayName ` - -Value ($props.InstallLocation, $props.DisplayVersion, $props.Publisher -join ' | ') - } - } catch { } - } -} - -# ---------------------------------------------------------------------- 5. Locate Running Processes ---------------------------------------------------------------------- -# -# Service enumeration was removed 2026-05-24. Get-Service was hanging -# indefinitely on West Jefferson wax/trace bays (WJF00052, WJF00083, -# WJF00084, WJF00159 were left with empty inventory CSVs because the -# operator killed the .bat after the apparent hang). The earlier -# Start-Job + Wait-Job -Timeout 30 fence was insufficient: Stop-Job on -# a Get-Service that's blocked on the Service Control Manager can itself -# block in the SCM call, so the main script never unblocked after the -# timeout fired. Service state is audit-nice-to-have, not load-bearing -# for identifying the install (version + model + DeviceName come from -# elsewhere), so the cleanest fix is to drop it entirely. Get-Process is -# fast and stays. -Write-Host "[5/5] Checking running processes..." -ForegroundColor Cyan - -$processPatterns = @('Formpak', 'Formtracepak', 'SurfPak', 'MtSurf', 'MtForm', 'Mitutoyo') -foreach ($pp in $processPatterns) { - $procs = Get-Process -Name "*${pp}*" -ErrorAction SilentlyContinue - foreach ($p in $procs) { - Add-Item -Category 'RunningProcess' -ItemType 'Process' ` - -Path $p.Path -Name $p.ProcessName ` - -Value "PID=$($p.Id)" - } -} - -# ---------------------------------------------------------------------- Output ---------------------------------------------------------------------- - -if (-not (Test-Path $OutputPath)) { - New-Item -ItemType Directory -Path $OutputPath -Force | Out-Null -} - -$inventory | Export-Csv -Path $csvFile -NoTypeInformation -Encoding UTF8 - -# Summary -$summary = $inventory | Group-Object Category | Select-Object Name, Count -Write-Host "`n----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host " FORMTRACEPAK Inventory Summary" -ForegroundColor Yellow -Write-Host " Host: $ComputerName" -ForegroundColor Yellow -Write-Host "----------------------------------------------------------------------" -ForegroundColor Yellow -foreach ($g in $summary) { - Write-Host (" {0,-22} {1,6} items" -f $g.Name, $g.Count) -ForegroundColor White -} -$totalSize = 0 -$measure = $inventory | Measure-Object SizeBytes -Sum -ErrorAction SilentlyContinue -if ($measure -and $null -ne $measure.Sum) { $totalSize = $measure.Sum } -Write-Host (" {0,-22} {1,6:N2} MB" -f 'Total File Size', ($totalSize / 1MB)) -ForegroundColor White -Write-Host "----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host " Inventory saved to: $csvFile" -ForegroundColor Green -Write-Host "" diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Install-FormtracepakSettings.bat b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Install-FormtracepakSettings.bat deleted file mode 100644 index 216971e..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Install-FormtracepakSettings.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -REM Bypass launcher for Install-FormtracepakSettings.ps1. -REM Forwards any args to the PS1 (e.g. -BackupPath E:\... -RestoreAll -DryRun). -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0Install-FormtracepakSettings.ps1" %* -exit /b %ERRORLEVEL% diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Install-FormtracepakSettings.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Install-FormtracepakSettings.ps1 deleted file mode 100755 index c3513e0..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Install-FormtracepakSettings.ps1 +++ /dev/null @@ -1,655 +0,0 @@ -<# -.SYNOPSIS - Deploys backed-up Mitutoyo Formtracepak settings from USB/removable media to a new host. - -.DESCRIPTION - Reads a backup package created by Backup-FormtracepakSettings.ps1 and restores - application files, user data, registry keys, and configuration to the target host. - Supports Formtracepak v6.1 through current versions, plus FORMPAK-1000, SURFPAK-SV, - and DUAL TRACEPAK components. - - Designed to run directly from USB media. Does NOT install the Formtracepak application - itself - the application must already be installed on the target host. - -.PARAMETER AssetNumber - Asset number (e.g. WJRP1234) used to locate a per-asset backup on the - shopfloor share. If neither -BackupPath nor -AssetNumber is supplied, the - script prompts interactively and defaults to the current $env:COMPUTERNAME. - Ignored if -BackupPath is supplied. - -.PARAMETER BackupPath - Path to the backup ZIP, directory containing a backup ZIP, or already-extracted - backup folder created by Backup-FormtracepakSettings.ps1. If omitted, defaults - to the per-asset path on the mapped S: drive: - S:\DT\Shopfloor\backup\waxandtrace\ - If the path is a directory, the newest formtracepak_backup_*.zip inside it is used. - -.PARAMETER RestoreRegistry - If specified, restores registry keys from the backup. Requires elevation. - -.PARAMETER RestoreData - If specified, restores user data files (part programs, layouts, measurements, etc.). - -.PARAMETER RestoreConfig - If specified, restores application configuration files (INI, XML, CFG, etc.). - -.PARAMETER RestoreAll - Shortcut to restore everything: registry, data, and config. - -.PARAMETER DryRun - Simulates the restore without writing any files or registry keys. - -.PARAMETER Force - Overwrites existing files without prompting. - -.EXAMPLE - .\Install-FormtracepakSettings.ps1 -RestoreAll - .\Install-FormtracepakSettings.ps1 -AssetNumber WJRP2335 -RestoreAll - .\Install-FormtracepakSettings.ps1 -BackupPath "E:\mitutoyo\backup" -RestoreData -RestoreConfig - .\Install-FormtracepakSettings.ps1 -RestoreAll -DryRun -#> -[CmdletBinding(SupportsShouldProcess)] -param( - [string]$AssetNumber, - [string]$BackupPath, - [switch]$RestoreRegistry, - [switch]$RestoreData, - [switch]$RestoreConfig, - [switch]$RestoreAll, - [switch]$DryRun, - [switch]$Force, - # Target user to remap captured HKEY_USERS\ per-user prefs onto. - # Captured backup carries the source bay's interactive user SID (e.g. - # lg782713sd at WJ); on the imaged bay that SID doesn't exist as a - # loaded hive. We look up $TargetUser's SID and rewrite the SID in - # both .reg files and the CSV restore path before importing, so prefs - # land under the new bay's user instead of an orphan SID. - [string]$TargetUser = 'ShopFloor', - # When true, skip HKLM .reg files + HKLM CSV rows. Used by the - # deferred scheduled task that runs on first ShopFloor login - HKLM - # was already restored during imaging, only HKEY_USERS prefs need - # to land in the now-loaded ShopFloor hive. - [switch]$HKEYUsersOnly -) - -$SharedRoot = 'S:\DT\Shopfloor\backup\waxandtrace' - -# Resolve the script's own directory robustly. $PSScriptRoot can come through -# empty in some hosts (IEX / dot-source / certain remote wrappers), which -# would silently skip the picker invocation below. -$scriptDir = if ($PSScriptRoot) { $PSScriptRoot } ` - elseif ($PSCommandPath) { Split-Path -Parent $PSCommandPath } ` - else { (Get-Location).Path } - -if (-not $BackupPath) { - if (-not $AssetNumber) { - $defaultAsset = $env:COMPUTERNAME - if ([Environment]::UserInteractive -and -not [Console]::IsInputRedirected) { - # Prefer arrow-key picker against bay-config.csv if available. - $picker = Join-Path $scriptDir 'Select-WaxtraceAsset.ps1' - $cfg = Join-Path $scriptDir 'bay-config.csv' - if ((Test-Path -LiteralPath $picker) -and (Test-Path -LiteralPath $cfg)) { - $picked = & $picker -ConfigCsv $cfg -Title 'Restore FormTracePak - pick the bay being restored' - if ($picked) { - $AssetNumber = $picked - } - } - if (-not $AssetNumber) { - $assetInput = Read-Host "Asset number to restore (e.g. WJRP1234) [$defaultAsset]" - if ([string]::IsNullOrWhiteSpace($assetInput)) { - $AssetNumber = $defaultAsset - } else { - $AssetNumber = $assetInput.Trim() - } - } - } else { - $AssetNumber = $defaultAsset - Write-Host "Non-interactive session - defaulting AssetNumber to $AssetNumber. Pass -AssetNumber or -BackupPath to override." - } - } - $BackupPath = Join-Path $SharedRoot $AssetNumber -} - -Set-StrictMode -Version Latest -$ErrorActionPreference = 'Continue' - -# ---------------------------------------------------------------------- -# CONFIGURABLE: Default restore targets. Edit these to match your environment. -# The backup manifest records the original paths; these are the fallback -# destinations if the original path does not exist on the new host. -# Ordered so fallback priority is deterministic. -# ---------------------------------------------------------------------- - -$DefaultAppTargets = [ordered]@{ - # v6.213 vendor MSI installs under MitutoyoApp\Formtracepak\. Order this - # first so restored config under e.g. C:\Mitutoyo\Formtracepak\ from an - # older bay lands in the right tree on a freshly imaged v6.213 bay. - 'MitutoyoAppX86' = "${env:ProgramFiles(x86)}\MitutoyoApp" - 'MitutoyoApp' = "${env:ProgramFiles}\MitutoyoApp" - 'ProgramFiles' = "${env:ProgramFiles}\Mitutoyo" - 'ProgramFilesX86' = "${env:ProgramFiles(x86)}\Mitutoyo" - 'CMitutoyo' = 'C:\Mitutoyo' - 'CFORMTRACEPAK' = 'C:\FORMTRACEPAK' -} - -$DefaultDataTargets = [ordered]@{ - 'AppDataRoaming' = "${env:APPDATA}\Mitutoyo" - 'AppDataLocal' = "${env:LOCALAPPDATA}\Mitutoyo" - 'ProgramData' = "${env:ProgramData}\Mitutoyo" - 'UserDocuments' = "${env:USERPROFILE}\Documents\Mitutoyo" - 'PublicDocuments' = "${env:PUBLIC}\Documents\Mitutoyo" -} - -# ---------------------------------------------------------------------- - -if ($RestoreAll) { - $RestoreRegistry = $true - $RestoreData = $true - $RestoreConfig = $true -} - -if (-not $RestoreRegistry -and -not $RestoreData -and -not $RestoreConfig) { - Write-Warning "No restore scope specified. Use -RestoreAll, -RestoreData, -RestoreConfig, and/or -RestoreRegistry." - Write-Host "Run with -RestoreAll to restore everything, or combine flags as needed." - return -} - -# ---------------------------------------------------------------------- Locate and unpack backup ---------------------------------------------------------------------- - -if (-not (Test-Path $BackupPath)) { - Write-Error "Backup path not found: $BackupPath" - return -} - -$workingBackup = $BackupPath -$zipToExtract = $null - -if ($BackupPath -match '\.zip$') { - $zipToExtract = $BackupPath -} elseif ((Get-Item $BackupPath).PSIsContainer) { - # Directory: pick newest formtracepak_backup_*.zip if any. Else assume it - # already contains an extracted backup (manifest.json at root). - $cand = Get-ChildItem -Path $BackupPath -Filter 'formtracepak_backup_*.zip' -File -ErrorAction SilentlyContinue | - Sort-Object LastWriteTime -Descending | Select-Object -First 1 - if ($cand) { - $zipToExtract = $cand.FullName - Write-Host "Using newest backup ZIP in $BackupPath -> $($cand.Name)" -ForegroundColor Cyan - } -} - -if ($zipToExtract) { - $extractDir = Join-Path $env:TEMP "formtracepak_restore_$(Get-Date -Format 'yyyyMMddHHmmss')" - Write-Host "Extracting backup archive to $extractDir ..." -ForegroundColor Cyan - Expand-Archive -Path $zipToExtract -DestinationPath $extractDir -Force - $workingBackup = $extractDir -} - -# ---------------------------------------------------------------------- Load manifest ---------------------------------------------------------------------- - -$manifestFile = Join-Path $workingBackup 'manifest.json' -if (-not (Test-Path $manifestFile)) { - Write-Error "No manifest.json found in backup at $workingBackup. Is this a valid Formtracepak backup?" - return -} - -$manifest = Get-Content $manifestFile -Raw | ConvertFrom-Json -Write-Host "`n----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host " FORMTRACEPAK Settings Restore" -ForegroundColor Yellow -Write-Host "----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host " Source Host : $($manifest.SourceComputer)" -ForegroundColor White -Write-Host " Backup Date : $($manifest.BackupTimestamp)" -ForegroundColor White -Write-Host " Version : $($manifest.FormtracepakVersion)" -ForegroundColor White -Write-Host " Target Host : $env:COMPUTERNAME" -ForegroundColor White -Write-Host " Dry Run : $DryRun" -ForegroundColor $(if ($DryRun) { 'Yellow' } else { 'White' }) -Write-Host "----------------------------------------------------------------------`n" -ForegroundColor Yellow - -$counters = @{ Files = 0; Directories = 0; RegistryKeys = 0; Skipped = 0; Errors = 0 } - -# ---------------------------------------------------------------------- Helper: Copy with logging ---------------------------------------------------------------------- - -function Restore-FileItem { - param( - [string]$SourceFile, - [string]$DestFile - ) - - $destDir = Split-Path $DestFile -Parent - if (-not (Test-Path $destDir)) { - if ($DryRun) { - Write-Host " [DRYRUN] MKDIR $destDir" -ForegroundColor DarkGray - } else { - New-Item -ItemType Directory -Path $destDir -Force | Out-Null - } - $counters.Directories++ - } - - if ((Test-Path $DestFile) -and -not $Force) { - # SHA256 not MD5: MD5 throws under Windows FIPS policy - # ("This implementation is not part of the Windows Platform FIPS - # validated cryptographic algorithms"). SHA256 is FIPS-compliant - # and is Get-FileHash's default. - $srcHash = $null - $destHash = $null - try { - $srcHash = (Get-FileHash -LiteralPath $SourceFile -Algorithm SHA256 -ErrorAction Stop).Hash - $destHash = (Get-FileHash -LiteralPath $DestFile -Algorithm SHA256 -ErrorAction Stop).Hash - } catch { - Write-Warning " Hash compare failed for ${DestFile}: $_ - falling through to overwrite" - } - if ($srcHash -and $destHash -and $srcHash -eq $destHash) { - Write-Host " [SKIP] Identical: $DestFile" -ForegroundColor DarkGray - $counters.Skipped++ - return - } - if (-not $DryRun) { - $stamp = Get-Date -Format 'yyyyMMddHHmmss' - $backupDest = "${DestFile}.pre_restore_bak_${stamp}" - Copy-Item -Path $DestFile -Destination $backupDest -Force - Write-Host " [BAK] Existing file backed up: $backupDest" -ForegroundColor DarkYellow - } - } - - if ($DryRun) { - Write-Host " [DRYRUN] COPY $SourceFile -> $DestFile" -ForegroundColor DarkGray - } else { - try { - Copy-Item -Path $SourceFile -Destination $DestFile -Force - Write-Host " [OK] $DestFile" -ForegroundColor Green - } catch { - Write-Warning " [ERR] Failed to copy to ${DestFile}: $_" - $counters.Errors++ - return - } - } - $counters.Files++ -} - -# ---------------------------------------------------------------------- Restore Config Files ---------------------------------------------------------------------- - -if ($RestoreConfig) { - Write-Host "[CONFIG] Restoring configuration files..." -ForegroundColor Cyan - $configDir = Join-Path $workingBackup 'config' - - if (Test-Path $configDir) { - $configManifest = Join-Path $configDir 'file_manifest.csv' - if (Test-Path $configManifest) { - $entries = Import-Csv $configManifest - foreach ($entry in $entries) { - $srcFile = Join-Path $configDir $entry.RelativePath - if (-not (Test-Path $srcFile)) { - Write-Warning " Source file missing from backup: $($entry.RelativePath)" - $counters.Errors++ - continue - } - - $destFile = $entry.OriginalPath - $destParent = Split-Path $destFile -Parent - if (-not (Test-Path $destParent)) { - foreach ($key in $DefaultAppTargets.Keys) { - $candidate = Join-Path $DefaultAppTargets[$key] $entry.RelativePath - $candidateParent = Split-Path $candidate -Parent - if (Test-Path (Split-Path $candidateParent -Parent)) { - $destFile = $candidate - break - } - } - } - - Restore-FileItem -SourceFile $srcFile -DestFile $destFile - } - } else { - $configFiles = Get-ChildItem -Path $configDir -File -Recurse - foreach ($cf in $configFiles) { - $relPath = $cf.FullName.Substring($configDir.Length + 1) - $destFile = Join-Path $DefaultAppTargets['ProgramFiles'] $relPath - Restore-FileItem -SourceFile $cf.FullName -DestFile $destFile - } - } - } else { - Write-Host " No config directory in backup. Skipping." -ForegroundColor DarkGray - } -} - -# ---------------------------------------------------------------------- Restore Data Files ---------------------------------------------------------------------- - -if ($RestoreData) { - Write-Host "[DATA] Restoring data files (part programs, layouts, measurements, designs)..." -ForegroundColor Cyan - $dataDir = Join-Path $workingBackup 'data' - - if (Test-Path $dataDir) { - $dataManifest = Join-Path $dataDir 'file_manifest.csv' - if (Test-Path $dataManifest) { - $entries = Import-Csv $dataManifest - foreach ($entry in $entries) { - $srcFile = Join-Path $dataDir $entry.RelativePath - if (-not (Test-Path $srcFile)) { - Write-Warning " Source file missing from backup: $($entry.RelativePath)" - $counters.Errors++ - continue - } - - $destFile = $entry.OriginalPath - $destParent = Split-Path $destFile -Parent - if (-not (Test-Path $destParent)) { - foreach ($key in $DefaultDataTargets.Keys) { - $candidate = Join-Path $DefaultDataTargets[$key] $entry.RelativePath - $candidateParent = Split-Path $candidate -Parent - if (Test-Path (Split-Path $candidateParent -Parent)) { - $destFile = $candidate - break - } - } - } - - Restore-FileItem -SourceFile $srcFile -DestFile $destFile - } - } else { - $dataFiles = Get-ChildItem -Path $dataDir -File -Recurse - foreach ($df in $dataFiles) { - $relPath = $df.FullName.Substring($dataDir.Length + 1) - $destFile = Join-Path $DefaultDataTargets['UserDocuments'] $relPath - Restore-FileItem -SourceFile $df.FullName -DestFile $destFile - } - } - } else { - Write-Host " No data directory in backup. Skipping." -ForegroundColor DarkGray - } -} - -# ---------------------------------------------------------------------- Restore Registry ---------------------------------------------------------------------- - -if ($RestoreRegistry) { - Write-Host "[REG] Restoring registry keys..." -ForegroundColor Cyan - - $isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent() - ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) - if (-not $isAdmin -and -not $DryRun) { - Write-Warning " Registry restore of HKLM keys requires elevation. HKCU keys will still be restored." - } - - $regDir = Join-Path $workingBackup 'registry' - - # --- HKEY_USERS SID remap setup --- - # The captured HKEY_USERS\ entries belong to the source bay's - # interactive user (e.g. lg782713sd at WJ). On the imaged bay the - # equivalent user is whatever $TargetUser is (default: ShopFloor). - # Resolve target user's SID + ensure the hive is loaded so the rewrite - # lands somewhere real. If we can't resolve the target user, fall back - # to skipping the HKEY_USERS portion entirely (HKLM still restores). - $srcSidRegex = '(S-1-5-21-\d+-\d+-\d+-\d+)' - $targetSid = $null - $tempHiveLoaded = $false - # Resolve $TargetUser. If user gave an explicit value AND it resolves, - # use it. Otherwise try the fallback chain: ShopFloor (post-SFLD-2.0 - # default) -> SupportUser (imaging-context user) -> current $env:USERNAME. - $candidateUsers = @() - if ($TargetUser) { $candidateUsers += $TargetUser } - foreach ($u in @('ShopFloor','SupportUser', $env:USERNAME)) { - if ($u -and ($candidateUsers -notcontains $u)) { $candidateUsers += $u } - } - foreach ($cand in $candidateUsers) { - try { - $u = Get-LocalUser -Name $cand -ErrorAction Stop - $targetSid = $u.SID.Value - $TargetUser = $cand - Write-Host " Target user '$TargetUser' SID = $targetSid (Get-LocalUser)" - break - } catch { } - # Fall back: scan HKLM ProfileList for ProfileImagePath matching - # C:\Users\. Works for both local and domain users. - $profileList = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' - $sidFromProfile = $null - Get-ChildItem $profileList -ErrorAction SilentlyContinue | ForEach-Object { - $p = (Get-ItemProperty -LiteralPath $_.PSPath -ErrorAction SilentlyContinue).ProfileImagePath - if ($p -and (Split-Path -Leaf $p) -ieq $cand) { - $sidFromProfile = $_.PSChildName - } - } - if ($sidFromProfile) { - $targetSid = $sidFromProfile - $TargetUser = $cand - Write-Host " Target user '$TargetUser' SID = $targetSid (ProfileList)" - break - } - } - if (-not $targetSid) { - Write-Warning " Could not resolve any of: $($candidateUsers -join ', ') - per-user prefs will be SKIPPED" - } - if (-not $targetSid) { - Write-Warning " Could not resolve '$TargetUser' SID - per-user prefs will be SKIPPED (only HKLM restores)" - } else { - # Ensure the target hive is loaded so reg.exe import + New-Item paths - # against HKEY_USERS\\... resolve. - if (-not (Test-Path "Registry::HKEY_USERS\$targetSid")) { - $ntuser = "C:\Users\$TargetUser\NTUSER.DAT" - if (Test-Path -LiteralPath $ntuser) { - Write-Host " Loading $TargetUser hive from $ntuser as HKU\$targetSid" - $proc = Start-Process -FilePath 'reg.exe' -ArgumentList "load `"HKU\$targetSid`" `"$ntuser`"" ` - -Wait -PassThru -NoNewWindow -ErrorAction SilentlyContinue - if ($proc.ExitCode -eq 0) { - $tempHiveLoaded = $true - } else { - Write-Warning " Failed to load $TargetUser hive (exit $($proc.ExitCode)) - per-user prefs will be SKIPPED" - $targetSid = $null - } - } else { - Write-Warning " $ntuser not found and HKU\$targetSid not loaded - per-user prefs will be SKIPPED" - $targetSid = $null - } - } - } - - # Method 1: .reg file import. If target SID resolved, rewrite the - # source SID in the .reg content to the target SID before importing. - # If not resolved, skip HKEY_USERS .reg files. - $regFiles = Get-ChildItem -Path $regDir -Filter '*.reg' -ErrorAction SilentlyContinue - foreach ($rf in $regFiles) { - # Decide per-user vs HKLM by the .reg CONTENT root, NOT the filename. - # The backup names files after the source path, so an operator pref - # captured via HKCU:\ lands in a file named "HKCU_..." with content - # root HKEY_CURRENT_USER - which a filename match on 'HKEY_USERS' - # misses entirely. Read the content once and classify by its root(s): - # [HKEY_CURRENT_USER... -> per-user, remap root to HKEY_USERS\ - # [HKEY_USERS\... -> per-user, remap srcSid -> targetSid - # [HKEY_LOCAL_MACHINE... -> HKLM - $content = $null - try { $content = Get-Content -LiteralPath $rf.FullName -Raw } catch { - Write-Warning " [ERR] Could not read $($rf.Name): $_ - skipping" - $counters.Errors++ - continue - } - $hasCU = $content -match '\[HKEY_CURRENT_USER' - $hasHKU = $content -match '\[HKEY_USERS\\S-1-5-21' - $isUserReg = ($hasCU -or $hasHKU) - - if ($HKEYUsersOnly -and -not $isUserReg) { - Write-Host " [SKIP] HKEY_USERS-only mode, skipping HKLM .reg: $($rf.Name)" -ForegroundColor DarkGray - $counters.Skipped++ - continue - } - if ($isUserReg -and -not $targetSid) { - Write-Host " [SKIP] per-user .reg - target SID not resolved: $($rf.Name)" -ForegroundColor DarkGray - $counters.Skipped++ - continue - } - - $importPath = $rf.FullName - if ($isUserReg) { - # Rewrite the root(s) so the import lands in the TARGET user's hive, - # then write a temp UTF-16-LE file (reg.exe import requires Unicode). - try { - $newContent = $content - if ($hasHKU) { - # HKEY_USERS\ -> HKEY_USERS\ - $m = [regex]::Match($content, $srcSidRegex) - if ($m.Success -and $m.Value -ne $targetSid) { - $newContent = $newContent -replace [regex]::Escape($m.Value), $targetSid - Write-Host " [REMAP] $($rf.Name): SID $($m.Value) -> $targetSid" - } - } - if ($hasCU) { - # HKEY_CURRENT_USER -> HKEY_USERS\ (this is the - # case the old filename-based logic dropped on the floor). - $newContent = $newContent -replace '\[HKEY_CURRENT_USER', "[HKEY_USERS\$targetSid" - Write-Host " [REMAP] $($rf.Name): HKEY_CURRENT_USER -> HKEY_USERS\$targetSid" - } - if ($newContent -ne $content) { - $tmp = Join-Path $env:TEMP ("rewrite-" + $rf.Name) - Set-Content -LiteralPath $tmp -Value $newContent -Encoding Unicode -Force - $importPath = $tmp - } else { - Write-Host " [INFO] $($rf.Name): per-user root already matches target - importing as-is" -ForegroundColor DarkGray - } - } catch { - Write-Warning " [ERR] root rewrite failed for $($rf.Name): $_ - skipping" - $counters.Errors++ - continue - } - } - - if ($DryRun) { - Write-Host " [DRYRUN] REG IMPORT $importPath" -ForegroundColor DarkGray - } else { - try { - $proc = Start-Process -FilePath 'reg.exe' -ArgumentList "import `"$importPath`"" ` - -Wait -PassThru -NoNewWindow -ErrorAction Stop - if ($proc.ExitCode -eq 0) { - Write-Host " [OK] Imported $($rf.Name)" -ForegroundColor Green - } else { - Write-Warning " [ERR] reg.exe returned exit code $($proc.ExitCode) for $($rf.Name)" - $counters.Errors++ - } - } catch { - Write-Warning " [ERR] Failed to import $($rf.Name): $_" - $counters.Errors++ - } - } - $counters.RegistryKeys++ - } - - # Method 2: CSV-based key-by-key restore. CSV captures String / - # ExpandString / DWord / QWord only (Backup-FormtracepakSettings.ps1 - # skips Binary + MultiString because [string] coercion corrupts them). - # The .reg file import above is authoritative for those types. Defend - # against older CSVs (pre-fix) that carry corrupt Binary/MultiString - # rows by skipping anything that is not a CSV-safe type. - $csvSafeTypes = @('String', 'ExpandString', 'DWord', 'QWord') - $regCsv = Join-Path $regDir 'registry_values.csv' - if (Test-Path $regCsv) { - $regEntries = Import-Csv $regCsv - foreach ($re in $regEntries) { - $regPath = $re.Path - $regName = $re.Name - $regValue = $re.Value - $regType = $re.Type - - if ($regType -and ($csvSafeTypes -notcontains $regType)) { - Write-Host " [SKIP] Non-CSV-safe type '$regType' at ${regPath}\$regName (the .reg file import handled it)" -ForegroundColor DarkGray - $counters.Skipped++ - continue - } - - # HKEYUsersOnly mode: skip HKLM rows entirely (already restored - # during imaging by the in-line Step 3b run). - if ($HKEYUsersOnly -and $regPath -notmatch 'HKEY_USERS\\') { - $counters.Skipped++ - continue - } - - # HKEY_USERS\ rows: rewrite SID to target user's SID - # so per-user prefs from the source bay's interactive user land - # under the new bay's ShopFloor (or whichever $TargetUser is). - # If target SID couldn't be resolved, skip the row instead of - # erroring on the orphan path. - if ($regPath -match 'HKEY_USERS\\') { - if (-not $targetSid) { - Write-Host " [SKIP] HKEY_USERS row, no target SID: $regPath\$regName" -ForegroundColor DarkGray - $counters.Skipped++ - continue - } - $srcMatch = [regex]::Match($regPath, $srcSidRegex) - if ($srcMatch.Success) { - $srcSid = $srcMatch.Value - if ($srcSid -ne $targetSid) { - $regPath = $regPath -replace [regex]::Escape($srcSid), $targetSid - } - } - } - - if ($regPath -match '^HKLM' -and -not $isAdmin -and -not $DryRun) { - Write-Host " [SKIP] HKLM key requires elevation: $regPath\$regName" -ForegroundColor DarkYellow - $counters.Skipped++ - continue - } - - if ($DryRun) { - Write-Host " [DRYRUN] SET $regPath\$regName = $regValue ($regType)" -ForegroundColor DarkGray - } else { - try { - if (-not (Test-Path $regPath)) { - New-Item -Path $regPath -Force | Out-Null - } - $splat = @{ - Path = $regPath - Name = $regName - Value = $regValue - Force = $true - ErrorAction = 'Stop' - } - if ($regType) { $splat['PropertyType'] = $regType } - New-ItemProperty @splat | Out-Null - Write-Host " [OK] $regPath\$regName" -ForegroundColor Green - } catch { - Write-Warning " [ERR] Failed to set $regPath\$regName : $_" - $counters.Errors++ - } - } - $counters.RegistryKeys++ - } - } - - # Unload the target user's hive if we loaded it ourselves. Otherwise - # leave it alone (might be the live logged-in user). If we don't unload - # what we loaded, NTUSER.DAT stays locked and the user can't log in - # cleanly until reboot. - if ($tempHiveLoaded -and $targetSid) { - Write-Host " Unloading temporary $TargetUser hive at HKU\$targetSid" - # Force a GC pass to release any registry handles PowerShell is - # holding so reg unload doesn't fail with "access denied". - [GC]::Collect() - [GC]::WaitForPendingFinalizers() - $proc = Start-Process -FilePath 'reg.exe' -ArgumentList "unload `"HKU\$targetSid`"" ` - -Wait -PassThru -NoNewWindow -ErrorAction SilentlyContinue - if ($proc.ExitCode -ne 0) { - Write-Warning " reg.exe unload returned exit $($proc.ExitCode) - $TargetUser NTUSER.DAT may stay locked until reboot" - } - } -} - -# ---------------------------------------------------------------------- Summary ---------------------------------------------------------------------- - -Write-Host "`n----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host " Restore Summary" -ForegroundColor Yellow -Write-Host "----------------------------------------------------------------------" -ForegroundColor Yellow -Write-Host (" Files Restored : {0}" -f $counters.Files) -ForegroundColor White -Write-Host (" Directories Made : {0}" -f $counters.Directories) -ForegroundColor White -Write-Host (" Registry Entries : {0}" -f $counters.RegistryKeys) -ForegroundColor White -Write-Host (" Skipped : {0}" -f $counters.Skipped) -ForegroundColor DarkGray -Write-Host (" Errors : {0}" -f $counters.Errors) -ForegroundColor $(if ($counters.Errors -gt 0) { 'Red' } else { 'White' }) -Write-Host "----------------------------------------------------------------------" -ForegroundColor Yellow - -if ($counters.Errors -gt 0) { - Write-Warning "Some items failed to restore. Review warnings above." -} - -if ($DryRun) { - Write-Host "`n This was a DRY RUN. No changes were made." -ForegroundColor Yellow -} - -# Cleanup temp extraction if we unzipped -if ($workingBackup -ne $BackupPath -and (Test-Path $workingBackup) -and -not $DryRun) { - Remove-Item -Path $workingBackup -Recurse -Force -ErrorAction SilentlyContinue -} - -Write-Host "`n NOTE: Stylus calibration data is stored on the probe hardware." -ForegroundColor Magenta -Write-Host " Re-run calibration on the new host after restoring settings.`n" -ForegroundColor Magenta diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Schedule-WaxTracePerUserRestore.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Schedule-WaxTracePerUserRestore.ps1 deleted file mode 100644 index cc2bfb7..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Schedule-WaxTracePerUserRestore.ps1 +++ /dev/null @@ -1,134 +0,0 @@ -# Schedule-WaxTracePerUserRestore.ps1 -# -# Registers a SYSTEM-context scheduled task that fires on $TargetUser's -# first logon and restores HKEY_USERS per-user FormTracePak prefs from -# the per-asset backup ZIP into the now-loaded target user's hive. -# -# Why scheduled task + SYSTEM: -# At imaging time, the target user (ShopFloor) hasn't logged in yet so -# their NTUSER.DAT doesn't exist - can't reg-load their hive. By -# deferring to first-logon, the hive is loaded automatically by Windows. -# Running as SYSTEM means the task is not subject to lockdown policies -# applied to ShopFloor's user-context tokens. -# -# The task self-removes after one successful run (via a flag file + -# Unregister-ScheduledTask in the task action). If the restore errors, -# the flag is NOT written so the task retries on next logon. -# -# Usage (from 09-Setup-WaxAndTrace Step 3b after the in-line HKLM restore): -# & .\Schedule-WaxTracePerUserRestore.ps1 ` -# -BackupPath C:\WaxTrace-Install\backup\.zip ` -# -InstallScript C:\WaxTrace-Install\Install-FormtracepakSettings.ps1 ` -# -TargetUser ShopFloor ` -# -AssetNumber - -[CmdletBinding()] -param( - [Parameter(Mandatory=$true)][string]$BackupPath, - [string]$InstallScript = 'C:\WaxTrace-Install\Install-FormtracepakSettings.ps1', - [string]$TargetUser = 'ShopFloor', - [string]$AssetNumber = '', - [string]$RunnerScript = 'C:\WaxTrace-Install\Run-WaxTracePerUserRestore.ps1', - [string]$TaskName = 'WaxTrace-PerUser-Restore' -) - -$ErrorActionPreference = 'Stop' - -if (-not (Test-Path -LiteralPath $BackupPath)) { - Write-Warning "Backup ZIP not found at $BackupPath - skipping per-user restore task registration." - exit 1 -} -if (-not (Test-Path -LiteralPath $InstallScript)) { - Write-Warning "Install script not found at $InstallScript - skipping per-user restore task registration." - exit 1 -} - -# Drop the task-runner script alongside Install. It's small + self-contained. -# Reads the same params we register the task with, invokes Install with -# -HKEYUsersOnly + writes flag + unregisters self. -$runnerDir = Split-Path -Parent $RunnerScript -if (-not (Test-Path -LiteralPath $runnerDir)) { - New-Item -ItemType Directory -Path $runnerDir -Force | Out-Null -} - -@" -# Run-WaxTracePerUserRestore.ps1 - task action, runs as SYSTEM at logon -# Auto-generated by Schedule-WaxTracePerUserRestore.ps1; do not hand-edit. - -param( - [string]`$BackupPath = '$BackupPath', - [string]`$InstallScript = '$InstallScript', - [string]`$TargetUser = '$TargetUser', - [string]`$AssetNumber = '$AssetNumber', - [string]`$TaskName = '$TaskName', - [string]`$FlagFile = 'C:\WaxTrace-Install\per-user-restore-$TargetUser.flag' -) - -`$ErrorActionPreference = 'Continue' -`$logDir = 'C:\Logs\WaxTrace' -if (-not (Test-Path `$logDir)) { New-Item -ItemType Directory -Path `$logDir -Force | Out-Null } -`$log = Join-Path `$logDir ('per-user-restore-' + `$TargetUser + '-' + (Get-Date -Format 'yyyyMMdd_HHmmss') + '.log') -Start-Transcript -LiteralPath `$log -Append -IncludeInvocationHeader | Out-Null - -try { - Write-Host "=== Per-user restore task ===" - Write-Host " TargetUser = `$TargetUser" - Write-Host " AssetNumber = `$AssetNumber" - Write-Host " BackupPath = `$BackupPath" - Write-Host " InstallScript = `$InstallScript" - Write-Host " FlagFile = `$FlagFile" - Write-Host " RunningAs = `$(`$env:USERNAME) ([Security.Principal.WindowsIdentity]::GetCurrent().Name)" - - if (Test-Path -LiteralPath `$FlagFile) { - Write-Host "Flag file present - already complete, exiting." - exit 0 - } - - # Give Windows a moment to finish loading the user hive after logon. - Start-Sleep -Seconds 8 - - if (-not (Test-Path -LiteralPath `$BackupPath)) { Write-Warning "Backup ZIP missing: `$BackupPath"; exit 2 } - if (-not (Test-Path -LiteralPath `$InstallScript)) { Write-Warning "Install script missing: `$InstallScript"; exit 2 } - - & `$InstallScript -BackupPath `$BackupPath -RestoreRegistry -HKEYUsersOnly -Force -TargetUser `$TargetUser - `$rc = `$LASTEXITCODE - if (`$null -eq `$rc) { `$rc = 0 } - - if (`$rc -eq 0) { - Set-Content -LiteralPath `$FlagFile -Value (Get-Date -Format 'o') -Encoding ascii -Force - Write-Host "Restore complete - flag file written. Unregistering task '`$TaskName'." - Unregister-ScheduledTask -TaskName `$TaskName -Confirm:`$false -ErrorAction SilentlyContinue - } else { - Write-Warning "Restore returned exit code `$rc - leaving task registered for retry on next logon." - } - exit `$rc -} catch { - Write-Warning "Task action threw: `$_" - exit 99 -} finally { - Stop-Transcript | Out-Null -} -"@ | Set-Content -LiteralPath $RunnerScript -Encoding ascii -Force -Write-Host "Wrote task action script: $RunnerScript" - -# Register the task. AtLogOn trigger filtered to $TargetUser so it only fires -# when that user logs on (other users logging on don't trigger). Principal -# SYSTEM, RunLevel Highest = full privileges including HKLM writes that -# survive lockdown policies on ShopFloor's user-context. -$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument "-NoProfile -ExecutionPolicy Bypass -File `"$RunnerScript`"" -$trigger = New-ScheduledTaskTrigger -AtLogOn -User $TargetUser -$principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest -$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Minutes 30) - -# Unregister any existing instance first so re-runs are clean. -if (Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue) { - Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -} - -Register-ScheduledTask -TaskName $TaskName -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Description "FormTracePak per-user prefs restore for $TargetUser (one-shot at first logon, then self-removes). Asset $AssetNumber." | Out-Null - -Write-Host "Registered scheduled task '$TaskName':" -Write-Host " Trigger: AtLogOn UserId=$TargetUser" -Write-Host " Principal: SYSTEM (RunLevel Highest)" -Write-Host " Action: $RunnerScript" -Write-Host " Self-removes after one successful restore." diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Select-WaxtraceAsset.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Select-WaxtraceAsset.ps1 deleted file mode 100644 index a894929..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/Select-WaxtraceAsset.ps1 +++ /dev/null @@ -1,110 +0,0 @@ -<# -.SYNOPSIS - Arrow-key bay picker for Wax/Trace Export / Backup / Install scripts. - -.DESCRIPTION - Reads bay-config.csv (asset_tag,ftpak_version,model,user_id) and presents - an Up/Down picker. Returns the chosen asset_tag to stdout so the calling - script can capture it. Always appends an "Other (manual entry)" option. - - Same UX as the WinPE select-waxtrace-asset.ps1 used by startnet.cmd. - Distinct from that script because it returns the asset tag via stdout - rather than writing to a file, and presents the richer per-bay columns - (FTPak version + model + USER ID) from bay-config.csv. - -.PARAMETER ConfigCsv - Path to bay-config.csv. Defaults to a sibling file next to this script. - -.PARAMETER Title - Header text shown above the picker. Defaults to "Wax/Trace Asset". - -.OUTPUTS - String. The chosen asset_tag, printed to stdout. Empty string on cancel. - -.EXAMPLE - $asset = & .\Select-WaxtraceAsset.ps1 - $asset = & .\Select-WaxtraceAsset.ps1 -ConfigCsv 'C:\foo\bay-config.csv' -Title 'Pick bay to back up' -#> -[CmdletBinding()] -param( - [string]$ConfigCsv = (Join-Path $PSScriptRoot 'bay-config.csv'), - [string]$Title = 'Wax/Trace Asset' -) - -$ErrorActionPreference = 'Continue' - -function Read-BayList { - param([string]$Path) - if (-not (Test-Path -LiteralPath $Path)) { return @() } - try { - return Import-Csv -LiteralPath $Path | - Sort-Object -Property asset_tag - } catch { - return @() - } -} - -function Show-Menu { - param([object[]]$Items, [int]$Selected, [string]$Title) - Clear-Host - Write-Host '' - Write-Host ' ============================================================' - Write-Host " $Title" - Write-Host ' ============================================================' - Write-Host '' - Write-Host ' Up / Down arrows = navigate, Enter = select, Esc = cancel' - Write-Host '' - Write-Host (' {0,-10} {1,-8} {2,-10} {3}' -f 'ASSET', 'FTPAK', 'MODEL', 'USER ID') - Write-Host (' {0,-10} {1,-8} {2,-10} {3}' -f '-----', '-----', '-----', '-------') - for ($i = 0; $i -lt $Items.Count; $i++) { - $item = $Items[$i] - if ($item -is [string]) { - $line = $item - } else { - $line = '{0,-10} {1,-8} {2,-10} {3}' -f $item.asset_tag, $item.ftpak_version, $item.model, $item.user_id - } - if ($i -eq $Selected) { - Write-Host (' > ' + $line) -ForegroundColor Black -BackgroundColor White - } else { - Write-Host (' ' + $line) - } - } - Write-Host '' -} - -$bays = @(Read-BayList -Path $ConfigCsv) -$menuItems = @() -foreach ($b in $bays) { $menuItems += $b } -$menuItems += '** Other (enter asset tag manually) **' - -if ($menuItems.Count -eq 1) { - # Only the manual-entry sentinel: CSV missing or unparseable. Fall back - # to a plain prompt rather than wedging the operator in an empty menu. - Write-Host " (bay-config.csv not readable at $ConfigCsv - falling back to manual entry)" - $manual = Read-Host " Enter asset tag (e.g. WJRP9999) or blank to abort" - if ($manual) { return $manual.Trim().ToUpper() } else { return '' } -} - -$sel = 0 -while ($true) { - Show-Menu -Items $menuItems -Selected $sel -Title $Title - $key = [System.Console]::ReadKey($true) - switch ($key.Key) { - 'UpArrow' { if ($sel -gt 0) { $sel-- } } - 'DownArrow' { if ($sel -lt ($menuItems.Count - 1)) { $sel++ } } - 'Enter' { - if ($sel -eq ($menuItems.Count - 1)) { - Write-Host '' - $manual = Read-Host ' Enter asset tag (e.g. WJRP9999) or blank to abort' - if ($manual) { - return $manual.Trim().ToUpper() - } else { - return '' - } - } else { - return $bays[$sel].asset_tag - } - } - 'Escape' { return '' } - } -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/bay-config.csv b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/bay-config.csv deleted file mode 100644 index 6484bf5..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/scripts/bay-config.csv +++ /dev/null @@ -1,18 +0,0 @@ -asset_tag,ftpak_version,model,user_id,hw_sn,hw_id,host,notes -WJF00052,6.103,CV-4500,3270314998,100032204,00039188,G2ZTNCX3ESF,bay-config was AVANT - corrected to CV-4500 per device-map -WJF00083,6.103,AVANT,2934506987,100062206,00039341,GDMT28Y3ESF, -WJF00084,6.103,AVANT,1476212857,100042205,00039348,G2GY4SY3ESF, -WJF00159,6.103,AVANT,3974839712,100072210,00040145,G5PRTW04ESF, -WJF00197,6.104,AVANT,1191612605,300022404,00041459,GHNWYRT3ESF, -WJF00450,6.213,AVANT,0992830128,400052411,MISSING_DATA,G8KRCPZ3ESF,app ISO 6.213 (only 6.2x ISO available) + restore 6.2.0.45 backup - same pattern as WJF00461 (6.213 ISO / 6.2.0.51 backup); do not change to 6.204 (no V6.204 ISO exists); user_id set 2026-06-08; hw_id needs dongle read (metadata only) -WJF00461,6.213,AVANT,3878777362,400012504,00044757,G2PMG3D4ESF,new bay (was misattributed to WJF00545 in old CSV) -WJF00545,6.213,AVANT,3268459559,500022512,00045652,G6MJG3D4ESF,user_id refreshed 2026-05-24 (was 3878777362) -WJRP0423,6.0,CV-3100,3669340917,720104,00025834,GGDBWRT3ESF,old bay - device-map name 'NewCVSV' is Mitutoyo internal for CV-3100 -WJRP2035,6.0,CV-4500,2292822471,200011406,0008232,G6W7JK44ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2335,6.0,CV-4500,1780916688,800011510,00011911,G4B48FZ3ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2347,6.0,CV-4500,3585172946,800021510,00011674,GDR6B8B3ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2659,6.0,CV-4500,2709054503,000021608,00015700,G33N20R3ESF,live binary is 5.7.0.82 - migrating to original 6.0 target -WJRP2660,6.0,CV-4500,236598621,000011607,00015588,GGGMF1V3ESF,live binary is 5.7.0.92 - migrating to original 6.0 target -WJRP3638,5.602,CV-4500,0720778210,400031808,00024395,GFDBWRT3ESF, -WJRP3689,5.510,CV-4500,3744284509,400021807f,00024390,G4HCKF33ESF,live binary is 5.6.0.40 (release 5.602) - migrating to original 5.510 target -WJRP4802,6.002,AVANT,0920866935,100062108,00034683,G5W7R704ESF,live binary is 5.7.0.92 - migrating to original 6.002 target diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/select-waxtrace-asset.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/select-waxtrace-asset.ps1 deleted file mode 100644 index e2bcb48..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/select-waxtrace-asset.ps1 +++ /dev/null @@ -1,102 +0,0 @@ -# select-waxtrace-asset.ps1 - Arrow-key bay picker for wax/trace imaging. -# -# Reads the calibration INDEX.csv on the PXE share to build the menu of known -# bays. Operator picks with Up/Down arrows + Enter. Always appends an -# "Other (new bay)" option at the end for bays that don't have a cal ISO yet - -# selecting it falls back to a free-text prompt. -# -# Writes the chosen asset tag to $OutFile (one line, no trailing newline). -# startnet.cmd reads that file back into the MACHINENUM batch var. -# -# Runs in WinPE PowerShell. Win10/11 WinPE ships powershell.exe with -# System.Console.ReadKey support. Tested 2026-05-18. -# -# Exit codes: -# 0 = asset tag written to $OutFile -# 1 = user cancelled (Esc) - $OutFile not written -# 2 = INDEX.csv unreadable AND no fallback entered - -param( - [string]$IndexPath = 'Y:\installers-post\waxtrace\calibrations\INDEX.csv', - [Parameter(Mandatory=$true)][string]$OutFile -) - -$ErrorActionPreference = 'Continue' - -function Read-BayList { - param([string]$Path) - if (-not (Test-Path -LiteralPath $Path)) { return @() } - try { - return Import-Csv -LiteralPath $Path | - Select-Object -Property asset_tag, ftpak_version, model, host | - Sort-Object -Property asset_tag -Descending - } catch { - return @() - } -} - -function Show-Menu { - param( - [object[]]$Items, - [int]$Selected, - [string]$Title - ) - Clear-Host - Write-Host "" - Write-Host " ========================================" - Write-Host " $Title" - Write-Host " ========================================" - Write-Host "" - Write-Host " Up / Down arrows = navigate, Enter = select, Esc = cancel" - Write-Host "" - for ($i = 0; $i -lt $Items.Count; $i++) { - $item = $Items[$i] - $line = if ($item -is [string]) { $item } else { "{0,-10} v{1,-6} {2,-10} {3}" -f $item.asset_tag, $item.ftpak_version, $item.model, $item.host } - if ($i -eq $Selected) { - Write-Host (" > " + $line) -ForegroundColor Black -BackgroundColor White - } else { - Write-Host (" " + $line) - } - } - Write-Host "" -} - -$bays = @(Read-BayList -Path $IndexPath) -$menuItems = @() -foreach ($b in $bays) { $menuItems += $b } -$menuItems += '** Other (new bay - enter asset tag manually) **' - -$sel = 0 -while ($true) { - Show-Menu -Items $menuItems -Selected $sel -Title "Wax/Trace Asset Tag" - $key = [System.Console]::ReadKey($true) - switch ($key.Key) { - 'UpArrow' { if ($sel -gt 0) { $sel-- } } - 'DownArrow' { if ($sel -lt ($menuItems.Count - 1)) { $sel++ } } - 'Enter' { - if ($sel -eq ($menuItems.Count - 1)) { - # Manual entry - Write-Host "" - $manual = Read-Host " Enter asset tag (e.g. WJRP9999) or blank to abort" - if ($manual) { - $manual = $manual.Trim().ToUpper() - Set-Content -LiteralPath $OutFile -Value $manual -NoNewline -Encoding ascii - Write-Host "" - Write-Host " Saved asset tag: $manual" - Start-Sleep -Seconds 1 - exit 0 - } else { - exit 1 - } - } else { - $pick = $bays[$sel].asset_tag - Set-Content -LiteralPath $OutFile -Value $pick -NoNewline -Encoding ascii - Write-Host "" - Write-Host " Selected: $pick" - Start-Sleep -Seconds 1 - exit 0 - } - } - 'Escape' { exit 1 } - } -} diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/waxtrace-manifest.json b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/waxtrace-manifest.json deleted file mode 100644 index 60f9e9d..0000000 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/waxtrace-manifest.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "Version": "2.0", - "_comment": "Wax/Trace (Mitutoyo FormTracePak v6.0) imaging-time prereq manifest. Consumed by 09-Setup-WaxAndTrace.ps1 reading from C:\\WaxTrace-Install\\. Covers BOTH CV-3000/4000 and SV-C3000/4000 series bays since the master install merges them. Does NOT run Mitutoyo's appSetup.exe / Setup.exe wrappers - those are CD-ROM-bound + dongle-gated + unreliable on Win11. The actual FormTracePak install replay (Program Files xcopy + HKLM reg import) is handled by 09-Setup-WaxAndTrace.ps1 directly, after this manifest installs the prereqs.", - "Applications": [ - { - "_comment": "Visual C++ 2008 x86 redist. Mitutoyo's vcredist_x86.exe (2008 SP1 vintage) at Lang\\English\\ on the FormTracePak ISO. /q is the 2005-era silent flag still supported by 2008 redist EXEs.", - "Name": "Microsoft Visual C++ 2008 Redistributable - x86", - "Installer": "prereqs\\vcredist_x86.exe", - "Type": "EXE", - "InstallArgs": "/q", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9BE518E6-ECC6-35A9-88E4-87755C07200F}", - "DetectionName": "DisplayVersion", - "DetectionValue": "9.0.30729" - }, - { - "_comment": "Visual C++ 2008 x64 redist.", - "Name": "Microsoft Visual C++ 2008 Redistributable - x64", - "Installer": "prereqs\\vcredist_x64.exe", - "Type": "EXE", - "InstallArgs": "/q", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{8220EEFE-38CD-377E-8595-13398D740ACE}", - "DetectionName": "DisplayVersion", - "DetectionValue": "9.0.21022" - }, - { - "_comment": "Visual C++ 2017 x86 redist (Mitutoyo ships 14.15.26706 = VS2017 Update 7 era). Detection by key+name presence only, NOT exact version: Windows Update or other software routinely bumps VS14 runtime to 14.16+ or 14.3x+, and the older Mitutoyo redist refuses to install over the newer (exits non-zero) which the engine then marks as failed even though the runtime is fine. All VS14 / VC++ 2015-2022 redists are backward-compatible so any installed version satisfies FormTracePak.", - "Name": "Microsoft Visual C++ 2017 Redistributable (x86)", - "Installer": "prereqs\\vc_redist.x86.exe", - "Type": "EXE", - "InstallArgs": "/quiet /norestart", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x86", - "DetectionName": "Version" - }, - { - "_comment": "Visual C++ 2017 x64 redist. Same key+name-presence detection as x86 (see comment above).", - "Name": "Microsoft Visual C++ 2017 Redistributable (x64)", - "Installer": "prereqs\\vc_redist.x64.exe", - "Type": "EXE", - "InstallArgs": "/quiet /norestart", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x64", - "DetectionName": "Version" - }, - { - "_comment": "Sentinel Runtime / HASP USB dongle driver from Gemalto (now Thales). Vintage 2019 InstallShield wrapper, classic InstallShield silent install via /s + nested /v args. FormTracePak licensing is dongle-bound; the runtime + drivers must be present before Formtracepak.exe will run. Tech inserts physical HASP USB dongle on the bay post-imaging to license.", - "Name": "Sentinel Runtime (HASP)", - "Installer": "prereqs\\HASPUserSetup.exe", - "Type": "EXE", - "InstallArgs": "/s /v/qn /v/norestart", - "DetectionMethod": "Registry", - "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C8903CCB-67B6-4801-AA7B-B4E54E2B8406}", - "DetectionName": "DisplayVersion", - "DetectionValue": "7.92.28470.60000" - } - ] -} diff --git a/playbook/shopfloor-setup/menu.json b/playbook/shopfloor-setup/menu.json deleted file mode 100644 index dd7efef..0000000 --- a/playbook/shopfloor-setup/menu.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "_comment": "Data-driven WinPE shopfloor PC-type menu. Read at boot by select-shopfloor-type.ps1 (mirrors the CMM bay picker) and edited by the PXE webapp. 'key' is the PCTYPE value - it MUST match a shopfloor-setup/gea-shopfloor- handler dir. Order = display order. Set enabled=false to hide without deleting. Deployed to the enrollment share; startnet.cmd falls back to its baked-in menu if this file or the picker is unavailable.", - "shopfloor": [ - { "key": "gea-shopfloor-collections", "label": "Machine with Collections", "hint": "eDNC + UDC + Plant Apps", "enabled": true }, - { "key": "gea-shopfloor-nocollections", "label": "Machine without Collections", "hint": "eDNC + Plant Apps, no UDC", "enabled": true }, - { "key": "gea-shopfloor-common", "label": "Common", "hint": "Timeclock, Lab; WJ Shopfloor only", "enabled": true }, - { "key": "gea-shopfloor-keyence", "label": "Keyence", "hint": "VR-3000 / VR-5000 / VR-6000 microscope","enabled": true }, - { "key": "gea-shopfloor-cmm", "label": "CMM", "hint": "Hexagon PC-DMIS + Protect Viewer", "enabled": true }, - { "key": "gea-shopfloor-genspect", "label": "Genspect", "hint": "", "enabled": true }, - { "key": "gea-shopfloor-heattreat", "label": "Heattreat", "hint": "eDNC + HeatTreat app", "enabled": true }, - { "key": "gea-shopfloor-waxtrace", "label": "Wax and Trace", "hint": "", "enabled": true }, - { "key": "gea-shopfloor-display", "label": "Display", "hint": "kiosk dashboard", "enabled": true }, - { "key": "gea-shopfloor-partmarker", "label": "Part Marker", "hint": "eDNC + Telesis Mark", "enabled": true } - ] -} diff --git a/playbook/shopfloor-setup/select-shopfloor-type.ps1 b/playbook/shopfloor-setup/select-shopfloor-type.ps1 deleted file mode 100644 index b13cf60..0000000 --- a/playbook/shopfloor-setup/select-shopfloor-type.ps1 +++ /dev/null @@ -1,63 +0,0 @@ -<# - select-shopfloor-type.ps1 - data-driven GEA Shopfloor PC-type picker for WinPE. - - Reads the shopfloor menu from menu.json (edited by the PXE webapp), renders a - numbered menu, and writes the chosen PCTYPE key (e.g. gea-shopfloor-cmm) to - -OutFile. startnet.cmd runs this instead of a hardcoded menu, and falls back - to its baked-in menu if this script or menu.json is missing. Mirrors the CMM - bay picker (select-cmm-bay.ps1). - - Usage (from startnet.cmd): - powershell -NoProfile -ExecutionPolicy Bypass -File select-shopfloor-type.ps1 ` - -MenuJson Y:\menu.json -OutFile X:\pctype.txt - Exit 0 + a written key on success; non-zero (and no file) on any failure so - the batch fallback kicks in. -#> -param( - [Parameter(Mandatory = $true)][string]$MenuJson, - [Parameter(Mandatory = $true)][string]$OutFile -) - -$ErrorActionPreference = 'Stop' -Remove-Item -LiteralPath $OutFile -ErrorAction SilentlyContinue - -try { - if (-not (Test-Path -LiteralPath $MenuJson)) { Write-Host "menu.json not found: $MenuJson"; exit 2 } - $data = Get-Content -LiteralPath $MenuJson -Raw | ConvertFrom-Json - $items = @($data.shopfloor | Where-Object { $_.key -and ($_.enabled -ne $false) }) - if ($items.Count -eq 0) { Write-Host "menu.json has no enabled shopfloor items"; exit 3 } - - while ($true) { - Clear-Host - Write-Host "" - Write-Host "========================================" - Write-Host " GEA Shopfloor PC Sub-Type" - Write-Host "========================================" - Write-Host "" - for ($i = 0; $i -lt $items.Count; $i++) { - $n = $i + 1 - $lbl = $items[$i].label - $hint = $items[$i].hint - $line = "{0,3}. {1}" -f $n, $lbl - if ($hint) { $line = "{0,-45} ({1})" -f $line, $hint } - Write-Host $line - } - Write-Host "" - $sel = Read-Host ("Enter your choice (1-{0})" -f $items.Count) - $num = 0 - if ([int]::TryParse($sel, [ref]$num) -and $num -ge 1 -and $num -le $items.Count) { - $key = $items[$num - 1].key - # OutFile is on X: (WinPE scratch); write the bare PCTYPE key, no BOM/newline surprises - [System.IO.File]::WriteAllText($OutFile, $key) - Write-Host "" - Write-Host ("Selected: {0} ({1})" -f $items[$num - 1].label, $key) - exit 0 - } - Write-Host "Invalid choice - try again." - Start-Sleep -Milliseconds 800 - } -} -catch { - Write-Host "shopfloor picker error: $($_.Exception.Message)" - exit 1 -} diff --git a/playbook/shopfloor-setup/site-config.json b/playbook/shopfloor-setup/site-config.json deleted file mode 100644 index f614f96..0000000 --- a/playbook/shopfloor-setup/site-config.json +++ /dev/null @@ -1,327 +0,0 @@ -{ - "_version": "2.0", - "_site": "west-jefferson", - "_comment": "Site-specific configuration for the shopfloor imaging pipeline. Scripts read this from C:\\Enrollment\\site-config.json at runtime and fall back to hardcoded defaults if missing. To deploy at a different site, clone this file and change the values. Top-level keys (startupItems, taskbarPins, desktopApps) are defaults used when no pcProfile matches. Per-type profiles override them.", - - "siteName": "West Jefferson", - "siteNameCompact": "WestJefferson", - - "urls": { - "plantApps": "https://mes-wjefferson.apps.lr.geaerospace.net/run/?app_name=Plant%20Applications", - "shopFloorHomepage": "https://tsgwp00525.wjs.geaerospace.net", - "shopfloorDashboard": "https://tsgwp00525.wjs.geaerospace.net/shopdb/shopfloor", - "webmail": "https://outlook.office365.us/mail" - }, - - "edgeStartupTabs": [ - { "baseName": "Plant Apps", "fallbackUrlKey": "plantApps" }, - { "baseName": "WJ Shop Floor Homepage", "fallbackUrlKey": "shopFloorHomepage" }, - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ], - - "opentext": { - "excludeProfiles": [ "WJ_Office.hep", "IBM_qks.hep", "mmcs.hep" ], - "excludeShortcuts": [ "WJ_Office.lnk", "IBM_qks.lnk", "mmcs.lnk" ] - }, - - "common": { - "_comment": "Cross-PC-type share paths used by GE-Enforce. The dispatcher mounts the share with SFLD creds from HKLM:\\SOFTWARE\\GE\\SFLD\\Credentials and applies common/manifest.json (and per-pctype manifests below) on every user logon.", - "commonAppsSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\common\\apps" - }, - - "_startupItems_comment": "Cross-PC-type baseline. UDC / eDNC / NTLARS deliberately NOT here - those are Standard-Machine-only and live in pcProfiles.Standard-Machine. Putting them in the global fallback caused them to leak onto any PC type that didn't override (and is a footgun for any newly-added PC type). Keep this list to apps that genuinely belong on every shopfloor PC type (corporate links, defect tracker).", - "startupItems": [ - { "label": "Defect Tracker", "type": "existing", "sourceLnk": "Defect_Tracker.lnk" }, - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" } - ], - - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" } - ], - - "desktopApps": [ - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" } - ], - - "pcProfiles": { - "_comment": "Per PC-type (and optional sub-type) overrides. Key format: 'Type' or 'Type-Subtype'. Scripts look up the profile matching pc-type.txt + pc-subtype.txt. If a profile exists, its startupItems/taskbarPins/desktopApps REPLACE the top-level defaults above. If no profile matches, the top-level defaults are used.", - "_shortcuts_policy": "Every shopfloor working type carries the SAME common base: Edge + WJ Shopfloor + Defect_Tracker pins/desktop shortcuts, WJ Shopfloor + Plant Apps startup, and the 3 web tabs (Plant Apps, WJ Shop Floor Homepage, Shopfloor Dashboard). Per-type specialized apps are appended. eDNC / UDC / NTLARS are listed only on the bays that can have them; 06-OrganizeDesktop.ps1 + 07-TaskbarLayout.ps1 gate every exe entry on Test-Path, so a shortcut whose target is not installed is silently skipped (this is what makes 'eDNC if it exists / UDC if it exists' work). Lab + Display-* are deliberately left as kiosk/lab and do NOT get the shopfloor common base.", - - "Standard-Timeclock": { - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" } - ], - "desktopApps": [ - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" } - ], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net", - "edgeStartupTabs": [ - { "baseName": "Plant Apps", "fallbackUrlKey": "plantApps" }, - { "baseName": "WJ Shop Floor Homepage", "fallbackUrlKey": "shopFloorHomepage" }, - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - }, - - "Standard-Machine": { - "machineappsSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\main\\machineapps", - "ntlarsBackupSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\main\\ntlars-backups", - "udcBackupSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\backup\\udc", - "udcSettingsSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\spc\\udc\\settings_backups", - "_startupItems_comment": "UDC removed 2026-04-28 - the UDC vendor installer registers UDC.exe in HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run, which Task Manager surfaces as a Startup item. Our duplicate Startup\\UDC.lnk created a race-condition single-instance conflict (Run key fires from Explorer init, our .lnk fires slightly later, the second launch silently exits) that left UDC running in a not-fully-attached session and invisible to the ShopFloor user. Vendor autostart is the canonical autostart - we no longer add our own.", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" }, - { "label": "eDNC", "type": "exe", "target": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "UDC", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\UDC.lnk" }, - { "name": "eDNC", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\eDNC.lnk" }, - { "name": "NTLARS", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\NTLARS.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" } - ], - "desktopApps": [ - { "name": "UDC", "kind": "exe", "exePath": "C:\\Program Files\\UDC\\UDC.exe" }, - { "name": "eDNC", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" }, - { "name": "NTLARS", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\Common\\NTLARS.exe" }, - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" } - ] - }, - - "gea-shopfloor-nocollections": { - "_comment": "Shopfloor PC running eDNC + NTLARS + Defect Tracker but no UDC (no Collections). Same as Standard-Machine minus UDC pin/desktop/startup. Direct profile lookup (line 92 in Get-PCProfile.ps1) finds this BEFORE the alias-group fallback to Standard-Machine, so Standard-Machine's UDC entries do not leak through.", - "machineappsSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\main\\machineapps", - "ntlarsBackupSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\main\\ntlars-backups", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" }, - { "label": "eDNC", "type": "exe", "target": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "eDNC", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\eDNC.lnk" }, - { "name": "NTLARS", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\NTLARS.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" } - ], - "desktopApps": [ - { "name": "eDNC", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" }, - { "name": "NTLARS", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\Common\\NTLARS.exe" }, - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" } - ] - }, - - "gea-shopfloor-partmarker": { - "_comment": "Telesis Part Marker bay: eDNC + NTLARS + the Mark app + Telesis Backup420. Of the three Telesis backup apps (Backup400/420/470) only Backup420 is wanted - 400 and 470 dropped 2026-06-04. DNC baseline mirrors gea-shopfloor-nocollections; Mark + Backup420 are marker-specific. eDNC/NTLARS are Test-Path gated by the shortcut generators so they only appear when installed.", - "ntlarsBackupSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\main\\ntlars-backups", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" }, - { "label": "eDNC", "type": "exe", "target": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" }, - { "name": "eDNC", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\eDNC.lnk" }, - { "name": "NTLARS", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\NTLARS.lnk" }, - { "name": "Mark", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Mark.lnk" }, - { "name": "Backup420", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Backup420.lnk" } - ], - "desktopApps": [ - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" }, - { "name": "eDNC", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" }, - { "name": "NTLARS", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\Common\\NTLARS.exe" }, - { "name": "Mark", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Mark\\bin\\Mark.exe" }, - { "name": "Backup420", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Telesis\\Backup420\\Backup420.exe" } - ] - }, - - "gea-shopfloor-heattreat": { - "_comment": "HeatTreat bay: eDNC + NTLARS + the HeatTreat app. DNC baseline mirrors gea-shopfloor-nocollections. Without this profile the type fell back to the top-level defaults, which deliberately exclude eDNC, so no DNC shortcut/pin appeared.", - "ntlarsBackupSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\main\\ntlars-backups", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" }, - { "label": "eDNC", "type": "exe", "target": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "eDNC", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\eDNC.lnk" }, - { "name": "NTLARS", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\NTLARS.lnk" }, - { "name": "HeatTreat", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\HeatTreat.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" } - ], - "desktopApps": [ - { "name": "eDNC", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\bin\\DncMain.exe" }, - { "name": "NTLARS", "kind": "exe", "exePath": "C:\\Program Files (x86)\\Dnc\\Common\\NTLARS.exe" }, - { "name": "HeatTreat", "kind": "exe", "exePath": "C:\\Program Files (x86)\\HeatTreat\\bin\\HeatTreat.exe" }, - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" } - ] - }, - - "CMM": { - "_comment": "Hexagon CMM apps (CLM 1.8, goCMM, PC-DMIS 2016, PC-DMIS 2019 R2). At imaging time they install from a WinPE-staged local bootstrap at C:\\CMM-Install (put there by startnet.cmd when pc-type=CMM, source is the PXE server enrollment share). Post-imaging, the unified GE-Enforce dispatcher reads cmm/manifest.json on the tsgwp00525 share below and enforces versions on every user logon (the SFLD creds Azure DSC provisions unlock the mount). cmmSharePath is the ongoing-enforcement source, not the imaging-time source.", - "cmmSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\cmm\\machineapps", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" }, - { "name": "PC-DMIS 2016", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\PC-DMIS 2016.lnk" }, - { "name": "PC-DMIS 2019 R2", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\PC-DMIS 2019 R2.lnk" }, - { "name": "PC-DMIS 2026.1", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\PC-DMIS 2026.1.lnk" }, - { "name": "CLM Admin", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\CLM Admin.lnk" }, - { "name": "goCMM", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\goCMM.lnk" } - ], - "desktopApps": [ - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "existing", "sourceName": "Defect_Tracker.lnk" }, - { "name": "PC-DMIS 2016", "kind": "exe", "exePath": "C:\\Program Files\\Hexagon\\PC-DMIS 2016.0 64-bit\\PCDLRN.exe" }, - { "name": "PC-DMIS 2019 R2", "kind": "exe", "exePath": "C:\\Program Files\\Hexagon\\PC-DMIS 2019 R2 64-bit\\PCDLRN.exe" }, - { "name": "PC-DMIS 2026.1", "kind": "exe", "exePath": "C:\\Program Files\\Hexagon\\PC-DMIS 2026.1 64-bit\\PCDLRN.exe" }, - { "name": "CLM Admin", "kind": "exe", "exePath": "C:\\Program Files\\Hexagon\\CLM Admin 1.8 64-bit\\clmadmin.exe" }, - { "name": "goCMM", "kind": "exe", "exePath": "C:\\Program Files (x86)\\General Electric\\goCMM\\goCMM.exe" } - ], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net", - "edgeStartupTabs": [ - { "baseName": "Plant Apps", "fallbackUrlKey": "plantApps" }, - { "baseName": "WJ Shop Floor Homepage", "fallbackUrlKey": "shopFloorHomepage" }, - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - }, - - "Genspect": { - "_comment": "Genspect bay: common shopfloor base only - no Genspect-specific apps specified yet. eDNC/UDC are Test-Path gated by the generators if a Genspect bay ever runs them.", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" } - ], - "desktopApps": [ - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" } - ], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net", - "edgeStartupTabs": [ - { "baseName": "Plant Apps", "fallbackUrlKey": "plantApps" }, - { "baseName": "WJ Shop Floor Homepage", "fallbackUrlKey": "shopFloorHomepage" }, - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - }, - - "Keyence": { - "_comment": "Keyence VR-6000 microscope/profilometer PCs. At imaging time, 09-Setup-Keyence.ps1 installs VR-6000 Series Software MSI + KEYENCE VR USB driver from the WinPE-staged shopfloor-setup\\Keyence\\ bundle. Post-imaging, the unified GE-Enforce dispatcher reads keyence/manifest.json on the tsgwp00525 share below and enforces versions on every user logon (SFLD creds provisioned by Azure DSC unlock the mount). keyenceSharePath is the ongoing-enforcement source; bump the manifest + MSI on the share to push updates fleet-wide.", - "keyenceSharePath": "\\\\tsgwp00525.wjs.geaerospace.net\\shared\\dt\\shopfloor\\keyence\\machineapps", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" } - ], - "desktopApps": [ - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" } - ], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net", - "edgeStartupTabs": [ - { "baseName": "Plant Apps", "fallbackUrlKey": "plantApps" }, - { "baseName": "WJ Shop Floor Homepage", "fallbackUrlKey": "shopFloorHomepage" }, - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - }, - - "WaxAndTrace": { - "_comment": "Wax and Trace bay: common shopfloor base + Mitutoyo Formtracepak (form/contour measurement). Formtracepak is Test-Path gated so the shortcut only appears once the Mitutoyo app is installed.", - "startupItems": [ - { "label": "WJ Shopfloor", "type": "existing", "sourceLnk": "WJ Shopfloor.lnk" }, - { "label": "Plant Apps", "type": "url", "urlKey": "plantApps" } - ], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" }, - { "name": "WJ Shopfloor", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Defect_Tracker.lnk" }, - { "name": "Formtracepak", "lnkPath": "%PUBLIC%\\Desktop\\Shopfloor Tools\\Formtracepak.lnk" } - ], - "desktopApps": [ - { "name": "WJ Shopfloor", "kind": "existing", "sourceName": "WJ Shopfloor.lnk" }, - { "name": "Defect_Tracker", "kind": "exe", "exePath": "C:\\Program Files (x86)\\WJF_Defect_Tracker\\Defect_Tracker.exe" }, - { "name": "Formtracepak", "kind": "exe", "exePath": "C:\\Program Files (x86)\\MitutoyoApp\\Formtracepak\\Formtracepak.exe" } - ], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net", - "edgeStartupTabs": [ - { "baseName": "Plant Apps", "fallbackUrlKey": "plantApps" }, - { "baseName": "WJ Shop Floor Homepage", "fallbackUrlKey": "shopFloorHomepage" }, - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - }, - - "Lab": { - "_comment": "Lab Workstation - Office from ppkg, web URLs, custom Edge homepage + tabs", - "startupItems": [], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" } - ], - "desktopApps": [], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net", - "edgeStartupTabs": [ - { "baseName": "WJ Shop Floor Homepage", "fallbackUrlKey": "shopFloorHomepage" }, - { "baseName": "M365 Webmail", "fallbackUrlKey": "webmail" }, - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - }, - - "Display-Lobby": { - "_comment": "Display kiosk - lobby variant", - "startupItems": [], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" } - ], - "desktopApps": [], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net/shopdb/tv", - "edgeStartupTabs": [ - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - }, - - "Display-Dashboard": { - "_comment": "Display kiosk - dashboard variant", - "startupItems": [], - "taskbarPins": [ - { "name": "Microsoft Edge", "lnkPath": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk" } - ], - "desktopApps": [], - "edgeHomepage": "https://tsgwp00525.wjs.geaerospace.net/shopdb/shopfloor", - "edgeStartupTabs": [ - { "baseName": "Shopfloor Dashboard", "fallbackUrlKey": "shopfloorDashboard" } - ] - } - } -} diff --git a/playbook/site-vars.example.yml b/playbook/site-vars.example.yml index 0328ce2..038c714 100644 --- a/playbook/site-vars.example.yml +++ b/playbook/site-vars.example.yml @@ -25,7 +25,7 @@ corp_nic_mac: "" # e.g. "20:88:10:af:0d:e5" # Recommended: who may reach SSH and the webapp (9009) on the corp NIC. # Empty = all of GE (a warning every run). See docs/SITE-CUSTOMIZATION.md. -# corp_admin_cidrs: ["10.134.48.0/24"] +# corp_admin_cidrs: ["10.12.34.0/24"] # Keys only from the GE side (needs ~pxe/.ssh/authorized_keys first): # corp_ssh_password_auth: false @@ -48,3 +48,10 @@ corp_nic_mac: "" # e.g. "20:88:10:af:0d:e5" # not a real one. 8-64 characters from A-Z a-z 0-9 . _ ~ - (default # "clonezilla-backup"). # clonezilla_smb_password: "change-me-per-site" + +# Recommended: the site name stamped on Blancco erasure reports and the +# monthly CMMC evidence packs (empty: "Unnamed site"). Letters, digits, +# spaces and . , - ( ) & / only. +# site_name: "Example Site" +# Optional: time zone of the server clock and the webapp (tz database name). +# site_timezone: "America/New_York" diff --git a/playbook/startnet.cmd b/playbook/startnet.cmd index 9dda5a1..9b2c955 100644 --- a/playbook/startnet.cmd +++ b/playbook/startnet.cmd @@ -48,20 +48,17 @@ echo Please select an option: echo. echo 1. GEA Standard echo 2. GEA Engineer -echo 3. GEA Shopfloor (sub-menu) +echo 3. GEA Shopfloor echo. echo ======================================== echo. set /p choice=Enter your choice (1-3): -REM --- Shopfloor images (3,6,7) need GCCH enrollment + (for 3) PC-type sub-menu. -REM Choice 3 = GEA Shopfloor: drill into sub-menu first to pick the gea-shopfloor-* -REM sub-category, THEN the office menu, THEN machine number for collections+nocollections. +REM --- Choice 3 = GEA Shopfloor: one generic type, gea-shopfloor-standard, then +REM the GCCH enrollment (PPKG) menu. set PPKG= set PCCONFIG= -if "%choice%"=="3" goto gea_shopfloor_submenu -if "%choice%"=="6" goto enroll_menu -if "%choice%"=="7" goto enroll_menu +if "%choice%"=="3" goto gea_shopfloor_type REM Standard and engineer enrol through the vendor orchestrator, which asks for REM tenant + PC purpose with a GUI at first logon. Ask here instead, while the REM tech who knows what the machine is for is standing at it, and pre-seed the @@ -113,133 +110,10 @@ echo. echo PC config: %PCCONFIG% goto enroll_staged -:gea_shopfloor_submenu -cls -set PCTYPE= -REM Data-driven PC-type menu: the PXE webapp maintains menu.json on the -REM enrollment share; select-shopfloor-type.ps1 renders it and writes the -REM chosen PCTYPE to X:\pctype.txt. Falls back to the baked-in menu below if -REM the share or the picker is unavailable (mirrors the CMM bay picker). -net use Y: \\%PXESERVER%\enrollment /user:%SHAREUSER% %SHAREPASS% /persistent:no >NUL 2>NUL -del X:\pctype.txt 2>NUL -if exist "Y:\shopfloor-setup\select-shopfloor-type.ps1" powershell.exe -NoProfile -ExecutionPolicy Bypass -File "Y:\shopfloor-setup\select-shopfloor-type.ps1" -MenuJson "Y:\shopfloor-setup\menu.json" -OutFile "X:\pctype.txt" -if exist X:\pctype.txt set /p PCTYPE=NUL 2>NUL -del X:\cmm-bay.txt 2>NUL -set CMMID= -set CMMVARIANT=standard -if not exist "Y:\installers-post\cmm\select-cmm-bay.ps1" goto cmm_picker_skip -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "Y:\installers-post\cmm\select-cmm-bay.ps1" -ConfigPath "Y:\installers-post\cmm\cmm-bay-config.csv" -OutFile "X:\cmm-bay.txt" -:cmm_picker_skip -if exist X:\cmm-bay.txt set /p CMMID= /shopdb/shopfloor, Lobby -> /shopdb/tv, -REM 3DPrintRoom -> /shopdb/parts-kiosk -REM They are written to C:\Enrollment\display-type.txt and the dispatcher reads -REM that as its fallback when the server has no IP-based role for the device, so -REM the spelling must match the map exactly. 3DPrintRoom was in the map but had -REM no menu entry, so a parts kiosk could only be set by hand after imaging. -set DISPLAYTYPE= -set /p disp_choice=Enter your choice (1-3): -if "%disp_choice%"=="1" set DISPLAYTYPE=Dashboard -if "%disp_choice%"=="2" set DISPLAYTYPE=Lobby -if "%disp_choice%"=="3" set DISPLAYTYPE=3DPrintRoom -if "%DISPLAYTYPE%"=="" goto display_submenu +:gea_shopfloor_type +REM One generic shopfloor type: an (empty) app list during setup, the PPKG, an +REM (empty) post-PPKG app list, then the ShopFloor lockdown handover. +set PCTYPE=gea-shopfloor-standard goto enroll_menu :enroll_menu @@ -319,60 +193,9 @@ if not "%TARGET_PPKG%"=="" ( ) ) -REM --- 2026-05-04 rename reorg: PCTYPE is set by gea_shopfloor_submenu above -REM (single string, e.g. gea-shopfloor-collections). pc-subtype.txt is no -REM longer written. DISPLAYTYPE IS still written (display-type.txt) when -REM PCTYPE=gea-shopfloor-display because Install-KioskApp.cmd needs Lobby -REM vs Dashboard to choose installer + Get-PCProfile builds Display-{type} -REM profile key. -set PCSUBTYPE= - -REM --- Machine number / asset tag (only PC types that key per-machine config) --- -REM collections + nocollections = 4-digit machine number for shopfloor identification. -REM waxtrace = asset tag like WJRP2335 used to match per-machine cal ISO during -REM 09-Setup-WaxAndTrace.ps1. Cal ISO files are named -REM CAL-{asset_tag}_serial-*_probe-*.iso. -set MACHINENUM=9999 -if /i "%PCTYPE%"=="gea-shopfloor-collections" goto prompt_machinenum -if /i "%PCTYPE%"=="gea-shopfloor-nocollections" goto prompt_machinenum -if /i "%PCTYPE%"=="gea-shopfloor-heattreat" goto prompt_machinenum -if /i "%PCTYPE%"=="gea-shopfloor-waxtrace" goto prompt_waxtrace_asset -if /i "%PCTYPE%"=="gea-shopfloor-cmm" goto skip_machinenum -goto skip_machinenum -:prompt_machinenum -echo. -set /p MACHINENUM=Enter machine number (digits, or Enter for 9999): -if "%MACHINENUM%"=="" set MACHINENUM=9999 -echo Machine number: %MACHINENUM% -goto skip_machinenum -:prompt_waxtrace_asset -echo. -echo Loading Wax/Trace bay list from PXE share... -REM Mount enrollment share early so the picker can read INDEX.csv. Later -REM net use Y: will be a no-op if Y: is already mapped. -net use Y: \\%PXESERVER%\enrollment /user:%SHAREUSER% %SHAREPASS% /persistent:no >NUL 2>NUL -del X:\waxtrace-asset.txt 2>NUL -if not exist "Y:\installers-post\waxtrace\select-waxtrace-asset.ps1" goto waxtrace_picker_skip -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "Y:\installers-post\waxtrace\select-waxtrace-asset.ps1" -IndexPath "Y:\installers-post\waxtrace\bay-config.csv" -OutFile "X:\waxtrace-asset.txt" -:waxtrace_picker_skip -set MACHINENUM= -if exist X:\waxtrace-asset.txt set /p MACHINENUM=\Deploy\Applications to -REM the target, recursively, with no filtering and no manifest (see -REM docs/PESETUP-INTERNALS.md). One shared shopfloor media therefore hands -REM every shopfloor payload to every bay whatever its type. -REM _media\ is that same media rebuilt out of symlinks by -REM scripts/build-pctype-media.py, carrying only this type's payload. It is -REM built once, server-side, and never mutated per session: bays image -REM concurrently and CopyPackages is fail-fast, so changing a path mid-copy -REM would fail some OTHER bay's imaging. -if "%PCTYPE%"=="" goto gea_shopfloor_media_shared -REM Free Z: first. A leftover mapping makes net use fail with "device already -REM in use" and the probe below would then pass against the OLD media. -net use Z: /delete /y >NUL 2>&1 -net use Z: \\%PXESERVER%\winpeapps\_media\%PCTYPE% /user:%SHAREUSER% %SHAREPASS% /persistent:no >NUL 2>&1 -REM Probe a file that only resolves when the view exists AND its symlinks are -REM intact. A dangling view must not image silently off a half-mapped drive. -if exist "Z:\Deploy\Control\HardwareDriver.json" goto end -echo. -echo WARNING: no usable per-type media at _media\%PCTYPE%. -echo Falling back to the shared shopfloor media, so EVERY shopfloor -echo payload will be staged on this bay, not just this type's. -echo Imaging is otherwise unaffected. Tell the PXE admin. -echo. -net use Z: /delete /y >NUL 2>&1 - -:gea_shopfloor_media_shared net use Z: \\%PXESERVER%\winpeapps\gea-shopfloor /user:%SHAREUSER% %SHAREPASS% /persistent:no goto end @@ -550,7 +346,7 @@ REM the >> redirect after the screen echo. robocopy /LOG+ appends its REM own output directly. set STAGELOG=%OSDRIVE%\Enrollment\winpe-staging.log echo [%DATE% %TIME%] WinPE staging started >> "%STAGELOG%" -echo PCTYPE=%PCTYPE% PPKG=%PPKG% MACHINENUM=%MACHINENUM% CMMID=%CMMID% PCCONFIG=%PCCONFIG% >> "%STAGELOG%" +echo PCTYPE=%PCTYPE% PPKG=%PPKG% PCCONFIG=%PCCONFIG% >> "%STAGELOG%" REM --- Pre-seed the tenant + PC purpose for the enrollment orchestrator ----- REM Start-BulkEnrollOrchestrator.ps1 asks for this with a GUI at first logon @@ -569,21 +365,6 @@ if not "%PCCONFIG%"=="" ( echo [%TIME%] Wrote pc-config.txt=%PCCONFIG% >> "%STAGELOG%" ) -REM --- Copy site config (drives site-specific values in all setup scripts) --- -if exist "Y:\config\site-config.json" ( - robocopy "Y:\config" "%OSDRIVE%\Enrollment" "site-config.json" /R:1 /W:1 /NFL /NDL /NJH /NJS - if errorlevel 8 ( - echo WARNING: site-config.json robocopy FAILED - not staged. - echo [%TIME%] FAILED: site-config.json robocopy >> "%STAGELOG%" - ) else ( - echo Copied site-config.json. - echo [%TIME%] Copied site-config.json >> "%STAGELOG%" - ) -) else ( - echo WARNING: site-config.json not found on enrollment share. - echo [%TIME%] WARNING: site-config.json not found >> "%STAGELOG%" -) - REM --- Copy PPKG if selected (renames from SOURCE to BPRT-tagged filename) --- if "%PPKG%"=="" goto copy_pctype robocopy "Y:\ppkgs" "%OSDRIVE%\Enrollment" "%SOURCE_PPKG%" /R:1 /W:1 /NFL /NDL /NJH /NJS @@ -615,36 +396,6 @@ echo Manual fallback created at %OSDRIVE%\enroll.cmd REM --- Copy shopfloor PC type setup scripts --- if "%PCTYPE%"=="" goto cleanup_enroll echo %PCTYPE%> %OSDRIVE%\Enrollment\pc-type.txt -REM 2026-05-04 rename reorg: pc-subtype.txt no longer written. -REM display-type.txt IS still written for gea-shopfloor-display because -REM Install-KioskApp.cmd reads it to pick Lobby vs Dashboard installer -REM and Get-PCProfile.ps1 reads it to build the Display-{type} profile key. -if not "%DISPLAYTYPE%"=="" echo %DISPLAYTYPE%> %OSDRIVE%\Enrollment\display-type.txt -if not "%MACHINENUM%"=="" echo %MACHINENUM%> %OSDRIVE%\Enrollment\machine-number.txt -REM Keyence model goes to BOTH keyence-model.txt (read by 09-Setup-Keyence) AND -REM pc-subtype.txt (read by GE-Enforce for per-model dispatch via existing -REM PCSubType wiring: looks for gea-shopfloor-keyence-\manifest.json on share). -if not "%KEYENCEMODEL%"=="" ( - echo %KEYENCEMODEL%> %OSDRIVE%\Enrollment\keyence-model.txt - echo %KEYENCEMODEL%> %OSDRIVE%\Enrollment\pc-subtype.txt -) -REM CMM bay ID + resolved config. CMMID comes from the bay picker (e.g. CMM4). -REM Written to machine-number.txt (same field collections/waxtrace use) so -REM TargetMachineNumbers on the SFLD share manifest gates per-bay entries. -REM resolve-cmm-bay-config.ps1 reads the CSV and writes version.txt + doda.txt -REM to %OSDRIVE%\Enrollment\cmm\ for 09-Setup-CMM.ps1 to consume. -if "%CMMID%"=="" goto cmm_id_done -echo %CMMID%> %OSDRIVE%\Enrollment\machine-number.txt -mkdir %OSDRIVE%\Enrollment\cmm 2>NUL -if exist "Y:\installers-post\cmm\resolve-cmm-bay-config.ps1" ( - powershell.exe -NoProfile -ExecutionPolicy Bypass -File "Y:\installers-post\cmm\resolve-cmm-bay-config.ps1" -ConfigPath "Y:\installers-post\cmm\cmm-bay-config.csv" -CmmId "%CMMID%" -OutDir "%OSDRIVE%\Enrollment\cmm" -) -REM Read doda flag to set pc-subtype.txt for GE-Enforce manifest gating. -REM goto-flow avoids CMD variable scoping issues inside parens blocks. -if not exist %OSDRIVE%\Enrollment\cmm\doda.txt goto cmm_id_done -set /p CMMDODA=<%OSDRIVE%\Enrollment\cmm\doda.txt -if /i "%CMMDODA%"=="yes" echo doda> %OSDRIVE%\Enrollment\pc-subtype.txt -:cmm_id_done robocopy "Y:\shopfloor-setup" "%OSDRIVE%\Enrollment" "Run-ShopfloorSetup.ps1" /R:1 /W:1 /NFL /NDL /NJH /NJS REM Post-boot bulk re-fetch. WinPE staging below is best-effort (it can fail if REM the Y: mount went idle-dead during the WIM apply); Fetch-StagingPayload.ps1 @@ -662,7 +413,6 @@ echo %SHAREPASS% ) REM --- Always copy Shopfloor baseline scripts --- mkdir %OSDRIVE%\Enrollment\shopfloor-setup 2>NUL -robocopy "Y:\shopfloor-setup" "%OSDRIVE%\Enrollment\shopfloor-setup" "backup_lockdown.bat" /R:1 /W:1 /NFL /NDL /NJH /NJS if exist "Y:\shopfloor-setup\Shopfloor" ( mkdir %OSDRIVE%\Enrollment\shopfloor-setup\Shopfloor 2>NUL robocopy "Y:\shopfloor-setup\Shopfloor" "%OSDRIVE%\Enrollment\shopfloor-setup\Shopfloor" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" @@ -678,52 +428,12 @@ if exist "Y:\shopfloor-setup\Shopfloor" ( echo [%TIME%] Copied Shopfloor baseline >> "%STAGELOG%" ) ) -REM --- Always copy common/ (cross-PC-type GE-Enforce dispatcher + lib live here post-v2) --- -if exist "Y:\shopfloor-setup\common" ( - mkdir %OSDRIVE%\Enrollment\shopfloor-setup\common 2>NUL - robocopy "Y:\shopfloor-setup\common" "%OSDRIVE%\Enrollment\shopfloor-setup\common" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" - if errorlevel 8 ( - echo WARNING: shopfloor-setup\common robocopy FAILED - nothing copied. - echo [%TIME%] FAILED: common robocopy >> "%STAGELOG%" - ) else ( - echo Copied common setup files. - echo [%TIME%] Copied common >> "%STAGELOG%" - ) -) -REM --- Copy _ntlars-backups (147 per-bay .reg files restored by gea-shopfloor-{collections,nocollections}\03-RestoreEDncConfig.ps1) --- -REM Same root level as common/, referenced by 03-RestoreEDncConfig.ps1 via Join-Path $PSScriptRoot '..\_ntlars-backups'. -if exist "Y:\shopfloor-setup\_ntlars-backups" ( - mkdir %OSDRIVE%\Enrollment\shopfloor-setup\_ntlars-backups 2>NUL - robocopy "Y:\shopfloor-setup\_ntlars-backups" "%OSDRIVE%\Enrollment\shopfloor-setup\_ntlars-backups" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" - if errorlevel 8 ( - echo WARNING: _ntlars-backups robocopy FAILED - nothing copied. - echo [%TIME%] FAILED: _ntlars-backups robocopy >> "%STAGELOG%" - ) else ( - echo Copied _ntlars-backups. - echo [%TIME%] Copied _ntlars-backups >> "%STAGELOG%" - ) -) -REM --- Copy type-specific scripts on top of baseline --- -if exist "Y:\shopfloor-setup\%PCTYPE%" ( - mkdir "%OSDRIVE%\Enrollment\shopfloor-setup\%PCTYPE%" 2>NUL - robocopy "Y:\shopfloor-setup\%PCTYPE%" "%OSDRIVE%\Enrollment\shopfloor-setup\%PCTYPE%" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" - if errorlevel 8 ( - echo WARNING: shopfloor-setup\%PCTYPE% robocopy FAILED - nothing copied. - echo [%TIME%] FAILED: %PCTYPE% type-specific robocopy >> "%STAGELOG%" - ) else ( - echo Copied %PCTYPE% setup files. - echo [%TIME%] Copied %PCTYPE% type-specific >> "%STAGELOG%" - ) -) else ( - echo WARNING: No setup files found for PC type %PCTYPE%. - echo [%TIME%] WARNING: No setup files for %PCTYPE% >> "%STAGELOG%" -) - -REM --- Stage preinstall bundle (apps installed locally to save Azure bandwidth) --- +REM --- Stage the site app lists + installers (pre-install = during setup, +REM postppkg = after the post-PPKG reboot; both empty in the generic build) --- if exist "Y:\pre-install\preinstall.json" ( mkdir %OSDRIVE%\PreInstall 2>NUL mkdir %OSDRIVE%\PreInstall\installers 2>NUL - robocopy "Y:\pre-install" "%OSDRIVE%\PreInstall" "preinstall.json" /R:1 /W:1 /NFL /NDL /NJH /NJS + robocopy "Y:\pre-install" "%OSDRIVE%\PreInstall" "preinstall.json" "postppkg.json" /R:1 /W:1 /NFL /NDL /NJH /NJS if exist "Y:\pre-install\installers" ( robocopy "Y:\pre-install\installers" "%OSDRIVE%\PreInstall\installers" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" if errorlevel 8 ( @@ -735,148 +445,10 @@ if exist "Y:\pre-install\preinstall.json" ( ) else ( echo WARNING: Y:\pre-install\installers not found - preinstall.json staged without installers. ) - if exist "Y:\pre-install\udc-backups" ( - robocopy "Y:\pre-install\udc-backups" "%OSDRIVE%\PreInstall\udc-backups" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" - if errorlevel 8 ( - echo WARNING: pre-install\udc-backups robocopy FAILED - nothing staged. - ) else ( - echo Staged UDC settings backups to %OSDRIVE%\PreInstall\udc-backups. - ) - echo [%TIME%] Staged UDC backups >> "%STAGELOG%" - ) ) else ( echo No preinstall bundle on PXE server - skipping. ) -REM --- Stage CMM bootstrap bundle (CMM-type PCs only) --- -REM Copies the Hexagon installer bundle (~1.9 GB) from the PXE server enrollment -REM share onto the target disk so 09-Setup-CMM.ps1 can install from local disk. -REM The tsgwp00525 SFLD share that holds the canonical copy is not yet reachable -REM during shopfloor-setup (Azure DSC provisions those creds later), so this -REM bootstrap exists to get the first-install through. Post-imaging, the -REM unified GE-Enforce dispatcher takes over from the share for ongoing updates. -if /i not "%PCTYPE%"=="gea-shopfloor-cmm" goto skip_cmm_stage -if exist "Y:\installers-post\cmm\cmm-manifest.json" ( - mkdir %OSDRIVE%\CMM-Install 2>NUL - REM /XD the backups tree: it holds EVERY bay's settings backup (some 240 MB - REM each). Copying all of it to every imaged CMM would waste GBs. The bulk - REM copy excludes it; the selected bay's backup is staged separately below. - robocopy "Y:\installers-post\cmm" "%OSDRIVE%\CMM-Install" /E /XD "Y:\installers-post\cmm\backups" /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" - if errorlevel 8 ( - echo WARNING: cmm robocopy FAILED - CMM bootstrap NOT staged. - ) else ( - echo Staged CMM bootstrap to %OSDRIVE%\CMM-Install. - ) - echo [%TIME%] Staged CMM bootstrap >> "%STAGELOG%" -) else ( - echo WARNING: Y:\cmm-installers not found - CMM PC cannot install Hexagon apps at imaging time. -) -REM Stage ONLY the selected bay's settings backup. 09-Setup-CMM's Restore-CMM -REM reads %OSDRIVE%\CMM-Install\backups\%CMMID%\ to restore PC-DMIS + goCMM settings. -if not defined CMMID goto skip_cmm_stage -if exist "Y:\installers-post\cmm\backups\%CMMID%" ( - robocopy "Y:\installers-post\cmm\backups\%CMMID%" "%OSDRIVE%\CMM-Install\backups\%CMMID%" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" - if errorlevel 8 ( - echo WARNING: %CMMID% backup robocopy FAILED - settings will NOT restore. - echo [%TIME%] FAILED: %CMMID% backup robocopy >> "%STAGELOG%" - ) else ( - echo Staged %CMMID% settings backup for restore. - echo [%TIME%] Staged %CMMID% backup >> "%STAGELOG%" - ) -) -:skip_cmm_stage - -REM --- Stage Keyence per-model bootstrap bundle (Keyence PCs only) --- -REM Copies only the selected model's MSI + Data cabs from the PXE enrollment -REM share to the target disk. installers-post/keyence// contains: -REM manifest.json -REM installers/{MSI, Data1.cab, [Data11.cab for vr3000], 1033.mst} -REM drivers/ (vr6000 only - older external .inf; vr3000/vr5000 drivers -REM are embedded in their MSIs) -REM 09-Setup-Keyence.ps1 reads C:\Enrollment\keyence-model.txt to know which. -if /i not "%PCTYPE%"=="gea-shopfloor-keyence" goto skip_keyence_stage -if "%KEYENCEMODEL%"=="" goto skip_keyence_stage -if exist "Y:\installers-post\keyence\%KEYENCEMODEL%\manifest.json" ( - mkdir %OSDRIVE%\KeyenceInstall 2>NUL - mkdir %OSDRIVE%\KeyenceInstall\%KEYENCEMODEL% 2>NUL - robocopy "Y:\installers-post\keyence\%KEYENCEMODEL%" "%OSDRIVE%\KeyenceInstall\%KEYENCEMODEL%" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%" - if errorlevel 8 ( - echo WARNING: keyence\%KEYENCEMODEL% robocopy FAILED - nothing staged. - ) else ( - echo Staged Keyence %KEYENCEMODEL% bootstrap to %OSDRIVE%\KeyenceInstall\%KEYENCEMODEL%\. - ) - echo [%TIME%] Staged Keyence %KEYENCEMODEL% >> "%STAGELOG%" -) else ( - echo WARNING: Y:\installers-post\keyence\%KEYENCEMODEL% not found - Keyence %KEYENCEMODEL% cannot install at imaging time. -) -:skip_keyence_stage - -REM --- Stage WaxTrace bootstrap bundle (wax/trace gea-shopfloor-waxtrace only) --- -REM Three-step process: -REM 1. robocopy installers-post\waxtrace -> %OSDRIVE%\WaxTrace-Install (everything -REM EXCEPT the formtracepak\ subdir, via /XD - that subdir carries all -REM 7 vendor ISOs and we only need one of them) -REM 2. resolve-bay-config.ps1: reads bay-config.csv + asset_tag, writes -REM %OSDRIVE%\Enrollment\waxtrace\{version,model,userid}.txt for 09-Setup to read -REM 3. robocopy ONLY the bay's matching FORMTRACEPAK-V.iso from -REM Y:\installers-post\waxtrace\formtracepak\ onto the target disk -REM (so 09-Setup-WaxAndTrace.ps1 mounts the right version per bay) -if /i not "%PCTYPE%"=="gea-shopfloor-waxtrace" goto skip_waxtrace_stage -if not exist "Y:\installers-post\waxtrace\waxtrace-manifest.json" goto skip_waxtrace_missing -mkdir %OSDRIVE%\WaxTrace-Install 2>NUL -REM robocopy /XD excludes the formtracepak\ dir up front so we don't waste -REM disk + time copying 12+ GB of vendor ISOs only to delete them. The -REM matched FTPak ISO gets cherry-picked below into the same target dir. -REM /NFL/NDL keep the listing manageable; output left visible (no >NUL) so -REM any failure is debuggable from the install log. robocopy exit codes -REM 0-7 are "OK" (per Microsoft); 8+ is real failure. -robocopy "Y:\installers-post\waxtrace" "%OSDRIVE%\WaxTrace-Install" /E /XD formtracepak /MT:16 /R:1 /W:1 /NFL /NDL -REM Both tests read the robocopy result, so they must sit before any command -REM that sets its own errorlevel - mkdir does, which is why it moved below. -if errorlevel 8 echo WARNING: WaxTrace bootstrap robocopy FAILED - nothing staged. -if not errorlevel 8 echo Staged WaxTrace bootstrap minus formtracepak\ to %OSDRIVE%\WaxTrace-Install. -mkdir %OSDRIVE%\WaxTrace-Install\formtracepak 2>NUL -REM Resolve bay-config: writes %OSDRIVE%\Enrollment\waxtrace\{version,model,userid}.txt -mkdir %OSDRIVE%\Enrollment\waxtrace 2>NUL -if not "%MACHINENUM%"=="" ( - powershell.exe -NoProfile -ExecutionPolicy Bypass -File "Y:\installers-post\waxtrace\resolve-bay-config.ps1" -Asset "%MACHINENUM%" -OutDir "%OSDRIVE%\Enrollment\waxtrace" -) else ( - echo WARNING: no MACHINENUM set - skipping bay-config resolve. 09-Setup-WaxAndTrace will abort cleanly with no version. -) -REM Read the resolved version + robocopy ONLY that FTPak ISO (avoids dumping -REM 12 GB of ISOs on the bay disk; only the matched ~2 GB ISO lands locally). -set WTVER= -if exist %OSDRIVE%\Enrollment\waxtrace\version.txt set /p WTVER=<%OSDRIVE%\Enrollment\waxtrace\version.txt -if not "%WTVER%"=="" ( - if exist "Y:\installers-post\waxtrace\formtracepak\FORMTRACEPAK-V%WTVER%.iso" ( - REM robocopy /J = unbuffered I/O, meaningfully faster than xcopy on - REM 2 GB FTPak ISOs over SMB. Single-file syntax: source dir, dest - REM dir, file pattern. - robocopy "Y:\installers-post\waxtrace\formtracepak" "%OSDRIVE%\WaxTrace-Install\formtracepak" "FORMTRACEPAK-V%WTVER%.iso" /J /R:1 /W:1 /NFL /NDL - echo Staged FormTracePak V%WTVER%.iso for %MACHINENUM%. - ) else ( - echo WARNING: No FORMTRACEPAK-V%WTVER%.iso on share for %MACHINENUM% - 09-Setup-WaxAndTrace will abort cleanly with the version-mismatch error. - ) -) else ( - echo WARNING: bay-config did not resolve a FTPak version for %MACHINENUM%. -) -REM Per-asset backup ZIPs land at %OSDRIVE%\WaxTrace-Install\backups\.zip -REM as part of the robocopy bundle above (backups\ is not in the /XD list). -REM 09-Setup-WaxAndTrace.ps1 Step 3b reads C:\WaxTrace-Install\backups\ -REM .zip post-vendor-MSI and runs Install-FormtracepakSettings.ps1 -REM -RestoreData -RestoreConfig. Total ~17 MB on disk for the whole set, no -REM cherry-pick needed. -if not "%MACHINENUM%"=="" ( - if exist "%OSDRIVE%\WaxTrace-Install\backups\%MACHINENUM%.zip" ( - echo Backup ZIP %MACHINENUM%.zip is in the bundle - 09-Setup Step 3b will restore. - ) else ( - echo INFO: No backup ZIP for %MACHINENUM% in %OSDRIVE%\WaxTrace-Install\backups - 09-Setup will skip the restore step. - ) -) -goto skip_waxtrace_stage -:skip_waxtrace_missing -echo WARNING: Y:\installers-post\waxtrace not found - WaxTrace PC cannot install FormTracePak at imaging time. -:skip_waxtrace_stage :pctype_done if defined STAGELOG echo [%TIME%] WinPE staging complete >> "%STAGELOG%" @@ -891,23 +463,23 @@ if "%PCTYPE%"=="" goto verify_done set STAGEBAD= if not exist "%OSDRIVE%\Enrollment\pc-type.txt" set STAGEBAD=%STAGEBAD% pc-type.txt if not exist "%OSDRIVE%\Enrollment\Run-ShopfloorSetup.ps1" set STAGEBAD=%STAGEBAD% Run-ShopfloorSetup.ps1 -if not exist "%OSDRIVE%\Enrollment\shopfloor-setup\common" set STAGEBAD=%STAGEBAD% shopfloor-setup\common -if not exist "%OSDRIVE%\Enrollment\shopfloor-setup\%PCTYPE%" set STAGEBAD=%STAGEBAD% shopfloor-setup\%PCTYPE% +if not exist "%OSDRIVE%\Enrollment\shopfloor-setup\Shopfloor\lib\Monitor-IntuneProgress.ps1" set STAGEBAD=%STAGEBAD% shopfloor-setup\Shopfloor +if not exist "%OSDRIVE%\PreInstall\preinstall.json" set STAGEBAD=%STAGEBAD% PreInstall\preinstall.json if "%STAGEBAD%"=="" goto verify_ppkg echo. echo Staging verify: missing%STAGEBAD% - retrying once... echo [%TIME%] VERIFY: missing%STAGEBAD% - retry >> "%STAGELOG%" robocopy "Y:\shopfloor-setup" "%OSDRIVE%\Enrollment" "Run-ShopfloorSetup.ps1" /R:2 /W:2 /NFL /NDL /NJH /NJS -robocopy "Y:\shopfloor-setup\common" "%OSDRIVE%\Enrollment\shopfloor-setup\common" /E /MT:16 /R:2 /W:2 /NFL /NDL /NJH /NJS -robocopy "Y:\shopfloor-setup\%PCTYPE%" "%OSDRIVE%\Enrollment\shopfloor-setup\%PCTYPE%" /E /MT:16 /R:2 /W:2 /NFL /NDL /NJH /NJS +robocopy "Y:\shopfloor-setup\Shopfloor" "%OSDRIVE%\Enrollment\shopfloor-setup\Shopfloor" /E /MT:16 /R:2 /W:2 /NFL /NDL /NJH /NJS +robocopy "Y:\pre-install" "%OSDRIVE%\PreInstall" "preinstall.json" "postppkg.json" /R:2 /W:2 /NFL /NDL /NJH /NJS if not exist "%OSDRIVE%\Enrollment\pc-type.txt" echo %PCTYPE%> %OSDRIVE%\Enrollment\pc-type.txt set STAGEBAD= if not exist "%OSDRIVE%\Enrollment\pc-type.txt" set STAGEBAD=%STAGEBAD% pc-type.txt if not exist "%OSDRIVE%\Enrollment\Run-ShopfloorSetup.ps1" set STAGEBAD=%STAGEBAD% Run-ShopfloorSetup.ps1 -if not exist "%OSDRIVE%\Enrollment\shopfloor-setup\common" set STAGEBAD=%STAGEBAD% shopfloor-setup\common -if not exist "%OSDRIVE%\Enrollment\shopfloor-setup\%PCTYPE%" set STAGEBAD=%STAGEBAD% shopfloor-setup\%PCTYPE% +if not exist "%OSDRIVE%\Enrollment\shopfloor-setup\Shopfloor\lib\Monitor-IntuneProgress.ps1" set STAGEBAD=%STAGEBAD% shopfloor-setup\Shopfloor +if not exist "%OSDRIVE%\PreInstall\preinstall.json" set STAGEBAD=%STAGEBAD% PreInstall\preinstall.json if "%STAGEBAD%"=="" ( echo Staging verify: retry fixed it. echo [%TIME%] VERIFY: retry succeeded >> "%STAGELOG%" @@ -991,10 +563,6 @@ REM without cross-referencing the webapp. echo Serial=%SERIAL% echo PCTYPE=%PCTYPE% echo PPKG=%PPKG% -echo MACHINENUM=%MACHINENUM% -echo CMMID=%CMMID% -echo KEYENCEMODEL=%KEYENCEMODEL% -echo DISPLAYTYPE=%DISPLAYTYPE% echo OSDRIVE=%OSDRIVE% echo Media=%MEDIAPATH% echo Date=%DATE% %TIME% diff --git a/playbook/sync-cmm-backups.sh b/playbook/sync-cmm-backups.sh deleted file mode 100755 index c41c7ea..0000000 --- a/playbook/sync-cmm-backups.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# sync-cmm-backups.sh - stage per-CMM backups (goCMM + PC-DMIS) on the PXE -# enrollment share so 09-Setup-CMM can restore them by CMM machine-# at imaging. -# (Distinct from sync-cmm.sh, which stages the CMM *installers* bundle.) -# -# Source layout - one folder per CMM, named by the cmm_id in cmm-bay-config.csv, -# produced by Backup-CMM.ps1 and mirrored here from the live bays: -# /home/camp/pxe-images/cmm/backups// -# gocmm_backup__.zip -# pcdmis_backup___.zip (one per installed PC-DMIS version) -# cmm-backup-index.json -# -# Pushes the NEWEST backup set per cmm_id to: -# /srv/samba/enrollment/installers-post/cmm/backups// -# -# DODA bays ARE backed up + restored like any other now (the old skip-on-doda -# policy in Restore-CMM was dropped 2026-06-17). Stage them here the same way. -# -# Usage: ./playbook/sync-cmm-backups.sh (all cmm_id folders) -# CMM_ID=CMM3 ./playbook/sync-cmm-backups.sh (just one) -set -euo pipefail - -PXE_HOST="${PXE_HOST:-172.16.9.1}" -PXE_USER="${PXE_USER:-pxe}" -PXE_PASS="${PXE_PASS:-pxe}" -BACKUP_SRC_DIR="${CMM_BACKUP_DIR:-/home/camp/pxe-images/cmm/backups}" -REMOTE_BASE="/srv/samba/enrollment/installers-post/cmm/backups" -ONLY_ID="${CMM_ID:-}" - -ssh_run() { sshpass -p "$PXE_PASS" ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR "$PXE_USER@$PXE_HOST" "$@"; } -scp_to() { sshpass -p "$PXE_PASS" scp -o StrictHostKeyChecking=no -o LogLevel=ERROR "$@"; } - -command -v sshpass >/dev/null || { echo "sshpass required (apt install sshpass)"; exit 1; } -[ -d "$BACKUP_SRC_DIR" ] || { echo "No backup source dir: $BACKUP_SRC_DIR"; echo "Run Backup-CMM on the bays and mirror each cmm-backup\\\\ folder here."; exit 1; } -ping -c1 -W2 "$PXE_HOST" >/dev/null 2>&1 || { echo "PXE host $PXE_HOST unreachable"; exit 1; } - -count=0 -for cmm_dir in "$BACKUP_SRC_DIR"/*/; do - [ -d "$cmm_dir" ] || continue - cmm_id="$(basename "$cmm_dir")" - [ -n "$ONLY_ID" ] && [ "$cmm_id" != "$ONLY_ID" ] && continue - - # newest goCMM zip + every pcdmis zip (one per version) + the index - mapfile -t zips < <(ls -1t "$cmm_dir"/gocmm_backup_*.zip 2>/dev/null | head -1; \ - ls -1t "$cmm_dir"/pcdmis_backup_*.zip 2>/dev/null) - if [ ${#zips[@]} -eq 0 ]; then echo " [$cmm_id] no backup zips - skipping"; continue; fi - - echo "==> [$cmm_id] staging ${#zips[@]} zip(s)" - REMOTE_TMP="/tmp/cmm-bk-stage-$cmm_id-$$" - ssh_run "rm -rf '$REMOTE_TMP' && mkdir -p '$REMOTE_TMP'" - for z in "${zips[@]}"; do scp_to "$z" "$PXE_USER@$PXE_HOST:$REMOTE_TMP/"; done - [ -f "$cmm_dir/cmm-backup-index.json" ] && scp_to "$cmm_dir/cmm-backup-index.json" "$PXE_USER@$PXE_HOST:$REMOTE_TMP/" - - # atomic swap into the share (root-owned -> sudo); keep a timestamped copy of the prior set - ssh_run "echo $PXE_PASS | sudo -S bash -c ' - mkdir -p \"$REMOTE_BASE\" - dst=\"$REMOTE_BASE/$cmm_id\" - if [ -d \"\$dst\" ]; then mv \"\$dst\" \"\${dst}.pre-\$(date +%Y%m%d-%H%M%S)\"; fi - mv \"$REMOTE_TMP\" \"\$dst\" - chown -R pxe:pxe \"\$dst\" - ls -la \"\$dst\" - '" - count=$((count+1)) -done - -echo "==> Done. Staged $count CMM backup set(s) to $PXE_USER@$PXE_HOST:$REMOTE_BASE" -echo " 09-Setup-CMM restores at imaging when that CMM is picked (and doda=no)." diff --git a/playbook/sync-cmm.sh b/playbook/sync-cmm.sh deleted file mode 100755 index f90641a..0000000 --- a/playbook/sync-cmm.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash -# sync-cmm.sh - Push CMM bootstrap bundle to the PXE server enrollment share. -# -# Copies the Hexagon installers + cmm-manifest.json from the local workstation -# to /srv/samba/enrollment/cmm-installers on the PXE server. That directory -# becomes visible as \\172.16.9.1\enrollment\cmm-installers so startnet.cmd -# can xcopy it onto the target disk during WinPE phase. -# -# Run this on the workstation (not on the PXE server) any time: -# - You update cmm-manifest.json in playbook/shopfloor-setup/CMM/ -# - You drop new/updated installers into /home/camp/pxe-images/cmm/hexagon/ -# -# Same pattern as sync-preinstall.sh. The remote tree is updated in place and -# the next imaged CMM PC picks up the new files automatically. -# -# Usage: -# ./playbook/sync-cmm.sh -# -# Requires: sshpass (apt install sshpass), scp, ssh - -set -euo pipefail - -# --- Config --- -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - -PXE_HOST="${PXE_HOST:-172.16.9.1}" -PXE_USER="${PXE_USER:-pxe}" -PXE_PASS="${PXE_PASS:-pxe}" - -MANIFEST_SRC="$PROJECT_ROOT/playbook/shopfloor-setup/CMM/cmm-manifest.json" -INSTALLERS_SRC="${CMM_INSTALLERS_DIR:-/home/camp/pxe-images/cmm/hexagon}" - -REMOTE_DIR="/srv/samba/enrollment/cmm-installers" -REMOTE_TEMP="/tmp/cmm-stage" - -# --- Helpers --- -ssh_run() { - sshpass -p "$PXE_PASS" ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR "$PXE_USER@$PXE_HOST" "$@" -} - -scp_to() { - sshpass -p "$PXE_PASS" scp -o StrictHostKeyChecking=no -o LogLevel=ERROR "$1" "$PXE_USER@$PXE_HOST:'$2'" -} - -# --- Validate sources --- -echo "Validating source files..." - -if [ ! -f "$MANIFEST_SRC" ]; then - echo "ERROR: cmm-manifest.json not found at $MANIFEST_SRC" >&2 - exit 1 -fi -printf " OK %10d cmm-manifest.json\n" "$(stat -c %s "$MANIFEST_SRC")" - -if [ ! -d "$INSTALLERS_SRC" ]; then - echo "ERROR: installers dir not found: $INSTALLERS_SRC" >&2 - echo " Set CMM_INSTALLERS_DIR env var to override the default" >&2 - exit 1 -fi - -installers=() -while IFS= read -r f; do - installers+=("$f") -done < <(find "$INSTALLERS_SRC" -maxdepth 1 -type f \( -name '*.exe' -o -name '*.msi' \) | sort) - -if [ "${#installers[@]}" -eq 0 ]; then - echo "ERROR: no .exe or .msi files under $INSTALLERS_SRC" >&2 - exit 1 -fi - -total_bytes=0 -for f in "${installers[@]}"; do - size=$(stat -c %s "$f") - total_bytes=$((total_bytes + size)) - printf " OK %10d %s\n" "$size" "$(basename "$f")" -done -printf " Total payload: %d bytes (%.1f GB)\n" "$total_bytes" "$(echo "scale=2; $total_bytes/1073741824" | bc)" - -# --- Verify PXE server reachable --- -echo "Pinging PXE server $PXE_HOST..." -if ! ping -c 1 -W 2 "$PXE_HOST" >/dev/null 2>&1; then - echo "ERROR: PXE server $PXE_HOST not reachable" >&2 - exit 1 -fi - -# --- Stage files to /tmp on PXE, then sudo install to enrollment share --- -echo "Staging files to $PXE_HOST:$REMOTE_TEMP..." -ssh_run "rm -rf $REMOTE_TEMP && mkdir -p $REMOTE_TEMP/files" - -echo " -> cmm-manifest.json" -scp_to "$MANIFEST_SRC" "$REMOTE_TEMP/files/cmm-manifest.json" - -for f in "${installers[@]}"; do - base="$(basename "$f")" - echo " -> $base" - scp_to "$f" "$REMOTE_TEMP/files/$base" -done - -# --- Build remote install script (runs under sudo on PXE) --- -LOCAL_TEMP_SCRIPT="$(mktemp /tmp/sync-cmm-remote.XXXXXX.sh)" -trap 'rm -f "${LOCAL_TEMP_SCRIPT:-}"' EXIT - -cat > "$LOCAL_TEMP_SCRIPT" </ on the PXE server. -# -# This becomes visible as \\172.16.9.1\enrollment\installers-post\keyence\ -# so startnet.cmd can selectively xcopy the chosen model bundle onto the -# target disk during WinPE phase (W:\KeyenceInstall, becomes C:\KeyenceInstall -# post-reboot). -# -# Run on the workstation any time: -# - A per-model manifest changes -# - Big installer payloads (Data1.cab, etc) change -# -# Big payloads (Data1.cab, Data11.cab, MSIs) live in the repo under -# playbook/shopfloor-setup/gea-shopfloor-keyence//installers/ but -# are gitignored. Stage them locally from the ripped ISOs in -# /home/camp/pxe-images/iso/keyence/ before running this script. -# -# Requires: sshpass, scp, ssh - -set -euo pipefail - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - -PXE_HOST="${PXE_HOST:-172.16.9.1}" -PXE_USER="${PXE_USER:-pxe}" -PXE_PASS="${PXE_PASS:-pxe}" - -KEYENCE_DIR="$PROJECT_ROOT/playbook/shopfloor-setup/gea-shopfloor-keyence" -REMOTE_DIR="/srv/samba/enrollment/installers-post/keyence" -REMOTE_TEMP="/tmp/keyence-stage-$$" - -ssh_run() { - sshpass -p "$PXE_PASS" ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR "$PXE_USER@$PXE_HOST" "$@" -} - -scp_to() { - sshpass -p "$PXE_PASS" scp -o StrictHostKeyChecking=no -o LogLevel=ERROR "$@" -} - -# Sanity -for f in 09-Setup-Keyence.ps1 vr3000/manifest.json vr5000/manifest.json vr6000/manifest.json; do - test -f "$KEYENCE_DIR/$f" || { echo "Missing $KEYENCE_DIR/$f"; exit 1; } -done - -echo "==> Staging tree locally" -STAGE="$(mktemp -d -p /tmp keyence-stage.XXXXXX)" -trap "rm -rf $STAGE" EXIT - -for model in vr3000 vr5000 vr6000; do - mkdir -p "$STAGE/$model/installers" - cp "$KEYENCE_DIR/$model/manifest.json" "$STAGE/$model/" - if [ -d "$KEYENCE_DIR/$model/installers" ]; then - cp -a "$KEYENCE_DIR/$model/installers/." "$STAGE/$model/installers/" 2>/dev/null || true - fi - if [ -d "$KEYENCE_DIR/$model/drivers" ]; then - mkdir -p "$STAGE/$model/drivers" - cp -a "$KEYENCE_DIR/$model/drivers/." "$STAGE/$model/drivers/" - fi - sz=$(du -sh "$STAGE/$model" | cut -f1) - echo " $model: $sz" -done - -echo "==> Local stage size: $(du -sh $STAGE | cut -f1)" - -echo "==> Pushing to $PXE_USER@$PXE_HOST:$REMOTE_TEMP" -ssh_run "rm -rf '$REMOTE_TEMP' && mkdir -p '$REMOTE_TEMP'" -scp_to -r "$STAGE/." "$PXE_USER@$PXE_HOST:$REMOTE_TEMP/" - -echo "==> Atomic move into $REMOTE_DIR" -ssh_run "echo $PXE_PASS | sudo -S bash -c ' - mkdir -p $(dirname $REMOTE_DIR) - if [ -d $REMOTE_DIR ]; then - mv $REMOTE_DIR ${REMOTE_DIR}.pre-\$(date +%Y%m%d-%H%M%S) - fi - mv $REMOTE_TEMP $REMOTE_DIR - chown -R pxe:pxe $REMOTE_DIR - ls -la $REMOTE_DIR -'" - -echo "==> Done. Next imaged Keyence PC picks up the new bundles." diff --git a/playbook/sync-preinstall.sh b/playbook/sync-preinstall.sh deleted file mode 100755 index 42050a6..0000000 --- a/playbook/sync-preinstall.sh +++ /dev/null @@ -1,208 +0,0 @@ -#!/bin/bash -# sync-preinstall.sh - Push preinstall.json + installer binaries to the live PXE server. -# -# Run this on the workstation (not on the PXE server) any time: -# - You update preinstall.json in playbook/preinstall/ -# - You update installer binaries in /home/camp/pxe-images/main/ -# -# The PXE server's /srv/samba/enrollment/preinstall/ tree is updated in place. The -# next imaged PC picks up the new files via startnet.cmd's xcopy during WinPE phase. -# -# Usage: -# ./playbook/sync-preinstall.sh -# -# Requires: sshpass (apt install sshpass), scp, ssh, tar - -set -euo pipefail - -# --- Config --- -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - -PXE_HOST="${PXE_HOST:-172.16.9.1}" -PXE_USER="${PXE_USER:-pxe}" -PXE_PASS="${PXE_PASS:-pxe}" - -PREINSTALL_JSON="$PROJECT_ROOT/playbook/preinstall/preinstall.json" -PXE_IMAGES_DIR="${PXE_IMAGES_DIR:-/home/camp/pxe-images/main}" - -REMOTE_DIR="/srv/samba/enrollment/preinstall" -REMOTE_INSTALLERS="$REMOTE_DIR/installers" -REMOTE_TEMP="/tmp/preinstall-stage" - -# Subtrees copied recursively into installers/, preserving directory structure. -# -# vcredist/ holds per-version MSI+CAB pairs (one subdir per version) extracted from -# the Microsoft bootstrappers. The bootstrappers ignore /norestart and trigger -# immediate Windows reboots; the extracted MSIs honor REBOOT=ReallySuppress and do -# not. Each MSI's CAB filename ('vc_red.cab' for 2008/2010, 'cab1.cab' for the rest) -# is hardcoded in the MSI's Media table - do not rename. -# -# opentext/ holds the OpenText HostExplorer 15 SP1 install bundle (base MSI + cab, -# ShopFloor.mst transform, SP1 .msp patch, plus the Profile/Accessories/HostExplorer/ -# W10shortcuts content trees and Setup-OpenText.ps1/.cmd). Setup-OpenText.ps1 runs -# msiexec, applies SP1, then deploys profile content into ProgramData\Shared, -# Default User, and every existing user profile. The .cmd wrapper exists so the -# preinstall.json runner (which only knows MSI/EXE types) can launch it. -TREE_SUBDIRS=( - "dependencies/vcredist" - "dependencies/opentext" - "dependencies/drivers" -) - -# Individual files copied flat (basename only) into installers/. -FLAT_INSTALLERS=( - "machineapps/UDC_Setup.exe" -) - -# --- Helpers --- -ssh_run() { - sshpass -p "$PXE_PASS" ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR "$PXE_USER@$PXE_HOST" "$@" -} - -scp_to() { - sshpass -p "$PXE_PASS" scp -o StrictHostKeyChecking=no -o LogLevel=ERROR "$1" "$PXE_USER@$PXE_HOST:'$2'" -} - -# --- Validate sources --- -echo "Validating source files..." - -if [ ! -f "$PREINSTALL_JSON" ]; then - echo "ERROR: preinstall.json not found at $PREINSTALL_JSON" >&2 - exit 1 -fi - -missing=0 - -for tree in "${TREE_SUBDIRS[@]}"; do - src="$PXE_IMAGES_DIR/$tree" - if [ ! -d "$src" ]; then - echo " MISSING: $src (directory)" >&2 - missing=$((missing + 1)) - else - size=$(du -sb "$src" | cut -f1) - printf " OK %10d %s/ (tree)\n" "$size" "$tree" - fi -done - -for rel in "${FLAT_INSTALLERS[@]}"; do - src="$PXE_IMAGES_DIR/$rel" - if [ ! -f "$src" ]; then - echo " MISSING: $src" >&2 - missing=$((missing + 1)) - else - printf " OK %10d %s\n" "$(stat -c %s "$src")" "$rel" - fi -done - -if [ "$missing" -gt 0 ]; then - echo "ERROR: $missing source(s) missing in $PXE_IMAGES_DIR" >&2 - exit 1 -fi - -# --- Verify PXE server reachable --- -echo "Pinging PXE server $PXE_HOST..." -if ! ping -c 1 -W 2 "$PXE_HOST" >/dev/null 2>&1; then - echo "ERROR: PXE server $PXE_HOST not reachable" >&2 - exit 1 -fi - -# --- Build local tarball of all TREE_SUBDIRS --- -LOCAL_TARBALL="$(mktemp /tmp/preinstall-trees.XXXXXX.tar)" -trap 'rm -f "$LOCAL_TARBALL" "${LOCAL_TEMP_SCRIPT:-}"' EXIT - -echo "Building local tarball of subtrees..." -tar_args=() -for tree in "${TREE_SUBDIRS[@]}"; do - parent_dir="$PXE_IMAGES_DIR/$(dirname "$tree")" - leaf="$(basename "$tree")" - tar_args+=( -C "$parent_dir" "$leaf" ) -done -tar cf "$LOCAL_TARBALL" "${tar_args[@]}" -echo " -> $(stat -c %s "$LOCAL_TARBALL") bytes" - -# --- Stage to /tmp on PXE, then sudo install --- -echo "Staging files to $PXE_HOST:$REMOTE_TEMP..." -ssh_run "rm -rf $REMOTE_TEMP && mkdir -p $REMOTE_TEMP/flat" - -# preinstall.json -echo " -> preinstall.json" -scp_to "$PREINSTALL_JSON" "$REMOTE_TEMP/preinstall.json" - -# tarball of subtrees -echo " -> trees.tar" -scp_to "$LOCAL_TARBALL" "$REMOTE_TEMP/trees.tar" - -# flat installers (preserve filenames including spaces, all into flat/) -for rel in "${FLAT_INSTALLERS[@]}"; do - src="$PXE_IMAGES_DIR/$rel" - base="$(basename "$rel")" - echo " -> $base" - scp_to "$src" "$REMOTE_TEMP/flat/$base" -done - -# --- Build remote install script (runs under sudo on PXE) --- -LOCAL_TEMP_SCRIPT="$(mktemp /tmp/sync-preinstall-remote.XXXXXX.sh)" - -cat > "$LOCAL_TEMP_SCRIPT" < /srv/samba/enrollment/preinstall/preinstall.json -cp "$REMOTE_TEMP/preinstall.json" "$REMOTE_DIR/preinstall.json" -chmod 0644 "$REMOTE_DIR/preinstall.json" -chown root:root "$REMOTE_DIR/preinstall.json" - -# Remove legacy flat VC++ files (replaced by vcredist/ subdir tree). These were the -# pre-Burn-extraction layout where 2008's MSI/CAB sat at the root and 2010/2012/2013/ -# 2015 used bootstrappers directly. All four now live under vcredist//. -rm -f "$REMOTE_INSTALLERS/vc_red.msi" \ - "$REMOTE_INSTALLERS/vc_red.cab" \ - "$REMOTE_INSTALLERS/vcredist2008_x86.exe" \ - "$REMOTE_INSTALLERS/vcredist2010_x86.exe" \ - "$REMOTE_INSTALLERS/vcredist2012_x86.exe" \ - "$REMOTE_INSTALLERS/vcredist2013_x86.exe" \ - "$REMOTE_INSTALLERS/vcredist2015_2017_2019_2022_x86.exe" - -# Remove legacy flat OpenText.exe (Inno wrapper, replaced by dependencies/opentext/ -# subtree + Setup-OpenText.ps1). -rm -f "$REMOTE_INSTALLERS/OpenText.exe" - -# Extract tree tarball into installers/ (preserves subdirs) -tar xf "$REMOTE_TEMP/trees.tar" -C "$REMOTE_INSTALLERS/" - -# Flat installers -> installers/ -shopt -s dotglob nullglob -for f in "$REMOTE_TEMP/flat/"*; do - base="\$(basename "\$f")" - cp "\$f" "$REMOTE_INSTALLERS/\$base" -done - -# Normalize ownership and perms (files 0644, dirs 0755, all root:root) -chown -R root:root "$REMOTE_INSTALLERS" -find "$REMOTE_INSTALLERS" -type f -exec chmod 0644 {} + -find "$REMOTE_INSTALLERS" -type d -exec chmod 0755 {} + - -rm -rf "$REMOTE_TEMP" - -echo -echo "Final state of $REMOTE_DIR:" -ls -la "$REMOTE_DIR" -echo -echo "Final state of $REMOTE_INSTALLERS:" -ls -la "$REMOTE_INSTALLERS" -echo -echo "vcredist tree:" -find "$REMOTE_INSTALLERS/vcredist" -type f -printf '%10s %p\n' 2>/dev/null | sort -k2 -REMOTE_SCRIPT - -# Stage the install script alongside the data files -scp_to "$LOCAL_TEMP_SCRIPT" "$REMOTE_TEMP/_install.sh" - -# Execute remotely with sudo -echo "Installing files to $REMOTE_DIR (sudo)..." -ssh_run "echo '$PXE_PASS' | sudo -S bash $REMOTE_TEMP/_install.sh" - -echo -echo "Done. Preinstall bundle synced to $PXE_HOST:$REMOTE_DIR" diff --git a/playbook/sync-waxtrace.sh b/playbook/sync-waxtrace.sh deleted file mode 100755 index dfdb7f7..0000000 --- a/playbook/sync-waxtrace.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -# sync-waxtrace.sh - Push Wax/Trace (Mitutoyo FormTracePak) bootstrap bundle -# to the PXE server enrollment share. -# -# Copies waxtrace-manifest.json + 09-Setup-WaxAndTrace.ps1 (from the -# gea-shopfloor-waxtrace/ tree) plus the big binary payload (captured master -# zip + reg + HASP + VC++ redists + per-machine cal ISOs) from the local -# workstation to /srv/samba/enrollment/installers-post/waxtrace on the PXE -# server. That directory becomes visible as -# \\172.16.9.1\enrollment\installers-post\waxtrace so startnet.cmd can xcopy -# it onto the target disk during WinPE phase (W:\WaxTrace-Install, becomes -# C:\WaxTrace-Install post-reboot). -# -# Run this on the workstation any time: -# - waxtrace-manifest.json changes -# - 09-Setup-WaxAndTrace.ps1 changes -# - A new cal ISO is added under /home/camp/pxe-images/iso/mitutoyo-cal/ -# - Prereqs (VC++, HASP) are updated -# - FormTracePak vendor ISO is bumped (default v6.213, override with $FTPAK_ISO) -# -# Usage: -# ./playbook/sync-waxtrace.sh -# -# Requires: sshpass, scp, ssh, gzip (already in captured/reg/). - -set -euo pipefail - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - -PXE_HOST="${PXE_HOST:-172.16.9.1}" -PXE_USER="${PXE_USER:-pxe}" -PXE_PASS="${PXE_PASS:-pxe}" - -WAXTRACE_DIR="$PROJECT_ROOT/playbook/shopfloor-setup/gea-shopfloor-waxtrace" -CAL_ISO_DIR="${MITUTOYO_CAL_DIR:-/home/camp/pxe-images/iso/mitutoyo-cal}" - -REMOTE_DIR="/srv/samba/enrollment/installers-post/waxtrace" -REMOTE_TEMP="/tmp/waxtrace-stage-$$" - -ssh_run() { - sshpass -p "$PXE_PASS" ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR "$PXE_USER@$PXE_HOST" "$@" -} - -scp_to() { - sshpass -p "$PXE_PASS" scp -o StrictHostKeyChecking=no -o LogLevel=ERROR "$@" -} - -# Sanity check -test -f "$WAXTRACE_DIR/waxtrace-manifest.json" || { echo "Missing $WAXTRACE_DIR/waxtrace-manifest.json"; exit 1; } -test -f "$WAXTRACE_DIR/09-Setup-WaxAndTrace.ps1" || { echo "Missing 09-Setup-WaxAndTrace.ps1"; exit 1; } -test -d "$WAXTRACE_DIR/captured-binary/prereqs" || { echo "Missing $WAXTRACE_DIR/captured-binary/prereqs (VC++/HASP installers)"; exit 1; } - -echo "==> Staging tree locally" -STAGE="$(mktemp -d -p /tmp waxtrace-stage.XXXXXX)" -trap "rm -rf $STAGE" EXIT - -mkdir -p "$STAGE/prereqs" "$STAGE/calibrations" "$STAGE/formtracepak" -cp "$WAXTRACE_DIR/waxtrace-manifest.json" "$STAGE/" -cp "$WAXTRACE_DIR/09-Setup-WaxAndTrace.ps1" "$STAGE/" -# Arrow-key picker invoked from startnet.cmd. Reads INDEX.csv to build the -# menu, falls back to free-text prompt if it errors. Lives next to the -# calibrations dir since it depends on INDEX.csv being adjacent. -if [ -f "$WAXTRACE_DIR/select-waxtrace-asset.ps1" ]; then - cp "$WAXTRACE_DIR/select-waxtrace-asset.ps1" "$STAGE/" -fi -# Bay-config CSV + resolver. startnet.cmd invokes resolve-bay-config.ps1 in -# WinPE to pick the right FTPak version per bay. resolver reads bay-config.csv -# from this share (or W:\WaxTrace-Install\) and writes -# W:\Enrollment\waxtrace\{version,model,userid}.txt. -if [ -f "$WAXTRACE_DIR/bay-config.csv" ]; then - cp "$WAXTRACE_DIR/bay-config.csv" "$STAGE/" -fi -if [ -f "$WAXTRACE_DIR/resolve-bay-config.ps1" ]; then - cp "$WAXTRACE_DIR/resolve-bay-config.ps1" "$STAGE/" -fi -# Install-FormtracepakSettings.ps1 - called from 09-Setup-WaxAndTrace.ps1 -# Step 3b to restore captured layouts / prefs / data from the per-asset -# backup ZIP. Path on the bay post-startnet-xcopy: -# C:\WaxTrace-Install\Install-FormtracepakSettings.ps1. -if [ -f "$WAXTRACE_DIR/scripts/Install-FormtracepakSettings.ps1" ]; then - cp "$WAXTRACE_DIR/scripts/Install-FormtracepakSettings.ps1" "$STAGE/" -fi -# Schedule-WaxTracePerUserRestore.ps1 - registers a SYSTEM scheduled task -# that fires on first ShopFloor logon to restore HKEY_USERS per-user prefs -# (deferred from imaging time because ShopFloor's hive isn't loaded yet). -# Path on the bay post-startnet-robocopy: -# C:\WaxTrace-Install\Schedule-WaxTracePerUserRestore.ps1. -if [ -f "$WAXTRACE_DIR/scripts/Schedule-WaxTracePerUserRestore.ps1" ]; then - cp "$WAXTRACE_DIR/scripts/Schedule-WaxTracePerUserRestore.ps1" "$STAGE/" -fi -cp "$WAXTRACE_DIR/captured-binary/prereqs/"*.exe "$STAGE/prereqs/" - -# FormTracePak vendor installer ISOs - all available versions get pushed. -# startnet.cmd cherry-picks the matching FORMTRACEPAK-V.iso based on -# bay-config.csv lookup, xcopies just that one to the local disk (~2 GB). -# Total on PXE share: ~12 GB; per-bay xcopy: ~2 GB. -FTPAK_ISO_DIR="${FTPAK_ISO_DIR:-/home/camp/pxe-images/iso}" -FTPAK_COUNT=0 -for iso in "$FTPAK_ISO_DIR"/FORMTRACEPAK-V*.iso; do - [ -f "$iso" ] || continue - cp "$iso" "$STAGE/formtracepak/" - FTPAK_COUNT=$((FTPAK_COUNT+1)) -done -if [ "$FTPAK_COUNT" -eq 0 ]; then - echo "WARNING: no FORMTRACEPAK-V*.iso in $FTPAK_ISO_DIR - bays cannot install at imaging time." -else - echo "Staged $FTPAK_COUNT FormTracePak version ISO(s) from $FTPAK_ISO_DIR" -fi - -# Cal ISOs - one per wax/trace bay -if [ -d "$CAL_ISO_DIR" ]; then - cp "$CAL_ISO_DIR"/CAL-*.iso "$STAGE/calibrations/" 2>/dev/null || true - cp "$CAL_ISO_DIR/INDEX.csv" "$STAGE/calibrations/" 2>/dev/null || true -fi - -# Per-asset FormTracePak backup ZIPs. The tech captures these on the live -# bays via Backup-FormtracepakSettings.bat (lands at -# S:\DT\Shopfloor\backup\waxandtrace\\formtracepak_backup_*.zip on -# tsgwp00525), then mirrors them down to /home/camp/pxe-images/wt// -# on this Linux host. Pick the newest ZIP per asset and stage as -# .zip so startnet.cmd can cherry-pick a known filename per bay. -BACKUP_SRC_DIR="${WAXTRACE_BACKUP_DIR:-/home/camp/pxe-images/wt}" -mkdir -p "$STAGE/backups" -BACKUP_COUNT=0 -if [ -d "$BACKUP_SRC_DIR" ]; then - for asset_dir in "$BACKUP_SRC_DIR"/WJ*/; do - [ -d "$asset_dir" ] || continue - asset=$(basename "$asset_dir") - newest=$(ls -1t "$asset_dir"/formtracepak_backup_*.zip 2>/dev/null | head -1) - if [ -n "$newest" ] && [ -s "$newest" ]; then - cp "$newest" "$STAGE/backups/${asset}.zip" - BACKUP_COUNT=$((BACKUP_COUNT+1)) - fi - done -fi -echo "Staged $BACKUP_COUNT per-asset backup ZIP(s) from $BACKUP_SRC_DIR" - -echo "==> Local stage size: $(du -sh $STAGE | cut -f1)" -ls "$STAGE/" -ls "$STAGE/prereqs/" -ls "$STAGE/formtracepak/" 2>/dev/null || echo "(no FormTracePak ISO)" -ls "$STAGE/calibrations/" 2>/dev/null || echo "(no cal ISOs)" -ls "$STAGE/backups/" 2>/dev/null || echo "(no per-asset backup ZIPs)" - -echo "==> Pushing to $PXE_USER@$PXE_HOST:$REMOTE_TEMP" -ssh_run "rm -rf '$REMOTE_TEMP' && mkdir -p '$REMOTE_TEMP'" -scp_to -r "$STAGE/." "$PXE_USER@$PXE_HOST:$REMOTE_TEMP/" - -echo "==> Atomic move into $REMOTE_DIR" -ssh_run "echo $PXE_PASS | sudo -S bash -c ' - mkdir -p $(dirname $REMOTE_DIR) - if [ -d $REMOTE_DIR ]; then - mv $REMOTE_DIR ${REMOTE_DIR}.pre-\$(date +%Y%m%d-%H%M%S) - fi - mv $REMOTE_TEMP $REMOTE_DIR - chown -R pxe:pxe $REMOTE_DIR - ls -la $REMOTE_DIR -'" - -echo "==> Done. Next imaged Wax/Trace PC picks up the new bundle." diff --git a/playbook/utilities/convert-cal-iso.sh b/playbook/utilities/convert-cal-iso.sh deleted file mode 100755 index 4053604..0000000 --- a/playbook/utilities/convert-cal-iso.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash -# Convert a Linux-dd multi-session UDF cal ISO into a Windows-readable -# single-session ISO+UDF hybrid. Mounts the dd file via UDF loop, copies -# files into a temp tree, repacks via mkisofs with ISO9660+UDF. -# -# Use this when a Mitutoyo cal disc was ripped with `dd if=/dev/sr0` -# (default Linux rip). For multi-session UDF discs `dd` captures session -# 1 only and truncates trailing UDF Anchor Volume Descriptor Pointers; -# the file mounts on Linux (loop-udf) but Windows Mount-DiskImage reports -# IsReady=False. mkisofs rebuilds clean metadata Windows reads. Linux -# still reads the result. -# -# Single-session discs (older 218-458A Mitutoyo pattern) are already -# ISO9660 from dd - no conversion needed. Run `file CAL-*.iso`: -# ISO 9660 = fine; "data" = convert. -# -# Usage: convert-cal-iso.sh -# Replaces input in place. Saves .dd-backup on first run. -# -# Requires: sudo (loop-udf mount), mkisofs (genisoimage / cdrtools). - -set -euo pipefail - -ISO="$1" -test -f "$ISO" || { echo "Missing: $ISO"; exit 1; } - -# Extract label from filename, e.g. CAL-WJF00052_... -> 12AAE675-ish. -# Use the asset tag as the volume label so it stays unique + greppable. -ASSET=$(basename "$ISO" | sed -n 's/^CAL-\([A-Za-z0-9]*\)_.*/\1/p') -test -n "$ASSET" || { echo "Could not parse asset from $ISO"; exit 1; } -LABEL="CAL-$ASSET" - -# Length cap: ISO9660 vol id <= 32 chars -LABEL="${LABEL:0:32}" - -STAGE=$(mktemp -d -p /tmp calconv.XXXX) -MNT="$STAGE/mnt" -TREE="$STAGE/tree" -mkdir -p "$MNT" "$TREE" - -cleanup() { - if mountpoint -q "$MNT"; then sudo umount "$MNT" 2>/dev/null || true; fi - rm -rf "$STAGE" -} -trap cleanup EXIT - -echo "[$ASSET] mount $ISO" -sudo mount -t udf -o loop,ro "$ISO" "$MNT" - -echo "[$ASSET] copy" -cp -a "$MNT/." "$TREE/" - -sudo umount "$MNT" -rmdir "$MNT" 2>/dev/null || true - -# Verify expected files present (case-insensitive: older WJRP discs use Setup.exe) -test -d "$TREE/data" -o -d "$TREE/Data" -o -d "$TREE/DATA" || { echo "[$ASSET] missing data/ dir in tree"; exit 1; } -find "$TREE" -maxdepth 1 -iname 'setup.exe' -type f -print -quit | grep -q . || { echo "[$ASSET] missing setup.exe in tree"; exit 1; } - -NEW="$STAGE/new.iso" -echo "[$ASSET] mkisofs -> $NEW" -mkisofs -V "$LABEL" \ - -udf \ - -iso-level 3 \ - -J -joliet-long \ - -r \ - -o "$NEW" \ - "$TREE" 2>&1 | tail -3 - -NEW_SIZE=$(stat -c %s "$NEW") -echo "[$ASSET] new size: $NEW_SIZE" - -# Replace original (backup the dd version once) -BACKUP="${ISO}.dd-backup" -if [ ! -f "$BACKUP" ]; then - mv "$ISO" "$BACKUP" - echo "[$ASSET] backed up dd version -> $BACKUP" -else - rm "$ISO" -fi - -mv "$NEW" "$ISO" -echo "[$ASSET] replaced. md5: $(md5sum $ISO | cut -d' ' -f1)" diff --git a/playbook/utilities/waxtrace-recovery/debug-waxtrace-cal.bat b/playbook/utilities/waxtrace-recovery/debug-waxtrace-cal.bat deleted file mode 100644 index 8a420e4..0000000 --- a/playbook/utilities/waxtrace-recovery/debug-waxtrace-cal.bat +++ /dev/null @@ -1,10 +0,0 @@ -@echo off -REM Right-click "Run as administrator". Forwards args to debug-waxtrace-cal.ps1. -REM Optional: debug-waxtrace-cal.bat -Asset WJF00159 (overrides machine-number.txt). -REM Output: C:\Logs\WaxTrace\debug-waxtrace-cal.log -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0debug-waxtrace-cal.ps1" %* -echo. -echo Done. Full log: C:\Logs\WaxTrace\debug-waxtrace-cal.log -echo. -pause -exit /b %ERRORLEVEL% diff --git a/playbook/utilities/waxtrace-recovery/debug-waxtrace-cal.ps1 b/playbook/utilities/waxtrace-recovery/debug-waxtrace-cal.ps1 deleted file mode 100644 index 6a233b2..0000000 --- a/playbook/utilities/waxtrace-recovery/debug-waxtrace-cal.ps1 +++ /dev/null @@ -1,272 +0,0 @@ -# debug-waxtrace-cal.ps1 - Forensic walkthrough of why the wax/trace -# calibration data did not land in FormTracePak's data dir on a bay. -# -# Captures everything: FTPak install location autodetected (we DO NOT -# trust the hardcoded path), data dir contents at every candidate, -# cal ISO presence + mount + listing, the current on-disk version of -# 09-Setup-WaxAndTrace.ps1 (does it have the direct-copy fix or the old -# vendor-Setup.exe path?), the imaging-time log, and Application event -# log entries for Setup.exe crashes in the last 24 hours. -# -# Run as administrator. Output to C:\Logs\WaxTrace\debug-waxtrace-cal.log -# + console. Paste the log back to support for diagnosis. - -[CmdletBinding()] -param( - [string]$Asset -) - -$logDir = 'C:\Logs\WaxTrace' -if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } -$logFile = Join-Path $logDir 'debug-waxtrace-cal.log' -Remove-Item $logFile -Force -EA 0 - -function Log { - param([string]$Msg, [string]$Lvl = 'INFO') - $line = '[{0}] [{1}] {2}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Lvl, $Msg - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Log '=== debug-waxtrace-cal.ps1 ===' -Log "User: $([Security.Principal.WindowsIdentity]::GetCurrent().Name)" -Log "Host: $env:COMPUTERNAME" - -# ---------- Section 1: Asset tag ---------- -Log '' -Log '--- 1. ASSET TAG ---' -if (-not $Asset) { - $mn = 'C:\Enrollment\machine-number.txt' - if (Test-Path $mn) { - $Asset = (Get-Content $mn -First 1 -EA 0).Trim() - Log "machine-number.txt: '$Asset'" - } else { - Log "machine-number.txt MISSING at $mn" 'WARN' - } -} -Log "Using asset: $Asset" - -# ---------- Section 2: locate FormTracePak install ---------- -Log '' -Log '--- 2. FORMTRACEPAK INSTALL LOCATION ---' -$candidatePaths = @( - 'C:\Program Files (x86)\MitutoyoApp\Formtracepak', - 'C:\Program Files\MitutoyoApp\Formtracepak', - 'C:\Program Files (x86)\Mitutoyo\Formtracepak', - 'C:\Program Files\Mitutoyo\Formtracepak', - 'C:\MitutoyoApp\Formtracepak', - 'C:\Mitutoyo\Formtracepak' -) -$ftpakRoot = $null -foreach ($p in $candidatePaths) { - $exe = Join-Path $p 'Formtracepak.exe' - if (Test-Path -LiteralPath $exe) { - $ftpakRoot = $p - Log "FOUND Formtracepak.exe at: $exe" - break - } else { - Log " miss: $p" - } -} - -if (-not $ftpakRoot) { - Log 'No Formtracepak.exe at any expected path - searching C:\ Program Files trees...' - $hits = @() - foreach ($pf in @('C:\Program Files', 'C:\Program Files (x86)', 'C:\Mitutoyo', 'C:\MitutoyoApp')) { - if (-not (Test-Path $pf)) { continue } - $hits += Get-ChildItem -Path $pf -Filter 'Formtracepak.exe' -Recurse -File -ErrorAction SilentlyContinue - } - if ($hits) { - Log "Brute-force search hits:" - $hits | ForEach-Object { Log " $($_.FullName)" } - $ftpakRoot = Split-Path $hits[0].FullName -Parent - } else { - Log 'NO Formtracepak.exe ANYWHERE on C:\ - FormTracePak install likely never completed.' 'ERROR' - } -} - -# ---------- Section 3: data dir + contents ---------- -Log '' -Log '--- 3. FORMTRACEPAK DATA DIR ---' -if ($ftpakRoot) { - $dataDir = Join-Path $ftpakRoot 'data' - Log "Expected data dir: $dataDir" - if (Test-Path -LiteralPath $dataDir) { - $files = Get-ChildItem -LiteralPath $dataDir -File -EA 0 | Sort-Object Name - if ($files) { - Log "Data dir contents ($($files.Count) files):" - foreach ($f in $files) { - Log " $($f.Name) ($($f.Length) bytes, modified $($f.LastWriteTime))" - } - } else { - Log 'Data dir EXISTS but is EMPTY' 'WARN' - } - # Look for any cal files matching the asset's probe ID - $probeMatches = $files | Where-Object { $_.Name -match '218-\d{3}-\d+' } - if ($probeMatches) { - Log 'Files with probe-ID pattern (cal data candidates):' - foreach ($f in $probeMatches) { Log " hit: $($f.Name)" } - } else { - Log 'NO files matching the 218-XXX-XX probe-ID pattern in data dir.' 'WARN' - } - } else { - Log "Data dir MISSING at $dataDir" 'ERROR' - Log "Parent dir contents:" - Get-ChildItem -LiteralPath $ftpakRoot -EA 0 | ForEach-Object { Log " $($_.Name)" } - } -} else { - Log 'Skipping data-dir check (FTPak install not found)' -} - -# ---------- Section 4: cal ISO present at C:\WaxTrace-Install\calibrations\ ---------- -Log '' -Log '--- 4. CAL ISO ON LOCAL DISK ---' -$calDir = 'C:\WaxTrace-Install\calibrations' -if (Test-Path -LiteralPath $calDir) { - $allCals = Get-ChildItem -LiteralPath $calDir -Filter 'CAL-*.iso' -File -EA 0 - Log "Cal staging dir: $calDir ($($allCals.Count) ISO files total)" - if ($Asset) { - $matched = $allCals | Where-Object { $_.Name -like "CAL-${Asset}_*" } - if ($matched) { - Log "ISO matching this asset:" - foreach ($f in $matched) { Log " $($f.Name) ($([math]::Round($f.Length/1KB,1)) KB)" } - } else { - Log "NO ISO matches CAL-${Asset}_*.iso in $calDir" 'ERROR' - Log "Available ISOs (first 8):" - $allCals | Select-Object -First 8 | ForEach-Object { Log " $($_.Name)" } - } - } -} else { - Log "Cal staging dir MISSING: $calDir - startnet.cmd did not xcopy installers-post\waxtrace at imaging time, OR 09-Setup-WaxAndTrace.ps1 already deleted it (Step 5 cleanup)." 'ERROR' -} - -# ---------- Section 5: mount the matching cal ISO and list contents ---------- -Log '' -Log '--- 5. MOUNT CAL ISO + LIST CONTENTS ---' -if ($Asset -and (Test-Path -LiteralPath $calDir)) { - $iso = Get-ChildItem -LiteralPath $calDir -Filter "CAL-${Asset}_*.iso" -EA 0 | Select-Object -First 1 - if ($iso) { - try { - $img = Mount-DiskImage -ImagePath $iso.FullName -PassThru -ErrorAction Stop - Start-Sleep -Seconds 5 - $vol = Get-DiskImage -ImagePath $iso.FullName | Get-Volume - $drive = $vol.DriveLetter - if ($drive) { - Log "Mounted at ${drive}:\ (label=$($vol.FileSystemLabel))" - $items = [System.IO.Directory]::GetFileSystemEntries("${drive}:\", '*', 'AllDirectories') - foreach ($i in $items) { - try { - $fi = [System.IO.FileInfo]::new($i) - if ($fi.Attributes -band [System.IO.FileAttributes]::Directory) { - Log " DIR $i" - } else { - Log " FILE $i ($($fi.Length) bytes)" - } - } catch { Log " $i" } - } - } else { - Log "Mount succeeded but no drive letter assigned" 'ERROR' - } - Dismount-DiskImage -ImagePath $iso.FullName -EA 0 | Out-Null - Log "Cal ISO dismounted" - } catch { - Log "Mount failed: $_" 'ERROR' - } - } -} - -# ---------- Section 6: on-disk version of 09-Setup-WaxAndTrace.ps1 ---------- -Log '' -Log '--- 6. 09-SETUP-WAXANDTRACE.PS1 ON DISK ---' -$setupPath = 'C:\Enrollment\shopfloor-setup\gea-shopfloor-waxtrace\09-Setup-WaxAndTrace.ps1' -if (Test-Path -LiteralPath $setupPath) { - $fi = Get-Item $setupPath - Log "Path: $setupPath" - Log " size: $($fi.Length) bytes, mtime: $($fi.LastWriteTime)" - $content = Get-Content -LiteralPath $setupPath -Raw - $hasDirectCopy = $content -match 'hasBrokenFilenames' - $hasV6213 = $content -match 'V6\.213' - $vendorOnly = $content -match 'calSetup.*Setup\.exe' -and -not $hasDirectCopy - Log " Direct-copy bypass present (hasBrokenFilenames): $hasDirectCopy" - Log " V6.213 baseline references: $hasV6213" - if (-not $hasDirectCopy) { - Log ' !!! This bay has the OLD 09-Setup-WaxAndTrace.ps1 without the direct-copy fix.' 'ERROR' - Log ' !!! 218-378-13 series cal discs WILL crash setup.exe with .NET unhandled exception.' 'ERROR' - Log ' !!! Pull the latest from the share: copy /Y \\172.16.9.1\enrollment\shopfloor-setup\gea-shopfloor-waxtrace\09-Setup-WaxAndTrace.ps1 to local.' 'ERROR' - } -} else { - Log "09-Setup-WaxAndTrace.ps1 NOT FOUND at expected path $setupPath" 'WARN' -} - -# Also check C:\WaxTrace-Install copy (staged from share at WinPE time) -$setupStaging = 'C:\WaxTrace-Install\09-Setup-WaxAndTrace.ps1' -if (Test-Path -LiteralPath $setupStaging) { - $fi = Get-Item $setupStaging - $content = Get-Content -LiteralPath $setupStaging -Raw - $hasDirectCopy = $content -match 'hasBrokenFilenames' - Log "Staging copy at $setupStaging :" - Log " size: $($fi.Length), mtime: $($fi.LastWriteTime), has direct-copy: $hasDirectCopy" -} - -# ---------- Section 7: imaging-time log content ---------- -Log '' -Log '--- 7. 09-SETUP-WAXANDTRACE.LOG CONTENT (cal sections) ---' -$wtLog = 'C:\Logs\WaxTrace\09-Setup-WaxAndTrace.log' -if (Test-Path -LiteralPath $wtLog) { - Log "Tail of $wtLog (last 40 lines + cal-related lines):" - $tail = Get-Content -LiteralPath $wtLog -Tail 40 -EA 0 - foreach ($l in $tail) { Log " $l" } - Log '' - Log 'cal/calibration/setup/copy/Mount-DiskImage matching lines:' - Select-String -LiteralPath $wtLog -Pattern 'cal|calibration|copied|direct copy|Mount-DiskImage|setup\.exe exit|hasBrokenFilenames' -SimpleMatch:$false -EA 0 | - Select-Object -Last 30 | ForEach-Object { Log " L$($_.LineNumber): $($_.Line)" } -} else { - Log "$wtLog MISSING - 09-Setup-WaxAndTrace.ps1 never ran (or never reached transcript start)." 'WARN' -} - -# ---------- Section 8: Event log .NET Runtime crashes ---------- -Log '' -Log '--- 8. EVENT LOG (.NET Runtime / Application Error / WER, last 24h) ---' -$cutoff = (Get-Date).AddHours(-24) -foreach ($lname in @('Application')) { - try { - $events = Get-WinEvent -FilterHashtable @{ - LogName = $lname - StartTime = $cutoff - ProviderName = @('.NET Runtime', 'Application Error', 'Windows Error Reporting') - } -ErrorAction Stop | Where-Object { $_.Message -match 'setup\.exe|Setup\.exe|MitutoyoLauncher|Formtracepak|FileSystemInfo|set_Attributes' } | - Select-Object -First 5 - if ($events) { - foreach ($e in $events) { - Log "Event $($e.Id) [$($e.LevelDisplayName)] from $($e.ProviderName) at $($e.TimeCreated)" - $e.Message -split "`n" | Select-Object -First 10 | ForEach-Object { Log " $_" } - } - } else { - Log "No matching .NET/AppError events in last 24h" - } - } catch {} -} - -# ---------- Section 9: scoped search for cal data on known dirs ---------- -Log '' -Log '--- 9. SCOPED CAL FILE SEARCH (Mitutoyo / Hexagon known dirs) ---' -$searchRoots = @( - 'C:\Program Files (x86)\MitutoyoApp', - 'C:\Program Files\MitutoyoApp', - 'C:\Program Files (x86)\Mitutoyo', - 'C:\Program Files\Mitutoyo', - 'C:\MitutoyoApp', - 'C:\Mitutoyo', - 'C:\ProgramData\Mitutoyo' -) -foreach ($r in $searchRoots) { - if (-not (Test-Path -LiteralPath $r)) { continue } - $hits = @(Get-ChildItem -Path $r -Include 'Frc_*.txt','Linear_X_*.txt','Linear_Zl_*.txt','Str_XZ_*.txt','cvifdll.ini','CVIFDLL.ini' -Recurse -ErrorAction SilentlyContinue -Force) - if ($hits) { - Log "Under $r :" - $hits | Select-Object -First 10 | ForEach-Object { Log " $($_.FullName) ($($_.Length) bytes, $($_.LastWriteTime))" } - } -} - -Log '' -Log "=== debug-waxtrace-cal.ps1 end. Output: $logFile ===" diff --git a/playbook/utilities/waxtrace-recovery/fix-waxtrace-cal.bat b/playbook/utilities/waxtrace-recovery/fix-waxtrace-cal.bat deleted file mode 100644 index 59042f5..0000000 --- a/playbook/utilities/waxtrace-recovery/fix-waxtrace-cal.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -REM fix-waxtrace-cal.bat - Double-click launcher for fix-waxtrace-cal.ps1. -REM Right-click "Run as administrator" so files can land under Program Files. -REM Forwards args, e.g.: -REM fix-waxtrace-cal.bat -Asset WJF00159 -REM If no -Asset is passed the script reads C:\Enrollment\machine-number.txt. -powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0fix-waxtrace-cal.ps1" %* -echo. -echo Done. Full log: C:\Logs\WaxTrace\fix-waxtrace-cal.log -echo. -pause -exit /b %ERRORLEVEL% diff --git a/playbook/utilities/waxtrace-recovery/fix-waxtrace-cal.ps1 b/playbook/utilities/waxtrace-recovery/fix-waxtrace-cal.ps1 deleted file mode 100644 index 49b123a..0000000 --- a/playbook/utilities/waxtrace-recovery/fix-waxtrace-cal.ps1 +++ /dev/null @@ -1,175 +0,0 @@ -# fix-waxtrace-cal.ps1 - Repair the wax/trace calibration apply when the -# 09-Setup-WaxAndTrace.ps1 cal step failed during imaging. -# -# Diagnoses + applies in one pass: -# 1. Reads C:\Enrollment\machine-number.txt for the asset tag (e.g. -# WJF00159) or accepts -Asset on the command line. -# 2. Finds the matching cal ISO under C:\WaxTrace-Install\calibrations\. -# 3. Mounts it. Lists contents to the log. -# 4. Auto-detects FormTracePak data dir. -# 5. Copies data\*.* into the FormTracePak data dir, renaming any -# file whose probe-ID has a trailing space (Mitutoyo 218-378-13 disc -# burn-time typo - their own .NET Setup.exe crashes on this; ours -# heals the name). -# 6. Clears read-only on each landed file. -# 7. Dismounts. Verifies cal files present on disk. -# -# Run as administrator (the destination is under Program Files (x86)). -# -# Log: C:\Logs\WaxTrace\fix-waxtrace-cal.log - -[CmdletBinding()] -param( - [string]$Asset, - [string]$CalDir = 'C:\WaxTrace-Install\calibrations', - [string]$FtPakRoot = 'C:\Program Files (x86)\MitutoyoApp\Formtracepak' -) - -$logDir = 'C:\Logs\WaxTrace' -if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir -Force | Out-Null } -$logFile = Join-Path $logDir 'fix-waxtrace-cal.log' - -function Log { - param([string]$Msg, [string]$Lvl = 'INFO') - $line = '[{0}] [{1}] {2}' -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss'), $Lvl, $Msg - Add-Content -Path $logFile -Value $line -ErrorAction SilentlyContinue - Write-Host $line -} - -Log "=== fix-waxtrace-cal.ps1 start ===" -Log "User: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" - -# --- Resolve asset --- -if (-not $Asset) { - $mnFile = 'C:\Enrollment\machine-number.txt' - if (Test-Path -LiteralPath $mnFile) { - $Asset = (Get-Content $mnFile -First 1).Trim() - } -} -if (-not $Asset) { - Log "No asset tag (pass -Asset or set C:\Enrollment\machine-number.txt)" 'ERROR' - exit 1 -} -Log "Asset: $Asset" - -# --- Verify FTPak install location exists --- -$dataDir = Join-Path $FtPakRoot 'data' -if (-not (Test-Path -LiteralPath $FtPakRoot)) { - Log "FormTracePak install root not found at $FtPakRoot" 'ERROR' - Log "Cannot apply cal data without FormTracePak. Install it first via 09-Setup-WaxAndTrace.ps1." 'ERROR' - exit 1 -} -if (-not (Test-Path -LiteralPath $dataDir)) { - Log "FormTracePak data dir not found at $dataDir - creating it" 'WARN' - try { New-Item -ItemType Directory -Path $dataDir -Force | Out-Null } catch { Log "Failed to create data dir: $_" 'ERROR'; exit 1 } -} -Log "FormTracePak data dir: $dataDir" - -# --- Find ISO --- -$iso = Get-ChildItem -Path $CalDir -Filter "CAL-${Asset}_*.iso" -ErrorAction SilentlyContinue | Select-Object -First 1 -if (-not $iso) { - Log "No cal ISO matched CAL-${Asset}_*.iso in $CalDir" 'ERROR' - Log "Available ISOs in $CalDir :" 'INFO' - Get-ChildItem -Path $CalDir -Filter 'CAL-*.iso' -ErrorAction SilentlyContinue | ForEach-Object { Log " $($_.Name)" } - exit 1 -} -Log "Cal ISO: $($iso.FullName)" - -# --- Mount --- -try { - $img = Mount-DiskImage -ImagePath $iso.FullName -PassThru -ErrorAction Stop - Start-Sleep -Seconds 5 - $vol = Get-DiskImage -ImagePath $iso.FullName | Get-Volume - $drive = $vol.DriveLetter - if (-not $drive) { - Log "Mount succeeded but no drive letter assigned" 'ERROR' - exit 1 - } - $root = "${drive}:\" - Log "Mounted at $root (label=$($vol.FileSystemLabel))" -} catch { - Log "Mount failed: $_" 'ERROR' - exit 1 -} - -# --- Find source data dir on the disc --- -$srcCandidates = @( - (Join-Path $root 'data'), - (Join-Path $root 'Data'), - (Join-Path $root 'DATA') -) -$srcDataDir = $null -foreach ($p in $srcCandidates) { - if (Test-Path -LiteralPath $p) { $srcDataDir = $p; break } -} -if (-not $srcDataDir) { - Log "No data dir on cal ISO at any of: $($srcCandidates -join ', ')" 'ERROR' - Dismount-DiskImage -ImagePath $iso.FullName -ErrorAction SilentlyContinue | Out-Null - exit 1 -} -Log "Source data dir on cal disc: $srcDataDir" - -# --- Copy with filename heal --- -$copied = 0 -$failed = 0 -Get-ChildItem -LiteralPath $srcDataDir -File -ErrorAction SilentlyContinue | ForEach-Object { - # Mitutoyo 218-378-13 series discs have a probe-ID typo: filename - # contains '218-378-13 _.txt' (space before underscore). Strip - # the space so the file lands with the correct canonical name that - # FormTracePak's CVIF loader expects. - $cleanName = $_.Name -replace ' _', '_' - $dst = Join-Path $dataDir $cleanName - try { - Copy-Item -LiteralPath $_.FullName -Destination $dst -Force -ErrorAction Stop - try { (Get-Item -LiteralPath $dst).Attributes = 'Normal' } catch {} - if ($_.Name -ne $cleanName) { - Log " Copied + renamed: $($_.Name) -> $cleanName" - } else { - Log " Copied: $($_.Name)" - } - $copied++ - } catch { - Log " Copy FAILED for $($_.Name): $_" 'ERROR' - $failed++ - } -} - -# --- Also copy cvifdll.ini if it lives at the disc root (some 218-378-13 -# discs put it inside data/, older 218-458A put it in data/, but neither -# put it at root - leave this as a guard) --- -$rootIni = Join-Path $root 'cvifdll.ini' -if (Test-Path -LiteralPath $rootIni) { - try { - Copy-Item -LiteralPath $rootIni -Destination (Join-Path $dataDir 'cvifdll.ini') -Force -ErrorAction Stop - Log " Copied root-level cvifdll.ini" - $copied++ - } catch { Log " cvifdll.ini copy failed: $_" 'WARN' } -} - -Log "Copy summary: $copied file(s) copied, $failed failure(s)" - -# --- Dismount --- -try { - Dismount-DiskImage -ImagePath $iso.FullName -ErrorAction SilentlyContinue | Out-Null - Log "Cal ISO dismounted" -} catch { Log "Dismount: $_" 'WARN' } - -# --- Verify --- -Log "=== VERIFY ===" -$expectedHits = Get-ChildItem -LiteralPath $dataDir -ErrorAction SilentlyContinue | - Where-Object { $_.Name -match '_\d+\.txt$' -or $_.Name -ieq 'cvifdll.ini' } | - Select-Object Name, Length, LastWriteTime -foreach ($h in $expectedHits) { - Log " $($h.Name) ($($h.Length) bytes, modified $($h.LastWriteTime))" -} -if (-not $expectedHits) { - Log " No cal files visible in $dataDir - apply may have failed" 'WARN' -} - -Log "=== fix-waxtrace-cal.ps1 end ===" -Log "" -Log "Next steps:" -Log " 1. Plug in the HASP USB dongle if not already inserted." -Log " 2. Connect the probe." -Log " 3. Launch FormTracePak (Mitutoyo Launcher) and confirm it loads probe cal data without error." -exit 0 diff --git a/reference/e10/README.md b/reference/e10/README.md deleted file mode 100644 index 0068d74..0000000 --- a/reference/e10/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# SIC e10 reference snapshot - -Pulled off the bench controller (a P63, firmware `E10 P63 (20140924)`) on -2026-08-27 with `scripts/e10-client.py backup`. 52 files: marking files, -scribble logos, and the controller's own config files. - -Used as the reference corpus for reversing the `MARK_V5.0` marking file format -and for testing the e10 client without hardware attached. - -## Deliberately missing: ConfigCtrl - -`ConfigCtrl` is the controller configuration file. **It stores the programmer -and supervisor password in cleartext**, so it is not in this repo and must -never be committed. It is kept outside git at -`~/pxe-images/e10-ConfigCtrl-2026-08-27.kind1`, mode 0600, following the same -convention as the other site-sensitive artefacts (ADR-015). - -`.gitignore` blocks `ConfigCtrl*` and `*.kind1` under this directory so a -future snapshot cannot reintroduce it by accident. - -This has a direct consequence for the backup design: **any e10 snapshot that -includes the controller config contains a live credential.** Whatever ACL -protects the partmarker backup tree on the share has to account for that, and -the ShopDB asset panel must never render the file's contents. - -## Part programs - -GE part programs are NOT in this repo - they carry part numbers and marking -content. They live outside git at `~/pxe-images/e10-testing/partprograms/`, -alongside the testing README. `.gitignore` blocks the path here so one cannot -be added by accident. diff --git a/reference/e10/snapshot-2026-08-27.sha256 b/reference/e10/snapshot-2026-08-27.sha256 deleted file mode 100644 index 1ec1207..0000000 --- a/reference/e10/snapshot-2026-08-27.sha256 +++ /dev/null @@ -1,51 +0,0 @@ -70cce4c34a91027ed94bbe8b756598eee8af17f2d002f3460bd90d990fb436b4 AROBAS.scribblelogo -10e2f1aa3071ca2d84a5349166ed3c660b8ff008eb944ef92cfc5274f005599e C151TEST.marking -d3221a50bcaca36382797b7f6e8f8e8faa50324e37a9e3b4505b3642a048493d C151ZATEST.marking -e091265e92eb2b6f205cf9df04eac49197e6af32c87b8c18142a56c2c7219b92 C153DTEST.marking -64e0af0dc88768918c855ac79476eafd4f847a6457c3cc887a67965ccf1dc207 C153TEST.marking -1e6e804d24110ae1e6737a02019ffa4b2fd5a439dbf63197e81761ff279a0042 C153ZA_TEST.marking -3b11990968ddefa701de6fdcd3b2b6c444628aa131b883c800b6cb23cdde63de C303TEST.marking -2e838035bea993f4b41ed3aef294492745d5d7ac09b46a40eca2b63e61f0e28b CE.scribblelogo -477790ff20bf8e19dfc61091af720be628cabc861062b3bfbae573cf7d2e9eb0 DIAMETR1.scribblelogo -af6bb7fc933a0204ae2d13428abf1e690b84875c77a6b135be702eff33a69cb5 DOLLAR.scribblelogo -414e0eef39661ce6974c332ff87fd1e33e32dca16d4c3fcb180844d3f712fe27 EURO.scribblelogo -e0084b66cb4a03e2aba6cc7342eead6a91610ad915d66f9ae2c734f99b772ac7 File-Select.kind1 -2c04cfccfe998cec4f2174b5f4afb38f674606b1fea4de0cf27762e9d1811de9 FLECHE.scribblelogo -e54393d2f36be9c038b435cd378bef7841bdebecd2f5377ae061179250a60b46 FolderDef.kind1 -0979584b27575fd47098af4c247ce3753ca230682bf81e1b4981c3473ea31da2 I111DTEST.marking -466c52d43773f34953db31812f041ed5607f6a439018382e5a4c632378609e1d I111STEST.marking -faf4e6c890038fa694efb0c5e71b90882ef963f77b88eb78cbca6b9e3913c9ed I113DTEST.marking -5c023699db1bc23f1486fbe1bd9dbf47020be0745eabe3d6a0f39f01af0d24bb I113STEST.marking -82c4eb3df4fa3c999ac852dd76ffb115e6e183e1266efbeb5e59711ad054efe3 I141_ATEST.marking -ca605734925a2369ad27370a628afc8d78197dd2916059413066282278aa064b I141TEST.marking -f60c08c64e67ee15da84e6af251f103b1851d30aa64b72ae685bd0a7d635091b I52TEST.marking -cb5c02fad724be06f5ca7ec2e07684ca1c6e876dbe9fc93d8c5b2a4d027b76e5 I61HATEST.marking -ab7e80458d29f40643c5f29b028998ee461449c2fb60654b8eb7d1db0dac66d9 I61STEST.marking -a1a649f60076a12af8cebf7dddd21a6a50b4679e2263a0959880fe634ee19395 I81-ATEST.marking -276157a44ad7b0d5b658c0207b66344f1b6c7747d600435150b4f08cb3c2319d I81TEST.marking -a3958d8271b395431cbbd9b70fbf992bec29d4fdc50aed3a89352b94040ce3ce MIRE.scribblelogo -51f32036eafdc34ee296c7af0f99497961a85c88e9490698782f80d0f0bbd5a4 NEW.marking -517b1254b6c7636d25cee78c41d4164d523069db6477119c7b3934c9953a3092 NF.scribblelogo -e9c628286a4a5e8dd21e40524081dc16f56e7d252eff4a0bc60885153d677836 P122_40TEST.marking -87899b8fcd02a53ce2b7cece87b22339a326e0d0e3a4471d405413623bf9f8ce P122TEST.marking -fa1dc4effb6af039c47665597183030bf77939e68f0e6ee7c21dce6b258ed249 P62TEST.marking -ed5c962db3376f43ec5a0b0bdeb3d42df0d08671d86d199995dbd065ef27cd72 PHONE.scribblelogo -7a8749129203e4729a3f40b63d98963ce658c5c523d701a20817cc243375a598 POWER.scribblelogo -b280f55cefb8467f2e5bc72bf573ac1b12e2c37aaed7b65cc01994cfd596a9bb RECYCLAG.scribblelogo -49bf169537af2b2d830331dd8d263e684bc6a831cfcaf2dadd7d3005c80507f2 ROUND.scribblelogo -f7d6a767b43d8d990937edc87c64fe16e3df48a2a62bdd182d8ee0570dbb6b65 RROUND.scribblelogo -b63008e8a99d098774db34e5eb759ee7ce2cb6935061aad4f4639ad1d3101214 RU.marking -befeb2d21947be021bfa8bcbacfa1a1a9410cf07a1502425d16dae0efedad3b3 SAVE_ACC_1.kind7 -d9cb28a5ca4742d2a99b302cada595171d9aba83892973f6c09a00f5a04b9be8 SENSINTE1.scribblelogo -90d36b9d0167d6343fb71fbc65750d4f162a31d394bf6fd15700481608b66b43 SIC.scribblelogo -5223b4860a45e531c04ea68038e5654504ff07968cb31ed409879dafc3dcd3d6 SQUARE.scribblelogo -a3ffe9466ef36622242e9b878cf3a5059428db3580fe623f99a62b0f0bff6252 STAR.scribblelogo -7fe8657ba86d3d048d5b1ff529bde7dcd138946a8aed54284d51f959d8d7815c TENSION.scribblelogo -c0061f304587e65597a6a685d009f5e36dae49aa662f5cbc2ed8bc8d5c13c124 TERRE.scribblelogo -6dacf2f4ce950e9a29bdc525b43966fe05e00166d668a6108e48a89a1e4463c4 TEST_DB1.marking -e510e74205dc57d106c0ab5484200a7a7ba8616c3d9580bc45500be00b04dc6f TEST_DB2.marking -3aefdb0845861635ba9c9bbe73ebb020736786ff688267a1e048f281481d20a5 TEST_DB3.marking -95a4056868e686d14766d74158ac781b91903df158fde5691f003d3aca0324be TEST.marking -de6574fa8579b4fe1d2d9f627f9f203354eafd2a2facbf183c1656d2f2d053d2 TESTP120.marking -f6a519fb92aff6efdd59caaded3728f38b878b83fa51ac37ca081b452a8d960c TEST_RU.marking -73aa19ae9f2feef8b85dc5de2659b097b8580470be69c2afd758fe30b6def398 TRIANGLE.scribblelogo diff --git a/reference/e10/snapshot-2026-08-27/AROBAS.scribblelogo b/reference/e10/snapshot-2026-08-27/AROBAS.scribblelogo deleted file mode 100644 index 904637f..0000000 Binary files a/reference/e10/snapshot-2026-08-27/AROBAS.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/C151TEST.marking b/reference/e10/snapshot-2026-08-27/C151TEST.marking deleted file mode 100644 index 73449c6..0000000 Binary files a/reference/e10/snapshot-2026-08-27/C151TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/C151ZATEST.marking b/reference/e10/snapshot-2026-08-27/C151ZATEST.marking deleted file mode 100644 index 01ac0f9..0000000 Binary files a/reference/e10/snapshot-2026-08-27/C151ZATEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/C153DTEST.marking b/reference/e10/snapshot-2026-08-27/C153DTEST.marking deleted file mode 100644 index d16ba9c..0000000 Binary files a/reference/e10/snapshot-2026-08-27/C153DTEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/C153TEST.marking b/reference/e10/snapshot-2026-08-27/C153TEST.marking deleted file mode 100644 index 760c33f..0000000 Binary files a/reference/e10/snapshot-2026-08-27/C153TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/C153ZA_TEST.marking b/reference/e10/snapshot-2026-08-27/C153ZA_TEST.marking deleted file mode 100644 index 9d48de8..0000000 Binary files a/reference/e10/snapshot-2026-08-27/C153ZA_TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/C303TEST.marking b/reference/e10/snapshot-2026-08-27/C303TEST.marking deleted file mode 100644 index 957bafc..0000000 Binary files a/reference/e10/snapshot-2026-08-27/C303TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/CE.scribblelogo b/reference/e10/snapshot-2026-08-27/CE.scribblelogo deleted file mode 100644 index 50b7b2a..0000000 Binary files a/reference/e10/snapshot-2026-08-27/CE.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/DIAMETR1.scribblelogo b/reference/e10/snapshot-2026-08-27/DIAMETR1.scribblelogo deleted file mode 100644 index 2875504..0000000 Binary files a/reference/e10/snapshot-2026-08-27/DIAMETR1.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/DOLLAR.scribblelogo b/reference/e10/snapshot-2026-08-27/DOLLAR.scribblelogo deleted file mode 100644 index 25ac243..0000000 Binary files a/reference/e10/snapshot-2026-08-27/DOLLAR.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/EURO.scribblelogo b/reference/e10/snapshot-2026-08-27/EURO.scribblelogo deleted file mode 100644 index 794ba60..0000000 Binary files a/reference/e10/snapshot-2026-08-27/EURO.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/FLECHE.scribblelogo b/reference/e10/snapshot-2026-08-27/FLECHE.scribblelogo deleted file mode 100644 index 02654ee..0000000 Binary files a/reference/e10/snapshot-2026-08-27/FLECHE.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I111DTEST.marking b/reference/e10/snapshot-2026-08-27/I111DTEST.marking deleted file mode 100644 index 3445cfa..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I111DTEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I111STEST.marking b/reference/e10/snapshot-2026-08-27/I111STEST.marking deleted file mode 100644 index 78a443a..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I111STEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I113DTEST.marking b/reference/e10/snapshot-2026-08-27/I113DTEST.marking deleted file mode 100644 index 63f8580..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I113DTEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I113STEST.marking b/reference/e10/snapshot-2026-08-27/I113STEST.marking deleted file mode 100644 index d31c347..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I113STEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I141TEST.marking b/reference/e10/snapshot-2026-08-27/I141TEST.marking deleted file mode 100644 index df55a7b..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I141TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I141_ATEST.marking b/reference/e10/snapshot-2026-08-27/I141_ATEST.marking deleted file mode 100644 index 2922df0..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I141_ATEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I52TEST.marking b/reference/e10/snapshot-2026-08-27/I52TEST.marking deleted file mode 100644 index cd9f37f..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I52TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I61HATEST.marking b/reference/e10/snapshot-2026-08-27/I61HATEST.marking deleted file mode 100644 index ebca1b5..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I61HATEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I61STEST.marking b/reference/e10/snapshot-2026-08-27/I61STEST.marking deleted file mode 100644 index 30b221a..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I61STEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I81-ATEST.marking b/reference/e10/snapshot-2026-08-27/I81-ATEST.marking deleted file mode 100644 index a9685e0..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I81-ATEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/I81TEST.marking b/reference/e10/snapshot-2026-08-27/I81TEST.marking deleted file mode 100644 index 387014f..0000000 Binary files a/reference/e10/snapshot-2026-08-27/I81TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/MIRE.scribblelogo b/reference/e10/snapshot-2026-08-27/MIRE.scribblelogo deleted file mode 100644 index 8d47f73..0000000 Binary files a/reference/e10/snapshot-2026-08-27/MIRE.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/NEW.marking b/reference/e10/snapshot-2026-08-27/NEW.marking deleted file mode 100644 index 1a42e09..0000000 Binary files a/reference/e10/snapshot-2026-08-27/NEW.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/NF.scribblelogo b/reference/e10/snapshot-2026-08-27/NF.scribblelogo deleted file mode 100644 index 9759aa2..0000000 Binary files a/reference/e10/snapshot-2026-08-27/NF.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/P122TEST.marking b/reference/e10/snapshot-2026-08-27/P122TEST.marking deleted file mode 100644 index 36da5c4..0000000 Binary files a/reference/e10/snapshot-2026-08-27/P122TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/P122_40TEST.marking b/reference/e10/snapshot-2026-08-27/P122_40TEST.marking deleted file mode 100644 index 769cfc4..0000000 Binary files a/reference/e10/snapshot-2026-08-27/P122_40TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/P62TEST.marking b/reference/e10/snapshot-2026-08-27/P62TEST.marking deleted file mode 100644 index e781a81..0000000 Binary files a/reference/e10/snapshot-2026-08-27/P62TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/PHONE.scribblelogo b/reference/e10/snapshot-2026-08-27/PHONE.scribblelogo deleted file mode 100644 index 7370770..0000000 Binary files a/reference/e10/snapshot-2026-08-27/PHONE.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/POWER.scribblelogo b/reference/e10/snapshot-2026-08-27/POWER.scribblelogo deleted file mode 100644 index 14412e5..0000000 Binary files a/reference/e10/snapshot-2026-08-27/POWER.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/RECYCLAG.scribblelogo b/reference/e10/snapshot-2026-08-27/RECYCLAG.scribblelogo deleted file mode 100644 index c788b93..0000000 Binary files a/reference/e10/snapshot-2026-08-27/RECYCLAG.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/ROUND.scribblelogo b/reference/e10/snapshot-2026-08-27/ROUND.scribblelogo deleted file mode 100644 index b59bff8..0000000 Binary files a/reference/e10/snapshot-2026-08-27/ROUND.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/RROUND.scribblelogo b/reference/e10/snapshot-2026-08-27/RROUND.scribblelogo deleted file mode 100644 index c88f9f5..0000000 Binary files a/reference/e10/snapshot-2026-08-27/RROUND.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/RU.marking b/reference/e10/snapshot-2026-08-27/RU.marking deleted file mode 100644 index 13a5370..0000000 Binary files a/reference/e10/snapshot-2026-08-27/RU.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/SAVE_ACC_1.kind7 b/reference/e10/snapshot-2026-08-27/SAVE_ACC_1.kind7 deleted file mode 100644 index 9035f86..0000000 Binary files a/reference/e10/snapshot-2026-08-27/SAVE_ACC_1.kind7 and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/SENSINTE1.scribblelogo b/reference/e10/snapshot-2026-08-27/SENSINTE1.scribblelogo deleted file mode 100644 index 4a9d841..0000000 --- a/reference/e10/snapshot-2026-08-27/SENSINTE1.scribblelogo +++ /dev/null @@ -1,5 +0,0 @@ -××##0> -M^n~ -�ž¬#¹0Ã>ÌMÒ^Ön×~֏Ҟ̬ù¹ì̞ҏÖ~×nÖ^ÒMÌ>Ã0¹#¬ž� -~n^M ->0##Ý"¸¹"ÝÝ \ No newline at end of file diff --git a/reference/e10/snapshot-2026-08-27/SIC.scribblelogo b/reference/e10/snapshot-2026-08-27/SIC.scribblelogo deleted file mode 100644 index d961028..0000000 Binary files a/reference/e10/snapshot-2026-08-27/SIC.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/SQUARE.scribblelogo b/reference/e10/snapshot-2026-08-27/SQUARE.scribblelogo deleted file mode 100644 index a400a0a..0000000 Binary files a/reference/e10/snapshot-2026-08-27/SQUARE.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/STAR.scribblelogo b/reference/e10/snapshot-2026-08-27/STAR.scribblelogo deleted file mode 100644 index d4642fa..0000000 Binary files a/reference/e10/snapshot-2026-08-27/STAR.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TENSION.scribblelogo b/reference/e10/snapshot-2026-08-27/TENSION.scribblelogo deleted file mode 100644 index 7f3d0ec..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TENSION.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TERRE.scribblelogo b/reference/e10/snapshot-2026-08-27/TERRE.scribblelogo deleted file mode 100644 index ade9ebb..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TERRE.scribblelogo and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TEST.marking b/reference/e10/snapshot-2026-08-27/TEST.marking deleted file mode 100644 index e479d7c..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TEST.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TESTP120.marking b/reference/e10/snapshot-2026-08-27/TESTP120.marking deleted file mode 100644 index c830620..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TESTP120.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TEST_DB1.marking b/reference/e10/snapshot-2026-08-27/TEST_DB1.marking deleted file mode 100644 index 26c9047..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TEST_DB1.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TEST_DB2.marking b/reference/e10/snapshot-2026-08-27/TEST_DB2.marking deleted file mode 100644 index 48e1182..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TEST_DB2.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TEST_DB3.marking b/reference/e10/snapshot-2026-08-27/TEST_DB3.marking deleted file mode 100644 index d08fb94..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TEST_DB3.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TEST_RU.marking b/reference/e10/snapshot-2026-08-27/TEST_RU.marking deleted file mode 100644 index 977fb19..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TEST_RU.marking and /dev/null differ diff --git a/reference/e10/snapshot-2026-08-27/TRIANGLE.scribblelogo b/reference/e10/snapshot-2026-08-27/TRIANGLE.scribblelogo deleted file mode 100644 index 8dfa80d..0000000 Binary files a/reference/e10/snapshot-2026-08-27/TRIANGLE.scribblelogo and /dev/null differ diff --git a/scripts/Build-PxeUsb.ps1 b/scripts/Build-PxeUsb.ps1 new file mode 100644 index 0000000..2b8822d --- /dev/null +++ b/scripts/Build-PxeUsb.ps1 @@ -0,0 +1,595 @@ +#Requires -RunAsAdministrator +# +# Build-PxeUsb.ps1 - Build the PXE server installer USB on a Windows PC. +# +# The Windows twin of scripts/build-usb.sh: the same checks and the same +# payload, from a checkout of this repo plus its payload folders (for +# example \\\pxe-images\pxe-usb, which scripts/stage-usb-share.sh +# fills). No Linux tools are needed. +# +# Layout (UEFI boot only, Secure Boot works): ONE FAT32 partition labelled +# CIDATA holding +# - every file of the Ubuntu live-server ISO (boot/grub/grub.cfg gets +# 'autoinstall' on the first kernel line and a 5 s timeout), so the +# firmware boots its shim and grub straight from the stick, and +# - the CIDATA payload: user-data / meta-data (cloud-init NoCloud finds +# them by the CIDATA label), packages/, playbook/, webapp/, pip-wheels/, +# boot files, boot-tools/, enrollment/, bios/, site-content/ ... +# The installer and first-boot.sh find everything by that label, exactly as +# on build-usb.sh's two-partition stick. Windows formats FAT32 only up to +# 32 GB, so the partition is at most 32 GB; the rest of a bigger stick stays +# empty. FAT32 holds files under 4 GiB: boot files, enrollment and drivers +# over 3500 MiB are split into .part.NN files the playbook joins again, as +# build-usb.sh does; site-content and WinPE images are refused instead. +# +# Checks before the stick is touched (refuses to build what the server +# would reject): +# - the ISO's volume id is the one offline-packages/ was resolved for +# - the iPXE chain matches the ipxe_*_sha256 pins in the playbook +# - every wheel in pip-wheels/ is the pinned version with a pinned hash +# - site-content/ matches its SHA256SUMS list and has no file >= 4 GiB +# - the site vars set pxe_nic_mac / corp_nic_mac to a MAC or leave them empty +# - the disk is a USB disk, not the boot or system disk, and big enough +# After copying, every file is read back from the stick and compared with +# its source by SHA-256 (-QuickVerify: by size only). +# +# Usage: double-click Build-PxeUsb.cmd in the build folder (asks for admin +# rights, lists the USB disks and asks which one; uses site-vars.yml from +# the build folder if there is one, else the defaults). Or, elevated: +# .\Build-PxeUsb.ps1 list USB disks +# .\Build-PxeUsb.ps1 -DiskNumber 3 -NoSiteVars build on disk 3 +# .\Build-PxeUsb.ps1 -DiskNumber 3 -SiteVars .\site-vars.yml +# Options: -IsoPath FILE, -PayloadRoot DIR, -WinPESource DIR, +# -SkipEnrollment -SkipBios -SkipDrivers -SkipBootTools -SkipSiteContent, +# -QuickVerify, -Yes (no typed confirmation). +# +# Exit codes: 0 built and verified, 1 refused or failed (nothing or a +# half-written stick: rebuild), 2 usage. + +[CmdletBinding()] +param( + [int]$DiskNumber = -1, + [string]$IsoPath = '', + [string]$PayloadRoot = '', + [string]$SiteVars = '', + [switch]$NoSiteVars, + [string]$WinPESource = '', + [switch]$SkipEnrollment, + [switch]$SkipBios, + [switch]$SkipDrivers, + [switch]$SkipBootTools, + [switch]$SkipSiteContent, + [switch]$QuickVerify, + [switch]$Yes, + # Build-PxeUsb.cmd: ask for the disk, take site-vars.yml from the build + # folder (else the defaults), wait for a key at the end. + [switch]$Interactive +) + +$ErrorActionPreference = 'Stop' +Set-StrictMode -Version 2 + +$RepoRoot = Split-Path -Parent $PSScriptRoot +if (-not $PayloadRoot) { $PayloadRoot = $RepoRoot } +$PayloadRoot = (Resolve-Path -LiteralPath $PayloadRoot).Path + +$FatMax = [int64]4GB - 1 # largest file FAT32 can hold +$ChunkSize = [int64]3500 * 1MB # split size (build-usb.sh FAT32_MAX) +$PartMax = [int64]32GB - 64MB # Windows formats FAT32 up to 32 GB +$Utf8NoBom = New-Object System.Text.UTF8Encoding($false) + +function Say([string]$m) { Write-Host $m } +function Fail([string]$m) { + Write-Host "ERROR: $m" -ForegroundColor Red + if ($Interactive) { Write-Host ''; Read-Host 'Press Enter to close' | Out-Null } + exit 1 +} + +function Show-UsbDisks { + Say 'USB disks:' + $d = @(Get-Disk | Where-Object { $_.BusType -eq 'USB' }) + if ($d.Count -eq 0) { Say ' (none found)'; return } + foreach ($x in $d) { + Say (' {0,3} {1,-34} {2,8:N1} GB {3}' -f $x.Number, $x.FriendlyName, ($x.Size / 1GB), $x.PartitionStyle) + } + Say '' + Say 'Then: .\Build-PxeUsb.ps1 -DiskNumber N -NoSiteVars (or -SiteVars FILE)' +} + +function Get-Sha256([string]$path) { + (Get-FileHash -LiteralPath $path -Algorithm SHA256).Hash.ToLowerInvariant() +} + +function Get-StreamSha256([System.IO.Stream]$s) { + $sha = [System.Security.Cryptography.SHA256]::Create() + try { -join ($sha.ComputeHash($s) | ForEach-Object { $_.ToString('x2') }) } + finally { $sha.Dispose() } +} + +# Every regular file under a folder (follows no links), relative paths with \. +function Get-Tree([string]$root, [string[]]$skipDirs = @(), [string[]]$skipExt = @()) { + $base = (Resolve-Path -LiteralPath $root).Path.TrimEnd('\') + $out = New-Object System.Collections.Generic.List[object] + $stack = New-Object System.Collections.Stack + $stack.Push($base) + while ($stack.Count -gt 0) { + $dir = $stack.Pop() + foreach ($e in (Get-ChildItem -LiteralPath $dir -Force)) { + if ($e.Attributes -band [IO.FileAttributes]::ReparsePoint) { continue } + if ($e.PSIsContainer) { + if ($skipDirs -notcontains $e.Name) { $stack.Push($e.FullName) } + continue + } + if ($skipExt -contains $e.Extension.ToLowerInvariant()) { continue } + $out.Add([pscustomobject]@{ Full = $e.FullName; Rel = $e.FullName.Substring($base.Length + 1); Size = $e.Length }) + } + } + , $out +} + +# --- the copy plan ------------------------------------------------------------- +# Each entry: Src, Dest (relative to the stick root), Size, Split (may be split +# into .part.NN), Data (bytes written instead of Src: the patched grub.cfg). +$Plan = New-Object System.Collections.Generic.List[object] +function Add-Plan([string]$src, [string]$dest, [int64]$size, [bool]$split = $false, [byte[]]$data = $null) { + $Plan.Add([pscustomobject]@{ Src = $src; Dest = $dest.TrimStart('\'); Size = $size; Split = $split; Data = $data; Hashes = $null }) +} +function Add-File([string]$src, [string]$destDir, [bool]$split = $false) { + $f = Get-Item -LiteralPath $src + $d = if ($destDir) { Join-Path $destDir $f.Name } else { $f.Name } + Add-Plan $f.FullName $d $f.Length $split +} +function Add-Tree([string]$src, [string]$destDir, [bool]$split = $false, [string[]]$skipDirs = @(), [string[]]$skipExt = @(), [string[]]$skipRel = @()) { + foreach ($t in (Get-Tree $src $skipDirs $skipExt)) { + if ($skipRel -contains $t.Rel) { continue } + Add-Plan $t.Full (Join-Path $destDir $t.Rel) $t.Size $split + } +} + +function Pause-IfInteractive { + if ($Interactive) { Write-Host ''; Read-Host 'Press Enter to close' | Out-Null } +} +trap { + Write-Host "ERROR: $_" -ForegroundColor Red + Write-Host (" at line {0}: {1}" -f $_.InvocationInfo.ScriptLineNumber, $_.InvocationInfo.Line.Trim()) + Pause-IfInteractive + exit 1 +} + +# --- no disk given: list and stop (or ask) ------------------------------------- +if ($DiskNumber -lt 0 -and $Interactive) { + Show-UsbDisks + $ans = Read-Host 'Disk number of the USB stick to build (Enter to cancel)' + if ($ans -notmatch '^\d+$') { Say 'Cancelled.'; Pause-IfInteractive; exit 2 } + $DiskNumber = [int]$ans +} +if ($Interactive -and -not $SiteVars -and -not $NoSiteVars) { + $sv = Join-Path $RepoRoot 'site-vars.yml' + if (Test-Path -LiteralPath $sv) { $SiteVars = $sv } else { $NoSiteVars = [switch]$true } +} +if ($DiskNumber -lt 0) { Show-UsbDisks; exit 2 } +if ($SiteVars -and $NoSiteVars) { Say 'Give -SiteVars FILE or -NoSiteVars, not both.'; exit 2 } +if (-not $SiteVars -and -not $NoSiteVars) { + Say 'Give -SiteVars FILE (per-site values, see playbook\site-vars.example.yml)' + Say 'or -NoSiteVars (the first boot then picks the imaging NIC itself and uses the defaults).' + exit 2 +} + +$Autoinstall = Join-Path $RepoRoot 'autoinstall' +$PlaybookDir = Join-Path $RepoRoot 'playbook' +$WebappDir = Join-Path $RepoRoot 'webapp' +$OfflineDir = Join-Path $PayloadRoot 'offline-packages' +$WheelsDir = Join-Path $PayloadRoot 'pip-wheels' +$BootFiles = Join-Path $PayloadRoot 'boot-files' +$BootTools = if ($SkipBootTools) { '' } else { Join-Path $PayloadRoot 'boot-tools' } +$Enrollment = if ($SkipEnrollment) { '' } else { Join-Path $PayloadRoot 'enrollment' } +$BiosDir = if ($SkipBios) { '' } else { Join-Path $PayloadRoot 'bios-staging' } +$DriversDir = if ($SkipDrivers) { '' } else { Join-Path $PayloadRoot 'drivers-staging' } +$SiteContent = if ($SkipSiteContent) { '' } else { Join-Path $PayloadRoot 'site-content' } + +Say '============================================' +Say 'PXE Server USB Builder (Windows)' +Say '============================================' +Say "Repo : $RepoRoot" +Say "Payloads : $PayloadRoot" + +# --- ISO --------------------------------------------------------------------- +if (-not $IsoPath) { + $iso = Get-ChildItem -LiteralPath $PayloadRoot -Filter 'ubuntu-*-live-server-amd64.iso' -File -ErrorAction SilentlyContinue | + Sort-Object Name | Select-Object -Last 1 + if (-not $iso) { Fail "no -IsoPath and no ubuntu-*-live-server-amd64.iso in $PayloadRoot" } + $IsoPath = $iso.FullName +} +if (-not (Test-Path -LiteralPath $IsoPath -PathType Leaf)) { Fail "ISO not found: $IsoPath" } +$IsoPath = (Resolve-Path -LiteralPath $IsoPath).Path +Say "ISO : $IsoPath" + +# Volume id from the ISO9660 primary volume descriptor (sector 16, offset 40, +# 32 bytes): the same string xorriso -pvd_info prints on Linux. +$fs = [IO.File]::OpenRead($IsoPath) +try { + $buf = New-Object byte[] 2048 + [void]$fs.Seek(16 * 2048, 'Begin') + if ($fs.Read($buf, 0, 2048) -ne 2048 -or $buf[0] -ne 1 -or [Text.Encoding]::ASCII.GetString($buf, 1, 5) -ne 'CD001') { + Fail "$IsoPath has no ISO9660 primary volume descriptor" + } + $IsoVolId = [Text.Encoding]::ASCII.GetString($buf, 40, 32).TrimEnd() +} finally { $fs.Dispose() } + +# --- checks (as build-usb.sh) ------------------------------------------------ +Say '' +Say '[1/6] Checking the payload...' +foreach ($f in @((Join-Path $Autoinstall 'user-data'), (Join-Path $Autoinstall 'meta-data'), + (Join-Path $PlaybookDir 'pxe_server_setup.yml'), (Join-Path $RepoRoot 'scripts\offline-apt-install.sh'), + (Join-Path $OfflineDir 'Packages'), (Join-Path $OfflineDir 'explicit.list'))) { + if (-not (Test-Path -LiteralPath $f -PathType Leaf)) { Fail "$f not found (offline-packages: built by scripts/download-packages.sh)" } +} + +$volFile = Join-Path $OfflineDir 'iso-volid' +if (Test-Path -LiteralPath $volFile) { + $want = (Get-Content -LiteralPath $volFile -TotalCount 1).Trim() + if ($want -ne $IsoVolId) { Fail "offline-packages\ was built for ISO '$want', this ISO is '$IsoVolId'. Use that ISO or rebuild the set." } + Say " offline-packages\ matches ISO $IsoVolId" +} else { + Say " WARNING: offline-packages\iso-volid missing; cannot check the set was resolved against $IsoVolId." +} + +if ($SiteVars) { + if (-not (Test-Path -LiteralPath $SiteVars -PathType Leaf)) { Fail "-SiteVars file not found: $SiteVars" } + $SiteVars = (Resolve-Path -LiteralPath $SiteVars).Path + $lines = Get-Content -LiteralPath $SiteVars + foreach ($v in 'pxe_nic_mac', 'corp_nic_mac') { + $line = @($lines | Where-Object { $_ -match "^${v}:" }) | Select-Object -Last 1 + if (-not $line) { continue } + if ($line -match "^${v}:\s*([`"'][`"'])?\s*(#.*)?$") { continue } + if ($line -notmatch "^${v}:\s*[`"']?([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}[`"']?\s*(#.*)?$") { + Fail "$SiteVars sets $v to something that is not a MAC (aa:bb:cc:dd:ee:ff) or empty" + } + } +} + +# iPXE chain: the playbook's ipxe_*_sha256 pins. +$yml = [IO.File]::ReadAllText((Join-Path $PlaybookDir 'pxe_server_setup.yml')) +function Get-Pin([string]$name) { + $m = [regex]::Match($yml, "(?m)^\s*${name}:\s*`"([0-9a-f]{64})`"") + if (-not $m.Success) { Fail "no $name pin in playbook\pxe_server_setup.yml" } + $m.Groups[1].Value +} +$tarball = Join-Path $BootFiles 'ipxeboot.tar.gz' +$shim = Join-Path $BootFiles 'ipxe-shimx64.efi' +if (-not (Test-Path -LiteralPath $tarball) -or (Get-Sha256 $tarball) -ne (Get-Pin 'ipxe_tarball_sha256')) { + Fail "$tarball is missing or does not match ipxe_tarball_sha256 (scripts/fetch-ipxe.sh fetches the pinned release)" +} +if (-not (Test-Path -LiteralPath $shim) -or (Get-Sha256 $shim) -ne (Get-Pin 'ipxe_shim_sha256')) { + Fail "$shim is missing or does not match ipxe_shim_sha256" +} +$tmpTar = Join-Path ([IO.Path]::GetTempPath()) ('pxeusb-' + [guid]::NewGuid().ToString('N')) +New-Item -ItemType Directory -Path $tmpTar | Out-Null +try { + & tar.exe -xzf $tarball -C $tmpTar 'ipxeboot/x86_64-sb/snponly.efi' 'ipxeboot/x86_64/ipxe.pxe' 2>$null + foreach ($p in @(@('ipxeboot\x86_64-sb\snponly.efi', 'ipxe_snponly_sha256'), @('ipxeboot\x86_64\ipxe.pxe', 'ipxe_bios_sha256'))) { + $f = Join-Path $tmpTar $p[0] + if (-not (Test-Path -LiteralPath $f) -or (Get-Sha256 $f) -ne (Get-Pin $p[1])) { Fail "$($p[0]) in ipxeboot.tar.gz does not match $($p[1])" } + } +} finally { Remove-Item -LiteralPath $tmpTar -Recurse -Force -ErrorAction SilentlyContinue } +Say ' iPXE chain matches the playbook pins' + +# Wheels: each pinned package exactly once, at its pinned version and hash. +$reqs = [IO.File]::ReadAllText((Join-Path $WebappDir 'requirements.txt')) +function Norm([string]$n) { ($n -replace '[-_.]+', '_').ToLowerInvariant() } +$pins = @{}; $hashes = @{} +foreach ($m in [regex]::Matches($reqs, '(?m)^([A-Za-z0-9_.-]+)==([^\s\\]+)((?:\s*\\?\s*--hash=sha256:[0-9a-f]{64})+)')) { + $n = Norm $m.Groups[1].Value + $pins[$n] = $m.Groups[2].Value + $hashes[$n] = @([regex]::Matches($m.Groups[3].Value, 'sha256:([0-9a-f]{64})') | ForEach-Object { $_.Groups[1].Value }) +} +if ($pins.Count -eq 0) { Fail 'no hashed pins in webapp\requirements.txt' } +if (-not (Test-Path -LiteralPath $WheelsDir)) { Fail "no $WheelsDir (scripts/download-packages.sh builds it)" } +$bad = New-Object System.Collections.Generic.List[string] +$seen = @{} +foreach ($w in (Get-ChildItem -LiteralPath $WheelsDir -File)) { + if ($w.Extension -ne '.whl') { $bad.Add("$($w.Name): not a wheel"); continue } + $parts = $w.Name.Split('-') + $n = Norm $parts[0]; $ver = $parts[1] + if (-not $pins.ContainsKey($n)) { $bad.Add("$($w.Name): $n is not pinned") } + elseif ($ver -ne $pins[$n]) { $bad.Add("$($w.Name): version $ver, pinned $($pins[$n])") } + elseif ($hashes[$n] -notcontains (Get-Sha256 $w.FullName)) { $bad.Add("$($w.Name): sha256 is not a pinned hash of $n") } + $seen[$n] = 1 + [int]($seen[$n]) +} +foreach ($n in $pins.Keys) { if ([int]($seen[$n]) -ne 1) { $bad.Add("${n}: $([int]($seen[$n])) wheels (need exactly 1)") } } +if ($bad.Count -gt 0) { Fail ("pip-wheels\ does not match webapp\requirements.txt:`n " + ($bad -join "`n ")) } +Say " $($pins.Count) wheels match their pinned hashes" + +# site-content: listed in SHA256SUMS, nothing FAT32 cannot hold. +$scSums = @{} +if ($SiteContent -and -not (Test-Path -LiteralPath $SiteContent)) { + # Optional: a site with no other PXE server has none. The server installs + # and images without it; that content is added later if the site uses it. + Say ' no site-content\ in the build folder (optional): building without it' + $SiteContent = '' +} +if ($SiteContent) { + $sumFile = Join-Path $SiteContent 'SHA256SUMS' + if (-not (Test-Path -LiteralPath $sumFile)) { Fail 'site-content\ has no SHA256SUMS list; remove the folder or replace it with a complete copy.' } + foreach ($l in [IO.File]::ReadAllLines($sumFile)) { + if ($l -match '^([0-9a-f]{64})\s+\*?\./(.+)$') { $scSums[($Matches[2] -replace '/', '\')] = $Matches[1] } + } + $scFiles = @(Get-Tree $SiteContent | Where-Object { $_.Rel -ne 'SHA256SUMS' }) + if ($scFiles.Count -ne $scSums.Count) { Fail "site-content\ holds $($scFiles.Count) files but SHA256SUMS lists $($scSums.Count). Re-run the capture." } + foreach ($t in $scFiles) { + if (-not $scSums.ContainsKey($t.Rel)) { Fail "site-content\$($t.Rel) is not in SHA256SUMS" } + if ($t.Size -gt $FatMax) { Fail "site-content\$($t.Rel) is 4 GiB or more (FAT32 cannot hold it)" } + } + Say " site-content\ lists $($scSums.Count) files (hashed when they are read back)" +} +if ($WinPESource) { + if (-not (Test-Path -LiteralPath $WinPESource)) { Fail "WinPE source not found: $WinPESource" } + $big = @(Get-Tree $WinPESource | Where-Object { $_.Size -gt $FatMax }) + if ($big.Count) { Fail "WinPE content has files of 4 GiB or more; import those through the webapp instead: $($big[0].Rel)" } +} + +# --- plan -------------------------------------------------------------------- +Add-File (Join-Path $Autoinstall 'user-data') '' +Add-File (Join-Path $Autoinstall 'meta-data') '' +Add-File (Join-Path $OfflineDir 'Packages') 'packages' +Add-File (Join-Path $OfflineDir 'explicit.list') 'packages' +$debs = @(Get-ChildItem -LiteralPath $OfflineDir -Filter '*.deb' -File) +foreach ($d in $debs) { Add-Plan $d.FullName (Join-Path 'packages' $d.Name) $d.Length } +Add-File (Join-Path $RepoRoot 'scripts\offline-apt-install.sh') '' +# The playbook without a repo-local site-vars.yml: the stick carries exactly +# -SiteVars (or none). +Add-Tree $PlaybookDir 'playbook' $false @() @() @('site-vars.yml') +if ($SiteVars) { Add-Plan $SiteVars 'playbook\site-vars.yml' (Get-Item -LiteralPath $SiteVars).Length } +Add-File (Join-Path $RepoRoot 'scripts\lint-unattend.py') 'scripts' +Add-Tree $WebappDir 'webapp' $false @('__pycache__') @('.pyc', '.pyo') +Add-Tree $WheelsDir 'pip-wheels' +if (Test-Path -LiteralPath $BootFiles) { + foreach ($f in (Get-ChildItem -LiteralPath $BootFiles -File)) { Add-Plan $f.FullName $f.Name $f.Length $true } +} +if ($BootTools -and (Test-Path -LiteralPath $BootTools)) { Add-Tree $BootTools 'boot-tools' } +if ($Enrollment -and (Test-Path -LiteralPath $Enrollment)) { Add-Tree $Enrollment 'enrollment' $true } +if ($SiteContent) { Add-Tree $SiteContent 'site-content' } +if ($BiosDir -and (Test-Path -LiteralPath $BiosDir)) { Add-Tree $BiosDir 'bios' } +if ($DriversDir -and (Test-Path -LiteralPath $DriversDir)) { Add-Tree $DriversDir 'drivers' $true } +if ($WinPESource) { Add-Tree $WinPESource 'images' } + +foreach ($p in $Plan) { + if ($p.Size -gt $FatMax -and -not $p.Split) { Fail "$($p.Src) is 4 GiB or more and FAT32 cannot hold it" } +} +$payloadBytes = ($Plan | Measure-Object -Property Size -Sum).Sum +$isoBytes = (Get-Item -LiteralPath $IsoPath).Length +$need = [int64]$payloadBytes + $isoBytes +$need = $need + [int64]($need / 10) + 256MB +Say (' payload {0:N1} GB + ISO {1:N1} GB; needs about {2:N1} GB' -f ($payloadBytes / 1GB), ($isoBytes / 1GB), ($need / 1GB)) +if ($need -gt $PartMax) { Fail ('that is more than the {0:N0} GB FAT32 partition Windows can format; skip a payload (-SkipDrivers, -SkipEnrollment ...)' -f ($PartMax / 1GB)) } + +# --- the disk ------------------------------------------------------------------ +$disk = Get-Disk -Number $DiskNumber -ErrorAction SilentlyContinue +if (-not $disk) { Show-UsbDisks; Fail "no disk $DiskNumber" } +if ($disk.IsBoot -or $disk.IsSystem) { Fail "disk $DiskNumber is the boot/system disk" } +if ($disk.BusType -ne 'USB') { Fail "disk $DiskNumber is on bus $($disk.BusType), not USB. Refusing." } +$partSize = [Math]::Min([int64]$disk.Size - 4MB, $PartMax) +if ($partSize -lt $need) { Fail ('disk {0} is {1:N1} GB; the build needs about {2:N1} GB' -f $DiskNumber, ($disk.Size / 1GB), ($need / 1GB)) } + +Say '' +Say ('Disk {0}: {1}, {2:N1} GB, {3}' -f $disk.Number, $disk.FriendlyName, ($disk.Size / 1GB), $disk.PartitionStyle) +foreach ($v in @(Get-Partition -DiskNumber $DiskNumber -ErrorAction SilentlyContinue | Get-Volume -ErrorAction SilentlyContinue)) { + Say (' now holds: {0}: "{1}" {2} {3:N1} GB' -f $v.DriveLetter, $v.FileSystemLabel, $v.FileSystem, ($v.Size / 1GB)) +} +if (-not $Yes) { + $ans = Read-Host "EVERYTHING on disk $DiskNumber will be erased. Type the disk number to continue" + if ($ans -ne [string]$DiskNumber) { Say 'Aborted.'; Pause-IfInteractive; exit 1 } +} + +# --- partition and format ------------------------------------------------------ +Say '' +Say "[2/6] Partitioning disk $DiskNumber (MBR, one FAT32 partition, label CIDATA)..." +# diskpart, not Clear-Disk / New-Partition: on removable USB sticks those +# often leave the old table half in place ("Not enough available capacity"). +# Windows formats FAT32 up to 32 GB, so the partition is at most that. +$sizeMB = [int64][Math]::Floor($partSize / 1MB) +$dpScript = Join-Path ([IO.Path]::GetTempPath()) ('pxeusb-diskpart-' + [guid]::NewGuid().ToString('N') + '.txt') +@( + "select disk $DiskNumber" + 'clean' + 'convert mbr' + "create partition primary size=$sizeMB" + 'active' + 'format fs=fat32 quick label=CIDATA' + 'assign' +) | Set-Content -LiteralPath $dpScript -Encoding ASCII +$dpOut = & diskpart.exe /s $dpScript 2>&1 +$dpCode = $LASTEXITCODE +Remove-Item -LiteralPath $dpScript -Force -ErrorAction SilentlyContinue +if ($dpCode -ne 0) { + $dpOut | Select-Object -Last 15 | ForEach-Object { Say " $_" } + Fail "diskpart failed (exit $dpCode) on disk $DiskNumber" +} +Start-Sleep -Seconds 3 +Update-Disk -Number $DiskNumber -ErrorAction SilentlyContinue +$part = @(Get-Partition -DiskNumber $DiskNumber | Where-Object { $_.Type -ne 'Reserved' }) | Select-Object -First 1 +if (-not $part) { Fail "no partition on disk $DiskNumber after diskpart" } +if (-not $part.DriveLetter) { + $part | Add-PartitionAccessPath -AssignDriveLetter + Start-Sleep -Seconds 2 + $part = Get-Partition -DiskNumber $DiskNumber -PartitionNumber $part.PartitionNumber +} +if (-not $part.DriveLetter) { Fail 'the new partition got no drive letter' } +$vol = Get-Volume -DriveLetter $part.DriveLetter +if ($vol.FileSystem -ne 'FAT32' -or $vol.FileSystemLabel -ne 'CIDATA') { + Fail "disk $DiskNumber is $($vol.FileSystem) '$($vol.FileSystemLabel)' after diskpart, not FAT32 'CIDATA'" +} +$Usb = "$($part.DriveLetter):\" +Say (' {0} FAT32 "CIDATA" {1:N1} GB' -f $Usb, ($vol.Size / 1GB)) + +# --- the ISO ------------------------------------------------------------------- +Say '' +Say '[3/6] Adding the Ubuntu ISO files...' +# Drive letter of the mounted ISO: the CD-ROM letter that was not there +# before. (Mount-DiskImage -PassThru | Get-Volume fails on some Windows +# PowerShell 5.1 builds with "Argument types do not match".) +function Get-CdLetters { @(Get-CimInstance Win32_LogicalDisk -Filter 'DriveType=5' | ForEach-Object { $_.DeviceID.Substring(0, 1) }) } +$before = Get-CdLetters +Mount-DiskImage -ImagePath $IsoPath | Out-Null +try { + $isoLetter = $null + for ($w = 0; $w -lt 30 -and -not $isoLetter; $w++) { + $isoLetter = @(Get-CdLetters | Where-Object { $before -notcontains $_ }) | Select-Object -First 1 + if (-not $isoLetter) { + try { $isoLetter = (Get-DiskImage -ImagePath $IsoPath | Get-Volume -ErrorAction Stop).DriveLetter } catch { } + } + if (-not $isoLetter) { Start-Sleep -Seconds 1 } + } + if (-not $isoLetter) { Fail "the ISO was mounted but got no drive letter: $IsoPath" } + $isoRoot = "${isoLetter}:\" + Say " ISO mounted as $isoRoot" + $isoTree = Get-Tree $isoRoot + $grubRel = 'boot\grub\grub.cfg' + $grubSrc = Join-Path $isoRoot $grubRel + if (-not (Test-Path -LiteralPath $grubSrc)) { Fail "the ISO has no $grubRel" } + if (-not (Test-Path -LiteralPath (Join-Path $isoRoot 'EFI\boot\bootx64.efi'))) { Fail 'the ISO has no EFI\boot\bootx64.efi' } + + # Same edit as build-usb.sh: 'autoinstall' on the default kernel line, 5 s timeout. + $grub = [IO.File]::ReadAllText($grubSrc) + $patched = $grub.Replace("linux`t/casper/vmlinuz ---", "linux`t/casper/vmlinuz autoinstall ---") + $patched = [regex]::Replace($patched, '(?m)^set timeout=30', 'set timeout=5') + if ($patched -notmatch 'vmlinuz[^\n]*autoinstall') { Fail 'grub.cfg patch failed: no autoinstall on a kernel line (the ISO grub.cfg format changed)' } + $grubBytes = $Utf8NoBom.GetBytes($patched) + + # The payload must not land on an ISO path. + $isoNames = @{} + foreach ($t in $isoTree) { $isoNames[$t.Rel.ToLowerInvariant()] = 1 } + foreach ($p in $Plan) { + if ($isoNames.ContainsKey($p.Dest.ToLowerInvariant())) { Fail "payload file $($p.Dest) would overwrite an ISO file" } + } + $isoPlan = New-Object System.Collections.Generic.List[object] + foreach ($t in $isoTree) { + if ($t.Size -gt $FatMax) { Fail "ISO file $($t.Rel) is 4 GiB or more" } + if ($t.Rel -eq $grubRel) { + $isoPlan.Add([pscustomobject]@{ Src = $t.Full; Dest = $t.Rel; Size = [int64]$grubBytes.Length; Split = $false; Data = $grubBytes; Hashes = $null }) + } else { + $isoPlan.Add([pscustomobject]@{ Src = $t.Full; Dest = $t.Rel; Size = $t.Size; Split = $false; Data = $null; Hashes = $null }) + } + } + + # --- copying ----------------------------------------------------------- + function Copy-PlanItem($p) { + $dest = Join-Path $Usb $p.Dest + $dir = Split-Path -Parent $dest + if (-not (Test-Path -LiteralPath $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null } + if ($p.Data) { [IO.File]::WriteAllBytes($dest, $p.Data); return } + if (-not ($p.Split -and $p.Size -gt $ChunkSize)) { [IO.File]::Copy($p.Src, $dest, $true); return } + # Split like `split -b 3500M -d -a 2 FILE FILE.part.`; the playbook joins them. + $p.Hashes = New-Object System.Collections.Generic.List[string] + $in = [IO.File]::OpenRead($p.Src) + try { + $buf = New-Object byte[] (8MB) + $n = 0 + while ($in.Position -lt $in.Length) { + $chunk = '{0}.part.{1:D2}' -f $dest, $n + $out = [IO.File]::Create($chunk) + $sha = [System.Security.Cryptography.SHA256]::Create() + try { + $left = [Math]::Min($ChunkSize, $in.Length - $in.Position) + while ($left -gt 0) { + $r = $in.Read($buf, 0, [int][Math]::Min($buf.Length, $left)) + if ($r -le 0) { throw "short read on $($p.Src)" } + $out.Write($buf, 0, $r) + [void]$sha.TransformBlock($buf, 0, $r, $null, 0) + $left -= $r + } + [void]$sha.TransformFinalBlock($buf, 0, 0) + $p.Hashes.Add((-join ($sha.Hash | ForEach-Object { $_.ToString('x2') }))) + } finally { $out.Dispose(); $sha.Dispose() } + $n++ + } + } finally { $in.Dispose() } + Say " split $($p.Dest) into $n parts" + } + + # One list (not @() + @(): on Windows PowerShell 5.1 that adds the two + # List objects themselves and fails "Argument types do not match"). + $all = New-Object System.Collections.Generic.List[object] + $all.AddRange($isoPlan) + $all.AddRange($Plan) + $total = [int64](($all | Measure-Object -Property Size -Sum).Sum) + $done = [int64]0 + $i = 0 + foreach ($p in $isoPlan) { + Copy-PlanItem $p + $done += $p.Size; $i++ + if ($i % 50 -eq 0) { Write-Progress -Activity 'Copying to the USB' -Status $p.Dest -PercentComplete ([int](100 * $done / $total)) } + } + Say " $($isoPlan.Count) ISO files copied (grub.cfg: autoinstall, 5 s timeout)" + + Say '' + Say '[4/6] Copying the payload (autoinstall, packages, playbook, webapp, boot files...)...' + foreach ($p in $Plan) { + Copy-PlanItem $p + $done += $p.Size; $i++ + Write-Progress -Activity 'Copying to the USB' -Status $p.Dest -PercentComplete ([int](100 * $done / $total)) + } + Write-Progress -Activity 'Copying to the USB' -Completed + Say (" {0} files, {1:N1} GB ({2} .deb, site vars: {3})" -f $Plan.Count, ($payloadBytes / 1GB), $debs.Count, $(if ($SiteVars) { $SiteVars } else { 'none' })) + + Say '' + Say '[5/6] Flushing...' + Write-VolumeCache -DriveLetter $part.DriveLetter + + # --- read back --------------------------------------------------------- + Say '' + Say ('[6/6] Reading every file back from the stick ({0})...' -f $(if ($QuickVerify) { 'sizes' } else { 'SHA-256' })) + $errors = New-Object System.Collections.Generic.List[string] + $done = [int64]0 + foreach ($p in $all) { + $dest = Join-Path $Usb $p.Dest + $done += $p.Size + Write-Progress -Activity 'Verifying the USB' -Status $p.Dest -PercentComplete ([int](100 * $done / $total)) + if ($p.Hashes) { + for ($k = 0; $k -lt $p.Hashes.Count; $k++) { + $chunk = '{0}.part.{1:D2}' -f $dest, $k + if (-not (Test-Path -LiteralPath $chunk)) { $errors.Add("$($p.Dest).part.$k missing"); continue } + if (-not $QuickVerify -and (Get-Sha256 $chunk) -ne $p.Hashes[$k]) { $errors.Add("$($p.Dest).part.$k differs") } + } + continue + } + if (-not (Test-Path -LiteralPath $dest)) { $errors.Add("$($p.Dest) missing"); continue } + if ((Get-Item -LiteralPath $dest).Length -ne $p.Size) { $errors.Add("$($p.Dest) has the wrong size"); continue } + if ($QuickVerify) { continue } + $got = Get-Sha256 $dest + if ($p.Data) { + $ms = New-Object IO.MemoryStream (, $p.Data) + $want = Get-StreamSha256 $ms + } elseif ($p.Dest.StartsWith('site-content\') -and $scSums.ContainsKey($p.Dest.Substring(13))) { + $want = $scSums[$p.Dest.Substring(13)] # the captured hash, not today's source + } else { + $want = Get-Sha256 $p.Src + } + if ($got -ne $want) { $errors.Add("$($p.Dest) differs from its source") } + } + Write-Progress -Activity 'Verifying the USB' -Completed +} finally { + Dismount-DiskImage -ImagePath $IsoPath | Out-Null +} + +if ($errors.Count -gt 0) { + Say '' + Say "The stick is NOT good: $($errors.Count) problem(s):" + $errors | Select-Object -First 20 | ForEach-Object { Say " $_" } + Fail 'rebuild it (try another stick or port)' +} + +Say '' +Say '============================================' +Say "USB build complete and verified: $Usb" +Say '============================================' +Say 'Next:' +Say ' 1. Eject the stick (Safely Remove).' +Say ' 2. On the server: plug in ONLY the imaging switch (GE unplugged), boot the' +Say ' stick in UEFI mode (F12 / boot menu). Ubuntu installs itself.' +Say ' 3. First boot picks the imaging port, pins it as pxe0 = 172.16.9.1 and runs' +Say ' the playbook. Then plug GE into any other port.' +Say ' 4. If the console shows a banner, read /var/log/first-boot.log; for the' +Say ' imaging port, log in and run: sudo pxe-pick-nic' +Pause-IfInteractive +exit 0 diff --git a/scripts/Capture-SiteContent.ps1 b/scripts/Capture-SiteContent.ps1 new file mode 100644 index 0000000..3e7db84 --- /dev/null +++ b/scripts/Capture-SiteContent.ps1 @@ -0,0 +1,228 @@ +# +# Capture-SiteContent.ps1 - Pull the site content from a running PXE server +# into the pxe-usb build folder, on a Windows PC. +# +# The Windows twin of scripts/capture-site-content.sh. A new PXE server +# needs content that neither the repo nor the MCL image import brings; it +# exists only on a working server. This pulls, into the build folder: +# site-content\shared\Applications\extra\ Office, Adobe, OpenText, Java, +# fonts, Wi-Fi profile, Zscaler (every unattend installs from it; +# pxe-status\ is left out, the playbook deploys it) +# site-content\images\\Applications\ each image's own files and +# folders there: GE CA certificates, the Engineering Layer payload +# (without Install-EngineeringLayer.ps1, which the repo carries) +# site-content\links.txt the links images keep there +# site-content\SHA256SUMS checked by the playbook +# bios-staging\ *.exe and models.txt from _shared\BIOS +# boot-files\boot.wim +# boot-tools\blancco\ the Blancco files already in that folder +# +# How: ONE ssh session (one password prompt) runs a small script on the +# server that collects those files, hashes them there (SHA-256) and streams +# them back as a tar archive. Here the archive is unpacked into a scratch +# folder and every file is checked against the server's hashes, and against +# what FAT32 can hold (under 4 GiB, no two names that differ only in case). +# Only when all of that passes does the new content replace the old. The +# server is only read. +# +# Needs: Windows 10/11 (ssh.exe and tar.exe are built in), SSH access to the +# server as pxe (from the GE network use the server's GE address). +# +# Usage: double-click Capture-SiteContent.cmd in the build folder (asks for +# the server address), or: +# .\scripts\Capture-SiteContent.ps1 -Server 10.x.x.x +# +# Exit codes: 0 captured and verified, 1 failed (the old content is kept). + +[CmdletBinding()] +param( + [string]$Server = '', + [string]$User = 'pxe', + [string]$PayloadRoot = '', + [switch]$Interactive +) + +$ErrorActionPreference = 'Stop' +Set-StrictMode -Version 2 + +$RepoRoot = Split-Path -Parent $PSScriptRoot +if (-not $PayloadRoot) { $PayloadRoot = $RepoRoot } +$PayloadRoot = (Resolve-Path -LiteralPath $PayloadRoot).Path +$FatMax = [int64]4GB - 1 + +function Say([string]$m) { Write-Host $m } +function Done([int]$code) { + if ($Interactive) { Write-Host ''; Read-Host 'Press Enter to close' | Out-Null } + exit $code +} +function Fail([string]$m) { Write-Host "ERROR: $m" -ForegroundColor Red; Done 1 } +trap { Write-Host "ERROR: $_" -ForegroundColor Red; Done 1 } + +foreach ($exe in 'ssh.exe', 'tar.exe') { + if (-not (Get-Command $exe -ErrorAction SilentlyContinue)) { Fail "$exe not found (Windows 10 1803 or later has both)" } +} +if (-not $Server) { + if (-not $Interactive) { Fail 'give -Server (the PXE server address; from the GE network its GE address)' } + Say 'Address of the running PXE server to copy from.' + Say 'From the GE network use its GE address; on the imaging switch 172.16.9.1.' + $Server = (Read-Host 'Server').Trim() + if (-not $Server) { Fail 'no server given' } +} +if ($Server -notmatch '^[A-Za-z0-9.\-:]+$') { Fail "not a host name or address: $Server" } + +# The Blancco files to refresh: whatever is already in boot-tools\blancco +# (the server also holds files its playbook builds; those are not pulled). +$blanccoDir = Join-Path $PayloadRoot 'boot-tools\blancco' +$blancco = @() +if (Test-Path -LiteralPath $blanccoDir) { + $blancco = @(Get-ChildItem -LiteralPath $blanccoDir -Force | ForEach-Object { $_.Name } | + Where-Object { $_ -match '^[A-Za-z0-9._+-]+$' }) +} + +# --- the script that runs on the server (bash, stdout = the tar stream) ----- +$remote = @' +set -euo pipefail +SHARE=${CAPTURE_SHARE:-/srv/samba/winpeapps} +WWW=${CAPTURE_WWW:-/var/www/html} +ST=$(mktemp -d /tmp/pxe-capture.XXXXXX) +trap 'rm -rf "$ST"' EXIT +SC=$ST/site-content +mkdir -p "$SC/shared/Applications" "$SC/images" "$ST/bios-staging" "$ST/boot-files" "$ST/boot-tools/blancco" +[ -d "$SHARE/_shared/Applications/extra" ] && ln -s "$SHARE/_shared/Applications/extra" "$SC/shared/Applications/extra" +printf '# imagename in Deploy/Applicationslink target under winpeapps/\n' >"$SC/links.txt" +for apps in "$SHARE"/*/Deploy/Applications; do + [ -d "$apps" ] || continue + img=${apps#"$SHARE"/}; img=${img%%/*} + case "$img" in _*) continue ;; esac + for e in "$apps"/* "$apps"/.[!.]*; do + [ -e "$e" ] || [ -L "$e" ] || continue + n=${e##*/} + if [ -L "$e" ]; then + t=$(readlink "$e") + case "$t" in + "$SHARE"/_shared/*) printf '%s\t%s\t%s\n' "$img" "$n" "${t#"$SHARE"/}" >>"$SC/links.txt" ;; + *) echo "WARNING: $img/Deploy/Applications/$n links outside _shared ($t); not captured" >&2 ;; + esac + continue + fi + # a real BPRT folder is an old import's copy of the vendor folder + [ "${n,,}" = bprt ] && continue + mkdir -p "$SC/images/$img/Applications" + ln -s "$e" "$SC/images/$img/Applications/$n" + done +done +for f in "$SHARE"/_shared/BIOS/*.exe "$SHARE"/_shared/BIOS/models.txt; do + [ -f "$f" ] && ln -s "$f" "$ST/bios-staging/${f##*/}" +done +[ -f "$WWW/win11/sources/boot.wim" ] && ln -s "$WWW/win11/sources/boot.wim" "$ST/boot-files/boot.wim" +for n in "$@"; do + [ -e "$WWW/blancco/$n" ] && ln -s "$WWW/blancco/$n" "$ST/boot-tools/blancco/$n" +done +EXCL=(--exclude=./site-content/shared/Applications/extra/pxe-status --exclude=Install-EngineeringLayer.ps1) +echo "pxe-capture: hashing on the server (a few minutes for about 12 GB)..." >&2 +( cd "$ST" && find -L . -type f ! -path './site-content/shared/Applications/extra/pxe-status/*' \ + ! -name Install-EngineeringLayer.ps1 ! -name capture-SHA256SUMS -print0 | + sort -z | xargs -0 -r sha256sum ) >"$ST/capture-SHA256SUMS.tmp" +mv "$ST/capture-SHA256SUMS.tmp" "$ST/capture-SHA256SUMS" +echo "pxe-capture: $(wc -l <"$ST/capture-SHA256SUMS") files; sending..." >&2 +tar -chf - -C "$ST" "${EXCL[@]}" . +'@ + +$scratch = Join-Path $PayloadRoot '.capture-new' +$old = Join-Path $PayloadRoot '.capture-old' +foreach ($d in $scratch, $old) { + if (Test-Path -LiteralPath $d) { Remove-Item -LiteralPath $d -Recurse -Force } +} +New-Item -ItemType Directory -Path $scratch | Out-Null +$remoteFile = Join-Path ([IO.Path]::GetTempPath()) ('pxe-capture-' + [guid]::NewGuid().ToString('N') + '.sh') +[IO.File]::WriteAllText($remoteFile, ($remote -replace "`r", ''), (New-Object System.Text.UTF8Encoding($false))) + +Say '============================================' +Say 'PXE site content capture (Windows)' +Say '============================================' +Say "Server : $User@$Server" +Say "Folder : $PayloadRoot" +Say "Blancco : $($blancco.Count) known files" +Say '' +Say "[1/3] Copying from the server (enter the $User password when asked)..." +# cmd's pipe passes bytes unchanged; a PowerShell pipe would re-encode the tar. +$names = ($blancco | ForEach-Object { "'" + $_ + "'" }) -join ' ' +$cmdline = "ssh.exe -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=30 $User@$Server `"bash -s -- $names`" < `"$remoteFile`" | tar.exe -xf - -C `"$scratch`"" +& cmd.exe /c $cmdline +$tarCode = $LASTEXITCODE +Remove-Item -LiteralPath $remoteFile -Force -ErrorAction SilentlyContinue + +$sumFile = Join-Path $scratch 'capture-SHA256SUMS' +if (-not (Test-Path -LiteralPath $sumFile)) { + Remove-Item -LiteralPath $scratch -Recurse -Force -ErrorAction SilentlyContinue + Fail "nothing usable arrived (ssh/tar exit $tarCode): wrong address or password, or the server is not reachable. Nothing was changed." +} + +Say '' +Say '[2/3] Checking every file against the server''s SHA-256...' +$lines = @([IO.File]::ReadAllLines($sumFile) | Where-Object { $_ }) +$want = @{} +$lower = @{} +$errors = New-Object System.Collections.Generic.List[string] +foreach ($l in $lines) { + if ($l -notmatch '^([0-9a-f]{64}) \./(.+)$') { $errors.Add("bad line in the server's list: $l"); continue } + $rel = $Matches[2] + $key = $rel.ToLowerInvariant() + if ($lower.ContainsKey($key)) { $errors.Add("names differ only in case (one would overwrite the other): $rel / $($lower[$key])") } + $lower[$key] = $rel + $want[$rel] = $Matches[1] +} +$i = 0 +foreach ($rel in $want.Keys) { + $i++ + if ($i % 25 -eq 0) { Write-Progress -Activity 'Verifying' -Status $rel -PercentComplete ([int](100 * $i / $want.Count)) } + $p = Join-Path $scratch ($rel -replace '/', '\') + if (-not (Test-Path -LiteralPath $p -PathType Leaf)) { $errors.Add("missing: $rel"); continue } + $f = Get-Item -LiteralPath $p + if ($f.Length -gt $FatMax) { $errors.Add("4 GiB or more (FAT32 cannot hold it): $rel") } + if ((Get-FileHash -LiteralPath $p -Algorithm SHA256).Hash.ToLowerInvariant() -ne $want[$rel]) { $errors.Add("differs from the server: $rel") } +} +Write-Progress -Activity 'Verifying' -Completed +if ($errors.Count -gt 0) { + Say "$($errors.Count) problem(s); nothing was changed:" + $errors | Select-Object -First 20 | ForEach-Object { Say " $_" } + Remove-Item -LiteralPath $scratch -Recurse -Force -ErrorAction SilentlyContinue + Fail 'capture not usable (long paths? see https://learn.microsoft.com/windows/win32/fileio/maximum-file-path-limitation)' +} +Say " $($want.Count) files match" + +# site-content\SHA256SUMS in the format the playbook checks (sha256sum -c, +# paths relative to site-content), from the server's own hashes. +$sc = New-Object System.Collections.Generic.List[string] +foreach ($l in $lines) { + if ($l -match '^([0-9a-f]{64}) \./site-content/(.+)$') { $sc.Add("$($Matches[1]) ./$($Matches[2])") } +} +[IO.File]::WriteAllText((Join-Path $scratch 'site-content\SHA256SUMS'), (($sc -join "`n") + "`n"), (New-Object System.Text.UTF8Encoding($false))) + +Say '' +Say '[3/3] Replacing the old content...' +New-Item -ItemType Directory -Path $old | Out-Null +function Swap([string]$rel) { + $new = Join-Path $scratch $rel + if (-not (Test-Path -LiteralPath $new)) { return } + $cur = Join-Path $PayloadRoot $rel + if (Test-Path -LiteralPath $cur) { + $bak = Join-Path $old $rel + New-Item -ItemType Directory -Path (Split-Path -Parent $bak) -Force | Out-Null + Move-Item -LiteralPath $cur -Destination $bak + } + New-Item -ItemType Directory -Path (Split-Path -Parent $cur) -Force | Out-Null + Move-Item -LiteralPath $new -Destination $cur + Say " $rel" +} +Swap 'site-content' +Swap 'bios-staging' +Swap 'boot-files\boot.wim' +foreach ($n in $blancco) { Swap (Join-Path 'boot-tools\blancco' $n) } +Remove-Item -LiteralPath $old -Recurse -Force -ErrorAction SilentlyContinue +Remove-Item -LiteralPath $scratch -Recurse -Force -ErrorAction SilentlyContinue + +$size = (Get-ChildItem -LiteralPath (Join-Path $PayloadRoot 'site-content') -Recurse -File | Measure-Object Length -Sum).Sum +Say '' +Say ('Done: site-content {0:N1} GB, {1} files. Build the USB next (Build-PxeUsb.cmd).' -f ($size / 1GB), $sc.Count) +Done 0 diff --git a/scripts/build-pctype-media.py b/scripts/build-pctype-media.py deleted file mode 100755 index 994b698..0000000 --- a/scripts/build-pctype-media.py +++ /dev/null @@ -1,271 +0,0 @@ -#!/usr/bin/env python3 -""" -build-pctype-media.py - Build a per-PCTYPE PESetup media view out of symlinks. - -PESetup's CopyPackages copies the WHOLE of \\Deploy\\Applications recursively -to the target (see docs/PESETUP-INTERNALS.md). It does not filter, so every shopfloor -bay built from the shared gea-shopfloor media receives every shopfloor payload -regardless of its PC type. - -Rather than mutate the shared media per session - which races, because bays image -concurrently and CopyPackages is fail-fast, so pulling a path mid-copy fails the -OTHER bay's imaging - give each PC type its own media directory built entirely from -symlinks. Samba resolves them server-side (follow symlinks + wide links are already -on, and every image root already uses this pattern for Sources, Operating Systems, -Out-of-box Drivers and Packages), so WinPE sees ordinary directories. - -Layout produced, per type: - - _media// - Sources -> base Sources - Tools -> base Tools - Deploy/Control -> base Deploy/Control - Deploy/FlatUnattendW10.xml -> base Deploy/FlatUnattendW10.xml - Deploy/Operating Systems -> base Deploy/Operating Systems - Deploy/Out-of-box Drivers -> base Deploy/Out-of-box Drivers - Deploy/Packages -> base Deploy/Packages - Deploy/Tools -> base Deploy/Tools - Deploy/Applications/ real directory holding: - -> base entry - > -> that entry - -Everything is a link, so a type costs inodes rather than gigabytes, and the shared -media stays untouched and readable while bays image. - -The type list comes from the enrollment share's menu.json, the same file the WinPE -picker renders, so the media set cannot drift from the boot menu. - -Usage: - ./build-pctype-media.py # show the plan, change nothing - ./build-pctype-media.py --apply # build or refresh the media dirs - ./build-pctype-media.py --verify # resolve every link, report breaks - ./build-pctype-media.py --apply --prune # also remove types no longer listed - ./build-pctype-media.py --base gea-standard --prefix _media-std --apply - -Requires: sshpass (remote mode only) -""" - -import argparse -import json -import posixpath -import subprocess -import sys - -PXE_HOST = "172.16.9.1" -PXE_USER = "pxe" -PXE_PASS = "pxe" -IMAGE_BASE = "/srv/samba/winpeapps" -SHARED = IMAGE_BASE + "/_shared" -MENU_JSON = "/srv/samba/enrollment/shopfloor-setup/menu.json" - -# Underscore prefix keeps these out of the webapp's image-type listing, the same way -# _shared is skipped. They are media views, not image types. -MEDIA_PREFIX = "_media" -DEFAULT_BASE = "gea-shopfloor" - -# Per-type payload lives here. Absent dir just means "nothing type-specific yet". -PCTYPE_OVERLAY = SHARED + "/Applications/pctype" - -# Deploy entries linked straight through from the base image. Anything else in the -# base Deploy (the FlatUnattendW10.xml.pre-* backups, stray logs) is deliberately -# NOT mirrored - the media view is the clean set PESetup actually reads. -DEPLOY_LINKS = [ - "Control", - "FlatUnattendW10.xml", - "Operating Systems", - "Out-of-box Drivers", - "Packages", - "Tools", -] -ROOT_LINKS = ["Sources", "Tools"] - -# PESetup will not get far without these, so they are what --verify resolves. -CRITICAL_PATHS = [ - "Sources/PESetup.exe", - "Deploy/Control/HardwareDriver.json", - "Deploy/Control/OperatingSystem.json", - "Deploy/FlatUnattendW10.xml", - "Deploy/Operating Systems", - "Deploy/Out-of-box Drivers", -] - - -def ssh_cmd(host, cmd, stdin=None): - return subprocess.run( - ["sshpass", "-p", PXE_PASS, "ssh", "-o", "StrictHostKeyChecking=no", - "-o", "LogLevel=ERROR", f"{PXE_USER}@{host}", cmd], - capture_output=True, text=True, input=stdin) - - -def sh_quote(s): - return "'" + str(s).replace("'", "'\\''") + "'" - - -def run_root(host, script, apply_it): - """Server-side work needs root: the share is root-owned. - - The script travels inside the command as a heredoc, not on stdin. "echo pxe | - sudo -S bash -s" hands the password pipe to bash as well, so bash reads EOF - immediately, runs nothing, and still exits 0 - a silent no-op.""" - if not apply_it: - return None - remote = "/tmp/build-pctype-media.$$.sh" - wrapped = ( - "cat > %s <<'PCTYPEMEDIAEOF'\n%s\nPCTYPEMEDIAEOF\n" - "echo pxe | sudo -S -p '' bash %s; rc=$?; rm -f %s; exit $rc" - % (remote, script, remote, remote)) - r = ssh_cmd(host, wrapped) - if r.returncode != 0: - sys.exit("ERROR: server-side step failed:\n%s\n%s" % (r.stdout, r.stderr)) - return r.stdout - - -def read_types(host, menu_path): - r = ssh_cmd(host, "cat %s" % sh_quote(menu_path)) - if r.returncode != 0: - sys.exit("ERROR: cannot read %s (%s)" % (menu_path, r.stderr.strip())) - try: - menu = json.loads(r.stdout) - except json.JSONDecodeError as e: - sys.exit("ERROR: %s does not parse: %s" % (menu_path, e)) - types = [e["key"] for e in menu.get("shopfloor", []) - if e.get("enabled", True) and e.get("key")] - if not types: - sys.exit("ERROR: no enabled types in %s" % menu_path) - return types - - -def list_dir(host, path): - r = ssh_cmd(host, "ls -1 %s 2>/dev/null" % sh_quote(path)) - return [n for n in r.stdout.splitlines() if n] if r.returncode == 0 else [] - - -def plan_for_type(base_dir, media_dir, pctype, base_apps, overlay_entries): - """Every link this type needs, as (link_path, target) pairs.""" - links = [] - for name in ROOT_LINKS: - links.append((posixpath.join(media_dir, name), - posixpath.join(base_dir, name))) - for name in DEPLOY_LINKS: - links.append((posixpath.join(media_dir, "Deploy", name), - posixpath.join(base_dir, "Deploy", name))) - apps_dir = posixpath.join(media_dir, "Deploy", "Applications") - for name in base_apps: - links.append((posixpath.join(apps_dir, name), - posixpath.join(base_dir, "Deploy", "Applications", name))) - # Overlay wins: a type-specific entry replaces the base entry of the same name. - overlay_dir = posixpath.join(PCTYPE_OVERLAY, pctype) - for name in overlay_entries: - links.append((posixpath.join(apps_dir, name), - posixpath.join(overlay_dir, name))) - return links - - -def build_script(media_dir, links): - """Rebuild the type's dir from scratch. Idempotent, and drops stale links. - - Builds into a scratch dir and swaps, so a bay that maps this path mid-refresh - sees either the old tree or the new one, never a half-built one.""" - tmp = media_dir + ".new" - out = ["set -e", "rm -rf %s" % sh_quote(tmp)] - dirs = {posixpath.dirname(link) for link, _ in links} - for d in sorted(dirs): - out.append("mkdir -p %s" % sh_quote(d.replace(media_dir, tmp, 1))) - for link, target in links: - out.append("ln -s %s %s" % (sh_quote(target), - sh_quote(link.replace(media_dir, tmp, 1)))) - out.append("rm -rf %s" % sh_quote(media_dir + ".old")) - out.append("if [ -e %s ]; then mv %s %s; fi" - % (sh_quote(media_dir), sh_quote(media_dir), sh_quote(media_dir + ".old"))) - out.append("mv %s %s" % (sh_quote(tmp), sh_quote(media_dir))) - out.append("rm -rf %s" % sh_quote(media_dir + ".old")) - return "\n".join(out) + "\n" - - -def verify(host, media_root, types): - """Resolve the paths PESetup reads. A dangling link here is a dead media view.""" - checks = [] - for pctype in types: - for rel in CRITICAL_PATHS: - checks.append(posixpath.join(media_root, pctype, rel)) - script = "\n".join("if [ -e %s ]; then echo \"OK %s\"; else echo \"DEAD %s\"; fi" - % (sh_quote(p), p, p) for p in checks) - r = ssh_cmd(host, "bash -s", stdin=script) - dead = [line for line in r.stdout.splitlines() if line.startswith("DEAD")] - for line in r.stdout.splitlines(): - if line.startswith("DEAD"): - print(" " + line) - print(" %d paths checked, %d dead" % (len(checks), len(dead))) - return len(dead) - - -def main(): - parser = argparse.ArgumentParser( - description="Build per-PCTYPE PESetup media views out of symlinks.") - parser.add_argument("--server", default=PXE_HOST, help="PXE server (default: %s)" % PXE_HOST) - parser.add_argument("--base", default=DEFAULT_BASE, - help="image type the view is built from (default: %s)" % DEFAULT_BASE) - parser.add_argument("--prefix", default=MEDIA_PREFIX, - help="directory under winpeapps to hold the views (default: %s)" - % MEDIA_PREFIX) - parser.add_argument("--menu", default=MENU_JSON, help="menu.json path on the server") - parser.add_argument("--types", nargs="+", help="explicit type list, bypassing menu.json") - parser.add_argument("--apply", action="store_true", help="write; default is a dry run") - parser.add_argument("--prune", action="store_true", - help="remove media views whose type is no longer listed") - parser.add_argument("--verify", action="store_true", - help="resolve the critical paths in each view and exit") - args = parser.parse_args() - - base_dir = posixpath.join(IMAGE_BASE, args.base) - media_root = posixpath.join(IMAGE_BASE, args.prefix) - types = args.types or read_types(args.server, args.menu) - - if args.verify: - print("Verifying %d media views under %s" % (len(types), media_root)) - return 1 if verify(args.server, media_root, types) else 0 - - base_apps = list_dir(args.server, posixpath.join(base_dir, "Deploy", "Applications")) - if not base_apps: - sys.exit("ERROR: %s/Deploy/Applications is empty or unreadable" % base_dir) - - print("base image : %s" % base_dir) - print("media root : %s" % media_root) - print("types : %d from %s" % (len(types), "--types" if args.types else args.menu)) - print("base apps : %s" % ", ".join(base_apps)) - print() - - total_links = 0 - for pctype in types: - media_dir = posixpath.join(media_root, pctype) - overlay_entries = list_dir(args.server, posixpath.join(PCTYPE_OVERLAY, pctype)) - links = plan_for_type(base_dir, media_dir, pctype, base_apps, overlay_entries) - total_links += len(links) - print("%-32s %2d links%s" % ( - pctype, len(links), - " overlay: " + ", ".join(overlay_entries) if overlay_entries else "")) - run_root(args.server, build_script(media_dir, links), args.apply) - - print() - if args.prune: - existing = list_dir(args.server, media_root) - stale = [n for n in existing if n not in types and not n.endswith((".new", ".old"))] - for name in stale: - print("prune %s" % posixpath.join(media_root, name)) - run_root(args.server, "rm -rf %s\n" % sh_quote(posixpath.join(media_root, name)), - args.apply) - if not stale: - print("prune: nothing stale") - print() - - if not args.apply: - print("DRY RUN: %d links across %d types. Re-run with --apply to build." - % (total_links, len(types))) - return 0 - - print("Built %d links across %d types. Verifying." % (total_links, len(types))) - return 1 if verify(args.server, media_root, types) else 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/scripts/build-proxmox-iso.sh b/scripts/build-proxmox-iso.sh deleted file mode 100755 index 7b0e441..0000000 --- a/scripts/build-proxmox-iso.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# -# build-proxmox-iso.sh - UNSUPPORTED, kept only to say what to use instead. -# -# This script built a second, hand-maintained copy of the installer -# (its own late-commands and first-boot script). It drifted from -# autoinstall/user-data: it kept the dead-mirror apt block but dropped the -# step that writes the real archive sources back, installed the debs with -# "dpkg -i ... || true" instead of the checked offline-apt-install.sh path, -# had no site vars (so the two-NIC playbook always stopped), and no -# first-boot failure handling. Rather than keep two installers in step, -# there is one: build-usb.sh. Its image mode needs no root and gives a disk -# image a Proxmox VM boots directly: -# -# scripts/build-usb.sh --site-vars site-vars.yml --image pxe-usb.img auto \ -# ubuntu-24.04.x-live-server-amd64.iso -# # on the Proxmox host: -# qm importdisk pxe-usb.img -# # attach it as a second disk (or USB), boot order: system disk, then it -# -# The VM needs two NICs (imaging bridge with no other DHCP server, and the -# corp/GE bridge); put their MACs in site-vars.yml. tests/vm/ does the same -# with libvirt. - -echo "build-proxmox-iso.sh is no longer supported (it drifted from autoinstall/user-data)." >&2 -echo "Use: scripts/build-usb.sh --site-vars FILE --image pxe-usb.img auto UBUNTU.iso" >&2 -echo "then on Proxmox: qm importdisk pxe-usb.img (see the header of this script)." >&2 -exit 1 diff --git a/scripts/build-usb.sh b/scripts/build-usb.sh index 60fd4e5..1b81a49 100755 --- a/scripts/build-usb.sh +++ b/scripts/build-usb.sh @@ -30,10 +30,9 @@ # --skip-bios do not copy bios-staging/ # --skip-drivers do not copy drivers-staging/ # --skip-boot-tools do not copy boot-tools/ -# --skip-site-content do not copy site-content/ (Office, Adobe, certs, -# Engineering Layer...: scripts/capture-site-content.sh). -# Without it a new server cannot build standard or -# engineer until that content is copied over by hand. +# --skip-site-content do not copy site-content/ even if present (optional +# content captured from a running server with +# scripts/capture-site-content.sh). # --site-vars FILE put FILE on CIDATA as playbook/site-vars.yml # (per-site values; see playbook/site-vars.example.yml) # --no-site-vars build without site vars (defaults; the first boot @@ -321,11 +320,12 @@ fi # never split: a file FAT32 cannot hold refuses the build instead. if [ -n "$SITE_CONTENT_DIR" ]; then if [ ! -d "$SITE_CONTENT_DIR" ]; then - echo "ERROR: no site-content/ in $PAYLOAD_ROOT. Run scripts/capture-site-content.sh --apply" - echo " (or pass --skip-site-content: the new server then lacks Office, Adobe, certs" - echo " and the Engineering Layer until they are copied by hand)." - exit 1 + # Optional: a site with no other PXE server has none. + echo "No site-content/ in $PAYLOAD_ROOT (optional): building without it" + SITE_CONTENT_DIR="" fi +fi +if [ -n "$SITE_CONTENT_DIR" ]; then if [ ! -f "$SITE_CONTENT_DIR/SHA256SUMS" ]; then echo "ERROR: site-content/SHA256SUMS missing. Re-run scripts/capture-site-content.sh --apply" exit 1 @@ -683,8 +683,7 @@ echo " Copied playbook/" if [ -n "$SITE_VARS" ]; then echo " Copied $SITE_VARS as playbook/site-vars.yml" else - echo " WARNING: --no-site-vars: the first-boot playbook stops until" - echo " pxe_nic_mac / corp_nic_mac are set on the server." + echo " --no-site-vars: defaults; the first boot picks the imaging NIC by its link" fi # The unattend linter the playbook runs before it replaces the answer files # ({{ usb_mount }}/../scripts/lint-unattend.py). @@ -860,11 +859,12 @@ if [ "$IMAGE_MODE" -eq 1 ]; then echo " or attach it to a VM as a USB disk (see tests/vm/README.md)." else echo "Next steps:" - echo " 1. Cable both NICs: the imaging NIC (pxe_nic_mac) to the isolated" - echo " imaging switch, the corp NIC (corp_nic_mac) to the GE network" + echo " 1. Plug in ONLY the imaging switch (GE unplugged), unless site-vars" + echo " pins both MACs" echo " 2. Insert USB into the target machine, boot from it (F12 / boot menu)" - echo " 3. Ubuntu auto-installs; on first boot the playbook pins the NICs by" - echo " MAC (imaging = static 172.16.9.1, corp = DHCP) and sets up PXE" + echo " 3. Ubuntu auto-installs; on first boot the playbook picks and pins the" + echo " imaging NIC (static 172.16.9.1) and sets up PXE. Then plug GE into" + echo " any other port" echo " 4. Check /var/log/first-boot.log; a failure shows a banner at login" echo " and on the console, and first boot retries at the next reboot" fi diff --git a/scripts/deploy-bios.sh b/scripts/deploy-bios.sh deleted file mode 100755 index e08382b..0000000 --- a/scripts/deploy-bios.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# deploy-bios.sh - Deploy BIOS update files to a running PXE server -# Copies Flash64W.exe, BIOS binaries, models.txt, and check-bios.cmd -# -# Usage: ./deploy-bios.sh [server-ip] -# Default server: 172.16.9.1 - -set -e - -REPO_ROOT="$(cd "$(dirname "$0")"/.. && pwd)" -PXE_SERVER="${1:-172.16.9.1}" -PXE_USER="pxe" -PXE_PASS="pxe" -REMOTE_DIR="/srv/samba/enrollment/BIOS" -BIOS_DIR="$REPO_ROOT/bios-staging" -MANIFEST="$REPO_ROOT/playbook/shopfloor-setup/BIOS/models.txt" -CHECK_SCRIPT="$REPO_ROOT/playbook/shopfloor-setup/BIOS/check-bios.cmd" - -SSH="sshpass -p $PXE_PASS ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 $PXE_USER@$PXE_SERVER" -SCP="sshpass -p $PXE_PASS scp -o StrictHostKeyChecking=no -o ConnectTimeout=10" - -# Verify sources exist -if [ ! -d "$BIOS_DIR" ] || [ -z "$(ls -A "$BIOS_DIR" 2>/dev/null)" ]; then - echo "ERROR: bios-staging/ is empty or missing. Run scripts/capture-site-content.sh --apply first." - exit 1 -fi - -if [ ! -f "$MANIFEST" ]; then - echo "ERROR: playbook/shopfloor-setup/BIOS/models.txt not found." - exit 1 -fi - -echo "Deploying BIOS files to $PXE_SERVER..." - -# Create remote directory -$SSH "sudo mkdir -p '$REMOTE_DIR' && sudo chown $PXE_USER:$PXE_USER '$REMOTE_DIR'" - -# Copy check-bios.cmd and models.txt -echo " Copying check-bios.cmd + models.txt..." -$SCP "$CHECK_SCRIPT" "$MANIFEST" "$PXE_USER@$PXE_SERVER:$REMOTE_DIR/" - -# Copy BIOS binaries -COUNT=$(find "$BIOS_DIR" -name '*.exe' | wc -l) -SIZE=$(du -sh "$BIOS_DIR" | cut -f1) -echo " Copying $COUNT BIOS binaries ($SIZE)..." -$SCP "$BIOS_DIR"/*.exe "$PXE_USER@$PXE_SERVER:$REMOTE_DIR/" - -# Verify -REMOTE_COUNT=$($SSH "find '$REMOTE_DIR' -name '*.exe' | wc -l") -echo "Done: $REMOTE_COUNT files on $PXE_SERVER:$REMOTE_DIR" diff --git a/scripts/download-drivers.py b/scripts/download-drivers.py index 999bb01..82c07ea 100755 --- a/scripts/download-drivers.py +++ b/scripts/download-drivers.py @@ -848,7 +848,7 @@ def main(): print(f"\n Add these lines to playbook/shopfloor-setup/BIOS/models.txt:") for line in models_txt: print(f" {line}") - print(f" Then re-deploy via scripts/deploy-bios.sh.") + print(f" Then upload them through the webapp (Updates > Dell drivers and BIOS) or re-run the playbook.") # --- Save manifest --- completed, skipped, errors = counters["completed"], counters["skipped"], counters["errors"] diff --git a/scripts/e10-client.py b/scripts/e10-client.py deleted file mode 100644 index d1a2495..0000000 --- a/scripts/e10-client.py +++ /dev/null @@ -1,1255 +0,0 @@ -#!/usr/bin/env python3 -"""Talk to a SIC Marking e10-V6 marking controller over RS-232. - -Written against NOTPROTOE10V6US-R08 (the e10-V6 communication protocol manual) -and VERIFIED against a real controller on 2026-08-27 - a P63, firmware -"E10 P63 (20140924)". Listing, reading and the machine query all work over the -HOST port; a 52-file snapshot came off it in one command. - -Two things the hardware taught us that the manual gets wrong: - - File names are CASE-SENSITIVE and not always uppercase (see encode_name). - - File kinds 1 and 7 exist and are readable, though the manual lists only - 0/2/4/5. Kind 1 is where the controller configuration lives, which is what - makes a complete settings snapshot possible. - -Still unverified against hardware: the marking path itself (LOAD FILE, -FILE SET VAR, START MARKING). Those move a stylus, so they wait for a -deliberate session rather than a probe. - -WHY BINARY AND NOT TEXT - The manual defines two protocols. The TEXT one is easier to read and is - what SIC's own support quoted at us, but it cannot carry the values this - integration needs: - - 1. Space is the TEXT protocol's delimiter - data is defined as "the data - of the command ( without Space char)". The GE marker software blanks - every field to a SINGLE SPACE before setting values ("TmcClrFlds: Put - a SPACE in each field."). A value that IS a space is unrepresentable. - 2. Real GE part programs mark text containing runs of spaces, e.g. - "S/N 4AM79". TEXT protocol handling of embedded and - consecutive spaces is undefined by the manual. - 3. TEXT frames carry NO checksum of any kind. The Telesis protocol this - replaces has a BCC on every frame in both directions. - - BINARY FILE SET VAR ('7') carries the value as length-framed bytes, 1 to - 127 of them, so a lone space is legal and space runs survive. And the - binary framing has an optional XOR checksum. Hence: binary for anything - that reaches a part, text for bench poking only. - -FRAMING (manual section I.3.a) - without checksum: [STX][NUL][VER] ... [ETX] - with checksum: [STX][VER] ... [ETX][XOR] - - VER is '5' (0x35). The XOR covers every byte of the string INCLUDING STX - and ETX. A NUL directly after STX is what disables checksum control, which - is why every worked example in the manual starts 02 00 35. - - command: [code][size hi][size lo][data] (size is big-endian) - - The manual also defines a break-code command form for when you do not want - to count the data. Not implemented - the length form is unambiguous and we - always know our own lengths. - -RESPONSES (manual section I.3.b) - Whole-string errors arrive as one bare byte: - BS checksum error HT bad string syntax NAK timeout - Otherwise: [STX] ... [ETX] - where answer is [original code][size hi][size lo][data], and data is very - often a single return code: - ACK ok HT wrong data syntax - BEL file not found LF variable not found - -MARKING COMPLETION IS ASYNCHRONOUS AND TWO-STAGE (manual, START MARKING 'g') - After the ACK for the start command: - [EOT] last impact done - [ENQ] head back at home position - [NAK][status(3)] fault, and the error must then be reset - DONE MEANS ENQ, NOT EOT. Calling it done at EOT reports a finished cycle - while the head is still travelling, which at a bay means an operator - reaching for a part that is still moving. - -PAUSE LINES ARE NOT OURS TO ANSWER - At a PAUSE line the controller sends 'P' and waits for either 'p' on the - serial line or the physical Start button. This client NEVER sends 'p'. A - pause exists so a human can reposition the part; answering it from software - resumes marking on a part nobody has touched. wait_for_mark() surfaces the - pause to the caller and keeps waiting. - -DELETE IS DELIBERATELY ABSENT - DEL_FILE ('D') exists and is documented. It is not implemented here, for - the same reason Telesis TYPE 'R' was left out of TelesisMarker.psm1: a - backup tool that can delete is a backup tool that can be made to delete. - -LINK LAYER - e10 HOST port is fixed at 9600-8-N-1 and cannot be reconfigured. Pins - 4/6/7/8 are NC, so there are no handshake lines and hardware flow control - is impossible - the port is opened with flow control off and the manual's - own backpressure rule applies instead: 500-byte controller buffer, do not - push faster than it drains, 40000 bytes maximum per string. - - Both ends are DTE (each calls pin 2 RX and pin 3 TX), so the cable must be - a crossover: 3 to 2, 2 to 3, 5 to 5. - -RUNS ON LINUX AND WINDOWS, stdlib only - no pyserial. Serial access sits -behind open_port(): termios on POSIX, the Win32 API through ctypes on Windows. -That choice is deliberate rather than purist: these tools have to run on -locked-down, air-gapped shopfloor machines where installing a package is a -project of its own. - -Pick the port with -d, or set E10_PORT once: - Windows set E10_PORT=COM4 Linux export E10_PORT=/dev/ttyUSB0 -""" - -import argparse -import os -import sys -import time - -# Serial access differs per platform and neither module exists on the other. -# termios is POSIX; the Windows path goes through the Win32 API via ctypes so -# there is nothing to pip-install on an air-gapped shopfloor PC. -if os.name == "nt": - import ctypes - from ctypes import wintypes - termios = None -else: - import termios - -# framing -STX = 0x02 -ETX = 0x03 -VERSION = 0x35 # '5', protocol version byte - -# return codes and whole-string errors -EOT = 0x04 # last impact marked -ENQ = 0x05 # back at home position -ACK = 0x06 # success -BEL = 0x07 # file not found -BS = 0x08 # checksum error (whole string) -HT = 0x09 # bad syntax -LF_ = 0x0A # variable not found -NAK = 0x15 # timeout, or fault during marking -PAUSE_ASK = 0x50 # 'P', controller waiting at a PAUSE line -PAUSE_ANSWER = 0x70 # 'p'. deliberately never sent. see module docstring. - -# command codes, manual section I.3.c -CMD_LOAD_FILE = 0x63 # 'c' -CMD_FILE_SET_VAR = 0x37 # '7' -CMD_START_MARKING = 0x67 # 'g' -CMD_RESET_ERROR = 0x45 # 'E' -CMD_FILE_LIST = 0x4C # 'L' -CMD_PC_TO_E10 = 0x47 # 'G' -CMD_E10_TO_PC = 0x53 # 'S' -CMD_GET_MACHINE = 0x81 - -# file kinds, manual FILE LIST -KIND_ALL = 0 - -# 1 and 7 are UNDOCUMENTED - the manual lists only 0/2/4/5. Found on a real -# controller: kind 1 holds ConfigCtrl (the controller configuration), -# File-Select (the digital-input file selection map) and FolderDef; kind 7 held -# SAVE_ACC_1, which looks like accessory or axis data. They pull fine over -# E10_TO_PC, which is what makes a complete settings snapshot possible at all. -KIND_CONFIG = 1 -KIND_MARKING = 2 -KIND_DOT_LOGO = 4 -KIND_SCRIBBLE_LOGO = 5 -KIND_ACCESSORY = 7 - -KIND_NAMES = { - KIND_CONFIG: "config", - KIND_MARKING: "marking", - KIND_DOT_LOGO: "dotlogo", - KIND_SCRIBBLE_LOGO: "scribblelogo", - KIND_ACCESSORY: "accessory", -} - -# Files whose contents carry the programmer/supervisor password in cleartext. -# They ARE captured - a config snapshot is the only thing that restores a -# controller as it was - but anything that renders a snapshot to a human should -# check this first and show the name only. -SENSITIVE_NAMES = ("ConfigCtrl",) - - -def is_sensitive(name): - """True if this file's contents hold a credential.""" - return name in SENSITIVE_NAMES - -# name field is 11 bytes plus one reserved NUL byte -NAME_LEN = 11 -NAME_FIELD_LEN = 12 -LIST_ENTRY_LEN = 19 # name 11 + reserved 1 + kind 1 + size 2 + reserved 4 - -RETURN_CODE_TEXT = { - ACK: "ok", - HT: "wrong data syntax", - BEL: "file not found", - LF_: "variable not found", -} - -STRING_ERROR_TEXT = { - BS: "checksum error", - HT: "bad string syntax", - NAK: "timeout", -} - - -# Marking fault bits, manual fig 1. The status is 3 bytes, most significant -# first, and the bits combine - 00 30 00 is out-of-bounds on X (10 00 + 20 00). -FAULT_BITS = [ - (0, 0x01, "marking font"), - (0, 0x02, "dot logo"), - (0, 0x04, "vectorial logo"), - (0, 0x08, "Ecc200"), - (0, 0x10, "text zone syntax"), - (0, 0x20, "variable"), - (0, 0x40, "I/O"), - (0, 0x80, "RS232"), - (1, 0x01, "stop button activated"), - (1, 0x02, "stylus"), - (1, 0x04, "motor"), - (1, 0x08, "sensor"), - (1, 0x10, "out of marking window bounds"), - (1, 0x20, "X axis"), - (1, 0x40, "Y axis"), - (1, 0x80, "accessory axis"), - (2, 0x01, "blocked feeder, or autosensing found no part"), - (2, 0x02, "empty feeder, part out of bounds, or binary axis"), - (2, 0x04, "marking head lost steps"), - (2, 0x08, "external motor"), - (2, 0x10, "history full"), - (2, 0x20, "duplicate detected for history"), - (2, 0x40, "stylus needs changing"), - (2, 0x80, "stylus has to be changed"), -] - - -def decode_fault(status): - """Turn a 3-byte marking status into readable reasons.""" - # the wire order is most significant byte first, so index 2 is Err1 - ordered = [status[2], status[1], status[0]] if len(status) == 3 else [] - reasons = [] - for index, mask, text in FAULT_BITS: - if index < len(ordered) and ordered[index] & mask: - reasons.append(text) - return reasons or ["unknown status %s" % status.hex()] - - -class E10Error(Exception): - """Any protocol-level failure talking to the controller.""" - - -class E10Fault(E10Error): - """Controller reported a fault. Carries the raw 3-byte machine status.""" - - def __init__(self, status): - self.status = status - self.reasons = decode_fault(status) - super().__init__("marking fault [%s]: %s" - % (status.hex(" "), "; ".join(self.reasons))) - - -DEFAULT_PORT_LINUX = "/dev/ttyUSB0" - - -def default_port(): - """Which serial port to talk to, without editing any source. - - Order of precedence: - 1. the --device / -d argument - 2. the E10_PORT environment variable - 3. a per-platform default - - Set E10_PORT once and every tool here picks it up. On Windows that is a - COM name as Device Manager shows it; on Linux a device path. - - Windows set E10_PORT=COM4 - Linux export E10_PORT=/dev/ttyUSB0 - """ - from_env = os.environ.get("E10_PORT") - if from_env: - return from_env - - # NEVER blind-default to a fixed COM number on Windows. A wrong-but-real - # port opens without error and answers nothing, which is indistinguishable - # from a dead cable - it cost a debugging round trip when the default was - # COM3 (an onboard \Device\Serial0) while the adapter was COM4. - # Prefer a port that is clearly a USB virtual COM port; if that is - # ambiguous, say so rather than guessing. - if os.name == "nt": - ports = list_ports() - virtual = [name for name, detail in ports - if "VCP" in detail.upper() or "USB" in detail.upper()] - if len(virtual) == 1: - return virtual[0] - if not ports: - raise E10Error( - "no serial ports on this machine. Plug the USB-serial adapter" - " in, then run: e10-client.py ports") - raise E10Error( - "cannot tell which port to use - set E10_PORT or pass -d.\n" - " available: %s\n" - " the adapter is normally the \\Device\\VCP* one.\n" - " example: set E10_PORT=%s" - % (", ".join("%s (%s)" % (n, d or "?") for n, d in ports), - (virtual or [ports[0][0]])[0])) - return DEFAULT_PORT_LINUX - - - -def list_ports(): - """Every serial port this machine actually has, with a description. - - Windows: read HKLM\\HARDWARE\\DEVICEMAP\\SERIALCOMM, which lists only - real, present serial devices - so a port missing from here does not exist - right now, whatever Device Manager showed last week. - - Linux: glob the usual device nodes. - """ - found = [] - if os.name == "nt": - import winreg - try: - key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, - r"HARDWARE\DEVICEMAP\SERIALCOMM") - except OSError: - return found - index = 0 - while True: - try: - name, value, _ = winreg.EnumValue(key, index) - except OSError: - break - found.append((value, name)) - index += 1 - winreg.CloseKey(key) - else: - import glob - for path in sorted(glob.glob("/dev/ttyUSB*") + - glob.glob("/dev/ttyACM*")): - found.append((path, _linux_detail(path))) - # ttyS0..ttyS31 exist as 8250 placeholders on almost every Linux - # machine and are nearly all phantom - every discriminator I tried - # (a /sys device node, a bound driver) is true for all 32. Listing - # them buries the one port that matters under 32 lines of noise, and - # a USB adapter is never one of them, so they are summarised instead. - legacy = sorted(glob.glob("/dev/ttyS*")) - if legacy: - found.append(("(%d x /dev/ttyS*)" % len(legacy), - "legacy onboard ports, rarely the adapter")) - return found - - -def _linux_detail(path): - """Best-effort description of a USB serial adapter.""" - base = os.path.basename(path) - try: - link = os.path.realpath("/sys/class/tty/%s/device" % base) - for _ in range(4): - link = os.path.dirname(link) - product = os.path.join(link, "product") - if os.path.exists(product): - with open(product) as handle: - return handle.read().strip() - except OSError: - pass - return "" - - -def doctor(device, timeout=3.0): - """Work out why a port is silent, one layer at a time.""" - print("PORT DISCOVERY") - ports = list_ports() - if not ports: - print(" no serial ports found on this machine at all") - for name, detail in ports: - mark = " <-- configured" if name.upper() == (device or "").upper() else "" - print(" %-10s %s%s" % (name, detail, mark)) - - print() - print("CONFIGURED PORT: %s" % device) - if os.name == "nt" and ports: - names = [n.upper() for n, _ in ports] - if device.upper() not in names: - print(" *** NOT IN THE LIST ABOVE ***") - print(" This port does not exist. Set E10_PORT to one that does:") - print(" set E10_PORT=%s" % ports[0][0]) - return - - if os.name == "nt" and ports: - detail = dict((n.upper(), d) for n, d in ports).get( - (device or "").upper(), "") - virtual = [n for n, d in ports - if "VCP" in d.upper() or "USB" in d.upper()] - if virtual and device.upper() not in [v.upper() for v in virtual]: - print(" WARNING: %s is %s, which is not a USB adapter." - % (device, detail or "an onboard port")) - print(" A port like this opens fine and answers nothing.") - print(" The adapter is probably: %s" % ", ".join(virtual)) - - print() - print("OPENING") - try: - port = open_port(device) - except E10Error as err: - print(" FAILED: %s" % err) - return - print(" opened ok") - if os.name == "nt": - print(" handle: 0x%X (a plausible handle is small and non-zero;" - " 0xFFFFFFFFFFFFFFFF means the open really failed)" - % port.handle) - - print() - print("WRITING") - probe = b"GETDATETIME\n" - try: - port.write(probe) - print(" wrote %d bytes: %r" % (len(probe), probe)) - except E10Error as err: - print(" FAILED: %s" % err) - port.close() - return - - print() - print("READING for %.1fs" % timeout) - got = bytearray() - end = time.monotonic() + timeout - while time.monotonic() < end: - chunk = port.read(256) - if chunk: - got += chunk - else: - time.sleep(0.01) - port.close() - - if got: - print(" %d bytes: %s" % (len(got), bytes(got).hex(" "))) - print(" as text : %r" % bytes(got)) - print() - print(" THE LINK WORKS.") - else: - print(" nothing came back.") - print() - print(" The port opened and the write succeeded, so the software and") - print(" the driver are fine. That leaves, in order:") - print(" 1. WRONG PORT - it opened, but is it the adapter? A") - print(" Bluetooth or virtual COM port opens happily and never") - print(" answers. Unplug the adapter, re-run, and see which") - print(" entry disappears from the list above.") - print(" 2. CABLE - both ends are DTE, so it must be a CROSSOVER.") - print(" Meter it: pin 2 at one end to pin 3 at the other.") - print(" 3. WRONG SOCKET on the controller - use HOST, not SERIAL.") - print(" 4. Controller powered off, or not finished booting.") - - -def encode_name(name): - """Pack a file name into the 12-byte name field the controller expects. - - No spaces, 11 characters maximum, NUL padded. - - CASE IS PRESERVED EXACTLY, and that matters. The manual says names are - "in upper-case", but a real controller lists files named ConfigCtrl, - File-Select and FolderDef - mixed case, and asking for CONFIGCTRL gets - nothing back. So the manual describes a convention, not a constraint, and - the only safe thing to send is whatever the listing gave us. - """ - if " " in name: - raise E10Error("e10 file names cannot contain spaces: %r" % name) - if len(name) > NAME_LEN: - raise E10Error("e10 file name over %d chars: %r" % (NAME_LEN, name)) - return name.encode("ascii").ljust(NAME_FIELD_LEN, b"\x00") - - -def decode_name(raw): - """Pull a file name back out of a 12-byte name field.""" - return raw[:NAME_FIELD_LEN].split(b"\x00", 1)[0].decode("ascii", "replace") - - -class _PosixPort: - """Serial port through termios. Raw, 8-N-1, no flow control.""" - - def __init__(self, device, baud=9600): - try: - self.fd = os.open(device, - os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK) - except FileNotFoundError: - raise E10Error( - "no such port: %s. Is the USB-serial adapter plugged in?" - " Check with: ls /dev/ttyUSB*" % device) - except PermissionError: - raise E10Error( - "permission denied on %s. Add yourself to the dialout group" - " (sudo usermod -aG dialout $USER, then log out and in), or" - " run under: sg dialout -c '...'" % device) - speed = getattr(termios, "B%d" % baud) - attrs = termios.tcgetattr(self.fd) - cc = list(attrs[6]) - cc[termios.VMIN] = 0 - cc[termios.VTIME] = 0 - # raw: no canonical mode, echo, signals or translation. CLOCAL matters - # because the e10 HOST port has no handshake pins, so waiting on - # carrier detect would hang forever. - termios.tcsetattr(self.fd, termios.TCSANOW, - [0, 0, - termios.CS8 | termios.CREAD | termios.CLOCAL, - 0, speed, speed, cc]) - self.flush() - - def read(self, count): - try: - return os.read(self.fd, count) - except BlockingIOError: - return b"" - except OSError: - return b"" - - def write(self, data): - offset = 0 - while offset < len(data): - offset += os.write(self.fd, data[offset:]) - - def flush(self): - try: - termios.tcflush(self.fd, termios.TCIOFLUSH) - except OSError: - pass - - def close(self): - os.close(self.fd) - - -class _WindowsPort: - r"""Serial port through the Win32 API, reached with ctypes. - - Deliberately no pyserial: these tools have to run on locked-down, - air-gapped shopfloor machines where installing a package is a project of - its own. Everything here is in the standard library. - - Port naming: COM10 and above REQUIRE the \\.\ prefix, and it is harmless - on COM1-COM9, so it is always applied. Without it COM10 fails to open with - a file-not-found error that looks nothing like the real cause. - """ - - GENERIC_READ = 0x80000000 - GENERIC_WRITE = 0x40000000 - OPEN_EXISTING = 3 - INVALID_HANDLE = (1 << 64) - 1 # 0xFFFF...FF, what CreateFileW returns - PURGE_RXCLEAR = 0x0008 - PURGE_TXCLEAR = 0x0004 - MAXDWORD = 0xFFFFFFFF - - def __init__(self, device, baud=9600): - self.k32 = ctypes.WinDLL("kernel32", use_last_error=True) - self._declare() - name = device if device.startswith("\\\\") else "\\\\.\\" + device - - self.handle = self.k32.CreateFileW( - ctypes.c_wchar_p(name), - self.GENERIC_READ | self.GENERIC_WRITE, - 0, # no sharing - a serial port is exclusive - None, - self.OPEN_EXISTING, - 0, # synchronous - None) - if self.handle is None or self.handle == self.INVALID_HANDLE: - code = ctypes.get_last_error() - hint = "" - if code == 2: - hint = (" - no such port. Check Device Manager under" - " 'Ports (COM & LPT)'.") - elif code == 5: - hint = (" - access denied. Another program has the port open;" - " close any terminal or vendor software using it.") - raise E10Error("cannot open %s: Windows error %d%s" - % (device, code, hint)) - - self._configure(baud) - self.flush() - - def _declare(self): - """Declare argument and return types for every kernel32 call. - - THIS IS NOT OPTIONAL ON 64-BIT WINDOWS. A HANDLE is a pointer, so it is - 64 bits, but an undeclared ctypes function returns c_int - 32 bits. The - handle from CreateFileW is then silently TRUNCATED. It does not match - INVALID_HANDLE_VALUE, so the open appears to succeed, and every - subsequent read and write operates on a handle that is not the port and - returns nothing at all. - - The symptom is a tool that runs, reports no error, and never receives a - byte - which is indistinguishable from a dead cable, and cost a round - trip to diagnose. - """ - k = self.k32 - k.CreateFileW.restype = wintypes.HANDLE - k.CreateFileW.argtypes = [wintypes.LPCWSTR, wintypes.DWORD, - wintypes.DWORD, wintypes.LPVOID, - wintypes.DWORD, wintypes.DWORD, - wintypes.HANDLE] - k.CloseHandle.restype = wintypes.BOOL - k.CloseHandle.argtypes = [wintypes.HANDLE] - k.GetCommState.restype = wintypes.BOOL - k.GetCommState.argtypes = [wintypes.HANDLE, wintypes.LPVOID] - k.SetCommState.restype = wintypes.BOOL - k.SetCommState.argtypes = [wintypes.HANDLE, wintypes.LPVOID] - k.SetCommTimeouts.restype = wintypes.BOOL - k.SetCommTimeouts.argtypes = [wintypes.HANDLE, wintypes.LPVOID] - k.PurgeComm.restype = wintypes.BOOL - k.PurgeComm.argtypes = [wintypes.HANDLE, wintypes.DWORD] - k.ReadFile.restype = wintypes.BOOL - k.ReadFile.argtypes = [wintypes.HANDLE, wintypes.LPVOID, - wintypes.DWORD, wintypes.LPDWORD, - wintypes.LPVOID] - k.WriteFile.restype = wintypes.BOOL - k.WriteFile.argtypes = [wintypes.HANDLE, wintypes.LPCVOID, - wintypes.DWORD, wintypes.LPDWORD, - wintypes.LPVOID] - k.ClearCommError.restype = wintypes.BOOL - k.ClearCommError.argtypes = [wintypes.HANDLE, wintypes.LPDWORD, - wintypes.LPVOID] - - def _configure(self, baud): - class DCB(ctypes.Structure): - _fields_ = [("DCBlength", wintypes.DWORD), - ("BaudRate", wintypes.DWORD), - ("bitfield", wintypes.DWORD), - ("wReserved", wintypes.WORD), - ("XonLim", wintypes.WORD), - ("XoffLim", wintypes.WORD), - ("ByteSize", ctypes.c_ubyte), - ("Parity", ctypes.c_ubyte), - ("StopBits", ctypes.c_ubyte), - ("XonChar", ctypes.c_char), - ("XoffChar", ctypes.c_char), - ("ErrorChar", ctypes.c_char), - ("EofChar", ctypes.c_char), - ("EvtChar", ctypes.c_char), - ("wReserved1", wintypes.WORD)] - - class COMMTIMEOUTS(ctypes.Structure): - _fields_ = [("ReadIntervalTimeout", wintypes.DWORD), - ("ReadTotalTimeoutMultiplier", wintypes.DWORD), - ("ReadTotalTimeoutConstant", wintypes.DWORD), - ("WriteTotalTimeoutMultiplier", wintypes.DWORD), - ("WriteTotalTimeoutConstant", wintypes.DWORD)] - - dcb = DCB() - dcb.DCBlength = ctypes.sizeof(DCB) - if not self.k32.GetCommState(self.handle, ctypes.byref(dcb)): - raise E10Error("GetCommState failed: Windows error %d" - % ctypes.get_last_error()) - dcb.BaudRate = baud - dcb.ByteSize = 8 - dcb.Parity = 0 # NOPARITY - dcb.StopBits = 0 # ONESTOPBIT - # bit 0 is fBinary. Every other flag stays clear, which disables - # XON/XOFF, CTS/DSR handshaking, and leaves DTR and RTS disabled - - # correct here, because the HOST port has no handshake pins at all. - dcb.bitfield = 0x0001 - if not self.k32.SetCommState(self.handle, ctypes.byref(dcb)): - raise E10Error("SetCommState failed: Windows error %d" - % ctypes.get_last_error()) - - # Return whatever has arrived, immediately, and never block - the - # caller runs its own polling loop with its own deadline. - timeouts = COMMTIMEOUTS(self.MAXDWORD, 0, 0, 0, 1000) - if not self.k32.SetCommTimeouts(self.handle, ctypes.byref(timeouts)): - raise E10Error("SetCommTimeouts failed: Windows error %d" - % ctypes.get_last_error()) - - def read(self, count): - buf = ctypes.create_string_buffer(count) - got = wintypes.DWORD(0) - if not self.k32.ReadFile(self.handle, buf, count, - ctypes.byref(got), None): - return b"" - return buf.raw[:got.value] - - def write(self, data): - written = wintypes.DWORD(0) - offset = 0 - while offset < len(data): - chunk = ctypes.create_string_buffer(bytes(data[offset:])) - size = len(data) - offset - if not self.k32.WriteFile(self.handle, chunk, size, - ctypes.byref(written), None): - raise E10Error("WriteFile failed: Windows error %d" - % ctypes.get_last_error()) - if not written.value: - raise E10Error("WriteFile wrote nothing") - offset += written.value - - def flush(self): - self.k32.PurgeComm(self.handle, - self.PURGE_RXCLEAR | self.PURGE_TXCLEAR) - - def close(self): - self.k32.CloseHandle(self.handle) - - -def open_port(device, baud=9600): - """Open a serial port on whichever platform we are running on.""" - return (_WindowsPort(device, baud) if os.name == "nt" - else _PosixPort(device, baud)) - - -class E10: - """One serial connection to an e10 controller. - - Use as a context manager. Every method that reaches a part goes through the - binary protocol; the text_* helpers exist for bench work only. - """ - - def __init__(self, device=None, timeout=2.0, checksum=False, - debug=False): - device = device or default_port() - self.device = device - self.timeout = timeout - self.checksum = checksum - self.debug = debug - self.port = None - self._var_sizes = {} - self._loaded = None - - # ---------------------------------------------------------------- port - - def open(self): - self.port = open_port(self.device) - # Let anything still in flight from a previous session arrive, then - # throw it away. Without this the first transaction reads someone - # else's tail - which happened repeatedly during development. - settle = time.monotonic() + 0.25 - while time.monotonic() < settle: - if not self.port.read(256): - time.sleep(0.01) - self.port.flush() - return self - - def close(self): - if self.port is not None: - self.port.close() - self.port = None - self._var_sizes = {} - self._loaded = None - - def __enter__(self): - return self.open() - - def __exit__(self, *exc): - self.close() - - def _log(self, direction, data): - if self.debug: - sys.stderr.write("%s %s\n" % (direction, data.hex(" "))) - - def _flush_input(self): - """Drop anything sitting in the receive buffer before we transmit. - - Line noise accumulates between transactions and would otherwise be - read back as the front of the next reply. - """ - self.port.flush() - - def _write(self, data): - self._flush_input() - self._log("TX", data) - self.port.write(data) - - def _read_byte(self, deadline): - """One byte, or None once the deadline passes.""" - while True: - chunk = self.port.read(1) - if chunk: - return chunk[0] - if time.monotonic() >= deadline: - return None - time.sleep(0.002) - - # ------------------------------------------------------------- framing - - def _frame(self, commands): - """Wrap encoded commands in a protocol string. - - commands is already-encoded bytes, one or more [code][size][data]. - """ - if self.checksum: - body = bytes([STX, VERSION]) + commands + bytes([ETX]) - xor = 0 - for byte in body: - xor ^= byte - return body + bytes([xor]) - # NUL straight after STX is what turns checksum control off - return bytes([STX, 0x00, VERSION]) + commands + bytes([ETX]) - - @staticmethod - def _command(code, data=b""): - if len(data) > 0xFFFF: - raise E10Error("command data too long: %d bytes" % len(data)) - return bytes([code, (len(data) >> 8) & 0xFF, len(data) & 0xFF]) + data - - def _read_response(self, timeout=None): - """Read one response string and return {code: data}. - - Raises E10Error on a bare whole-string error byte. - """ - deadline = time.monotonic() + (self.timeout if timeout is None else timeout) - - # HUNT FOR THE FRAME START rather than demanding it immediately. - # Two things put junk in front of a good reply on this link: framing - # errors from line noise arrive as 0x00, and the tail of an earlier - # reply (an abandoned transaction, a killed script) is still in flight. - # Neither should fail a transaction whose real answer is right behind - # it. A frame starts with STX; a whole-string rejection is one bare - # error byte. Anything else in between is noise worth logging and - # skipping. - skipped = bytearray() - while True: - first = self._read_byte(deadline) - if first is None: - if skipped: - raise E10Error( - "no valid frame; saw only %s" % bytes(skipped).hex(" ")) - raise E10Error("no response from controller (timeout)") - if first == STX: - break - if first in STRING_ERROR_TEXT: - raise E10Error("controller rejected the string: %s" - % STRING_ERROR_TEXT[first]) - skipped.append(first) - if len(skipped) > 256: - raise E10Error("no frame start in 256 bytes: %s" - % bytes(skipped[:32]).hex(" ")) - if skipped: - self._log("RX skipped before STX", bytes(skipped)) - - answers = {} - while True: - code = self._read_byte(deadline) - if code is None: - raise E10Error("truncated response, no ETX") - if code == ETX: - break - hi = self._read_byte(deadline) - lo = self._read_byte(deadline) - if hi is None or lo is None: - raise E10Error("truncated response reading answer size") - size = (hi << 8) | lo - data = bytearray() - while len(data) < size: - byte = self._read_byte(deadline) - if byte is None: - raise E10Error("truncated response reading answer data") - data.append(byte) - answers[code] = bytes(data) - - self._log("RX", b"".join( - bytes([c]) + d for c, d in answers.items())) - return answers - - def _single(self, code, data=b"", timeout=None): - """Send one command, return its answer bytes.""" - self._write(self._frame(self._command(code, data))) - answers = self._read_response(timeout=timeout) - if code not in answers: - raise E10Error("no answer for command 0x%02X" % code) - return answers[code] - - @staticmethod - def _check_return_code(answer, what): - if len(answer) != 1: - raise E10Error("%s: expected a return code, got %d bytes" - % (what, len(answer))) - if answer[0] == ACK: - return - raise E10Error("%s: %s" % ( - what, RETURN_CODE_TEXT.get(answer[0], "code 0x%02X" % answer[0]))) - - # ------------------------------------------------------- marking path - - def load_file(self, name, check_capacity=True): - """LOAD FILE 'c'. Select a marking file on the controller.""" - upper = name.upper() - if " " in upper: - raise E10Error("e10 file names cannot contain spaces: %r" % name) - if not 1 <= len(upper) <= NAME_LEN: - raise E10Error("e10 file name must be 1 to %d chars: %r" - % (NAME_LEN, name)) - self._check_return_code( - self._single(CMD_LOAD_FILE, upper.encode("ascii")), - "load_file(%s)" % upper) - self._loaded = name - # pull the declared buffer sizes so set_var can refuse to overflow one - if check_capacity: - try: - self._var_sizes = self.variable_capacities(name) - except E10Error: - self._var_sizes = {} - - def set_var(self, var, value): - """FILE SET VAR '7'. Set one variable in the loaded file. - - value is bytes or str. Spaces are fine - this is the whole reason the - marking path is binary rather than text. A single space is the correct - way to blank a field, matching what the Telesis side does. - """ - name = var.upper() - if " " in name: - raise E10Error("e10 variable names cannot contain spaces: %r" % var) - if not 1 <= len(name) <= 20: - raise E10Error("e10 variable name must be 1 to 20 chars: %r" % var) - payload = value.encode("ascii") if isinstance(value, str) else bytes(value) - if not 1 <= len(payload) <= 127: - raise E10Error("e10 variable value must be 1 to 127 bytes, got %d" - % len(payload)) - self._check_capacity(name, payload) - data = name.encode("ascii") + b"=" + payload - self._check_return_code(self._single(CMD_FILE_SET_VAR, data), - "set_var(%s)" % name) - - def _check_capacity(self, name, payload): - """Refuse to send more than the variable's declared buffer holds. - - THE CONTROLLER TRUNCATES SILENTLY AT MARK TIME. Each variable is - declared in the marking file with a value buffer size, and a longer - value is cut to fit when the pattern renders - while SETVAR answers ok. - Observed on hardware: a variable declared with a 10-byte buffer was - given "07482 07482ABC" and the machine displayed "07482 0748". - - GETVAR IS NO USE FOR DETECTING THIS. It echoes the full value back - whatever the buffer size, so a read-back check passes while the mark - would still come out short. The only honest check is against the size - declared in the file, which is why load_file() reads it. - - On a part marker this is the worst failure available: a truncated - serial number engraved on a real part, reported as success. - """ - limit = self._var_sizes.get(name) - if limit is None or len(payload) <= limit: - return - raise E10Error( - "set_var(%s): value is %d bytes but the variable is declared with a" - " %d-byte buffer in %s. The controller would truncate it silently" - " and mark %r." - % (name, len(payload), limit, self._loaded or "the loaded file", - payload[:limit])) - - def variable_capacities(self, name, kind=KIND_MARKING): - """Declared value buffer size per variable, read from the file itself. - - Record layout: [name_len][value_size][class][00][name][value buffer]. - Records are located through the offset table at 0x0E; entry count is - implied by the first offset. See make-e10-pattern.py for the full - format notes. - """ - raw = self.read_file(name, kind=kind) - if not raw.startswith(b"MARK_V5.0\x00"): - return {} - first = (raw[0x0E] << 8) | raw[0x0F] - entries = (first - 0x0E) // 2 - if entries < 1: - return {} - offsets = [(raw[0x0E + 2 * i] << 8) | raw[0x0F + 2 * i] - for i in range(entries)] - sizes = {} - for index, start in enumerate(offsets): - end = offsets[index + 1] if index + 1 < len(offsets) else len(raw) - if end <= start: - end = len(raw) - rec = raw[start:end] - if (len(rec) >= 5 and rec[2] in (0x40, 0x50) and rec[3] == 0x00 - and len(rec) == 4 + rec[0] + rec[1]): - sizes[rec[4:4 + rec[0]].decode("ascii", "replace")] = rec[1] - return sizes - - def clear_var(self, var): - """Blank a variable to a single space. - - Mirrors the Telesis TmcClrFlds behaviour. Only reachable at all because - the value is length-framed here. - """ - self.set_var(var, " ") - - def start_marking(self, simulate=False): - """START MARKING 'g'. Returns once the controller has ACKed the start. - - The cycle itself is asynchronous - call wait_for_mark() next. - """ - mode = b"\x01" if simulate else b"\x00" - self._check_return_code(self._single(CMD_START_MARKING, mode), - "start_marking") - - def wait_for_mark(self, timeout=120.0, on_pause=None): - """Wait out a marking cycle. Returns only once the head is home. - - Sequence is [EOT] last impact, then [ENQ] home. Anything that reports - completion at EOT is lying about a head that is still moving. - - A PAUSE line makes the controller send 'P' and wait. This NEVER answers - it - on_pause (if given) is called so the caller can tell somebody, and - the wait continues until a human presses Start. - """ - deadline = time.monotonic() + timeout - saw_eot = False - while True: - byte = self._read_byte(deadline) - if byte is None: - raise E10Error("timed out waiting for the cycle to finish" - " (saw_eot=%s)" % saw_eot) - if byte == EOT: - saw_eot = True - elif byte == ENQ: - return # home. and only now is the cycle actually over. - elif byte == NAK: - status = bytearray() - while len(status) < 3: - part = self._read_byte(deadline) - if part is None: - raise E10Error("fault reported but status truncated") - status.append(part) - raise E10Fault(bytes(status)) - elif byte == PAUSE_ASK: - if on_pause: - on_pause() - # deliberately no reply. the Start button is the only way on. - else: - self._log("RX unexpected", bytes([byte])) - - def reset_error(self): - """RESET_ERREUR 'E'. Required after any fault before marking again.""" - self._check_return_code(self._single(CMD_RESET_ERROR), "reset_error") - - # -------------------------------------------------------- backup path - - def list_files(self, name=None, kind=KIND_ALL): - """FILE LIST 'L'. Returns [{name, kind, size}]. - - name None lists everything of the given kind. - """ - field = (encode_name(name) if name - else b"\x00" * NAME_FIELD_LEN) - answer = self._single(CMD_FILE_LIST, field + bytes([kind])) - if len(answer) % LIST_ENTRY_LEN: - raise E10Error("file list not a whole number of %d-byte entries" - " (%d bytes)" % (LIST_ENTRY_LEN, len(answer))) - files = [] - for offset in range(0, len(answer), LIST_ENTRY_LEN): - entry = answer[offset:offset + LIST_ENTRY_LEN] - files.append({ - "name": decode_name(entry), - "kind": entry[12], - "size": (entry[13] << 8) | entry[14], - }) - return files - - def read_file(self, name, kind=KIND_MARKING): - """E10_TO_PC 'S'. Pull one file whole. No block dance, unlike Telesis.""" - answer = self._single(CMD_E10_TO_PC, encode_name(name) + bytes([kind]), - timeout=max(self.timeout, 10.0)) - if len(answer) <= NAME_FIELD_LEN + 1: - raise E10Error("read_file(%s): controller returned no contents" - " (file not found?)" % name) - return answer[NAME_FIELD_LEN + 1:] - - def write_file(self, name, contents, kind=KIND_MARKING): - """PC_TO_E10 'G'. Push one file back. - - Restore path. Nothing calls this on a schedule - it exists so a - controller swap can be put back the way it was. - """ - data = encode_name(name) + bytes([kind]) + bytes(contents) - self._check_return_code( - self._single(CMD_PC_TO_E10, data, timeout=max(self.timeout, 30.0)), - "write_file(%s)" % name) - - def get_machine(self): - """GET_MACHINE (129). Raw machine configuration bytes.""" - return self._single(CMD_GET_MACHINE) - - # ---------------------------------------------------------- text mode - - def text_command(self, line, timeout=None): - """Send one TEXT protocol line and return the reply. - - BENCH ONLY. Do not build a marking path on this - see the module - docstring for the three reasons. Useful for GETVERSION as a first - contact test, and for settling whether this firmware answers SETVAR or - SETTEXTVAR (the manual uses both, in different chapters). - """ - self._write(line.encode("ascii") + b"\n") - deadline = time.monotonic() + (self.timeout if timeout is None else timeout) - out = bytearray() - while True: - byte = self._read_byte(deadline) - if byte is None: - if out: - break - raise E10Error("no response to text command %r" % line) - if byte == 0x0A: # LF ends the reply - break - if byte != 0x0D: - out.append(byte) - reply = bytes(out).decode("ascii", "replace") - self._log("RX text", bytes(out)) - return reply - - -# ------------------------------------------------------------------- CLI - - -def main(): - parser = argparse.ArgumentParser( - description="Bench client for a SIC Marking e10 controller.") - parser.add_argument("-d", "--device", default=None, - help="serial port, e.g. COM4 or" - " /dev/ttyUSB0. Defaults to $E10_PORT; on Windows" - " it will auto-pick a single USB virtual COM port" - " rather than guess.") - parser.add_argument("-t", "--timeout", type=float, default=2.0) - parser.add_argument("--checksum", action="store_true", - help="enable the XOR checksum form of the framing") - parser.add_argument("-v", "--debug", action="store_true", - help="hex dump every frame") - sub = parser.add_subparsers(dest="cmd", required=True) - - sub.add_parser("version", help="GETVERSION over text. first contact test.") - sub.add_parser("ports", help="list the serial ports this machine has") - sub.add_parser("doctor", - help="diagnose a silent port, one layer at a time") - - p_text = sub.add_parser("text", help="send one raw text protocol line") - p_text.add_argument("line") - - p_list = sub.add_parser("list", help="list files on the controller") - p_list.add_argument("--kind", type=int, default=KIND_ALL) - - p_get = sub.add_parser("get", help="read a file off the controller") - p_get.add_argument("name") - p_get.add_argument("-o", "--out") - p_get.add_argument("--kind", type=int, default=KIND_MARKING) - - p_put = sub.add_parser("put", help="write a file to the controller") - p_put.add_argument("name") - p_put.add_argument("path") - p_put.add_argument("--kind", type=int, default=KIND_MARKING) - - p_load = sub.add_parser("load", help="select a marking file") - p_load.add_argument("name") - - p_set = sub.add_parser("setvar", help="set a variable in the loaded file") - p_set.add_argument("var") - p_set.add_argument("value") - - p_mark = sub.add_parser("mark", help="run the loaded file") - p_mark.add_argument("--simulate", action="store_true", - help="force 0, stylus stays up") - - sub.add_parser("reset", help="clear a controller fault") - sub.add_parser("machine", help="dump machine configuration bytes") - - p_backup = sub.add_parser( - "backup", help="pull every marking file and logo into a directory") - p_backup.add_argument("outdir") - - args = parser.parse_args() - - # these two run without opening a session - if args.cmd == "ports": - for name, detail in list_ports(): - print(" %-10s %s" % (name, detail)) - return - if args.cmd == "doctor": - doctor(args.device or default_port(), timeout=args.timeout) - return - - with E10(args.device, timeout=args.timeout, checksum=args.checksum, - debug=args.debug) as e10: - if args.cmd == "version": - print(e10.text_command("GETVERSION")) - - elif args.cmd == "text": - print(e10.text_command(args.line)) - - elif args.cmd == "list": - for entry in e10.list_files(kind=args.kind): - print("%-12s kind=%-14s %6d bytes" % ( - entry["name"], - KIND_NAMES.get(entry["kind"], entry["kind"]), - entry["size"])) - - elif args.cmd == "get": - blob = e10.read_file(args.name, kind=args.kind) - if args.out: - with open(args.out, "wb") as handle: - handle.write(blob) - print("%s -> %s (%d bytes)" % (args.name, args.out, len(blob))) - else: - sys.stdout.buffer.write(blob) - - elif args.cmd == "put": - with open(args.path, "rb") as handle: - blob = handle.read() - e10.write_file(args.name, blob, kind=args.kind) - print("%s -> controller (%d bytes)" % (args.name, len(blob))) - - elif args.cmd == "load": - e10.load_file(args.name) - print("loaded %s" % args.name.upper()) - - elif args.cmd == "setvar": - e10.set_var(args.var, args.value) - print("%s = %r" % (args.var.upper(), args.value)) - - elif args.cmd == "mark": - e10.start_marking(simulate=args.simulate) - print("started, waiting for the head to come home...") - e10.wait_for_mark(on_pause=lambda: print( - "PAUSE line reached. press Start on the machine.")) - print("cycle complete") - - elif args.cmd == "reset": - e10.reset_error() - print("fault cleared") - - elif args.cmd == "machine": - print(e10.get_machine().hex(" ")) - - elif args.cmd == "backup": - os.makedirs(args.outdir, exist_ok=True) - count = 0 - failed = [] - for entry in e10.list_files(): - suffix = KIND_NAMES.get(entry["kind"], "kind%s" % entry["kind"]) - # one unreadable file must not abandon the whole snapshot - try: - blob = e10.read_file(entry["name"], kind=entry["kind"]) - except E10Error as err: - failed.append((entry["name"], str(err))) - print("%-12s %6s FAILED: %s" - % (entry["name"], "", err)) - continue - path = os.path.join( - args.outdir, "%s.%s" % (entry["name"], suffix)) - with open(path, "wb") as handle: - handle.write(blob) - print("%-12s %6d bytes -> %s%s" % ( - entry["name"], len(blob), path, - " [CONTAINS CREDENTIAL]" if is_sensitive(entry["name"]) - else "")) - count += 1 - print("\n%d files captured, %d failed" % (count, len(failed))) - for name, err in failed: - print(" FAILED %-12s %s" % (name, err)) - - -if __name__ == "__main__": - try: - main() - except E10Fault as fault: - sys.stderr.write("controller fault: status %s\n" - "run 'reset' before marking again\n" - % fault.status.hex(" ")) - sys.exit(2) - except E10Error as err: - sys.stderr.write("e10: %s\n" % err) - sys.exit(1) diff --git a/scripts/fake-telesis.py b/scripts/fake-telesis.py deleted file mode 100644 index 7147afa..0000000 --- a/scripts/fake-telesis.py +++ /dev/null @@ -1,260 +0,0 @@ -#!/usr/bin/env python3 -"""Pretend to be a Telesis marking controller, so MarkTelesis will talk to us. - -WHY THIS EXISTS - We need to know exactly what GE's MarkTelesis.exe puts on the wire before a - translator can impersonate a Telesis controller in front of it. A passive - tap is useless here: MarkTelesis waits for a reply to every command and - gives up after the first timeout, so a listener that never answers captures - one frame and nothing else. - - So this ANSWERS. It decodes each frame, logs it, and sends back the ACK - shape MarkTelesis is parsing for. That keeps the conversation going long - enough to record a whole marking job. - - It is also the first half of the real translator - the same decode, minus - the part where the other side becomes a SIC e10. - -THE PROTOCOL, from disassembly of MarkTelesis.exe (2026-08-27) - request (host -> controller): - EOT SOH STX ETX CR - reply (controller -> host): - SOH ACK STX ETX CR - - BCC = (TYPE + sum of data bytes) & 0xFF, as three ASCII decimal digits. - - NOTE THE MISSING STATION ID. Backup470 framed requests as - EOT SOH <2-digit station> STX ... - MarkTelesis does NOT send those - two digits. Same protocol family, different dialect. The frame builder at - 0x401cf0 pushes exactly EOT, SOH, TYPE, STX, data, ETX, BCC, CR and nothing - else. - -COMMAND TYPES, all confirmed at their call sites - 'P' pattern load, data is the pattern name - '1'..'9' numbered line send - the 2Line/3Line/9Line dialect. The TYPE byte - IS the line number: the loop at 0x4090b0 does `add bl, 0x31`. - 'V' set field, the TMC400 dialect. Matches Message Type"="V" in - WJPRT.reg. - 'O' online, empty data - 'R' empty data, believed to be the mark/run trigger. INFERRED, not yet - traced to a UI action - one of the things this capture settles. - 'D' pattern download, data is ";<6-digit size>;128". Same write - header as Backup470. - -FORCING THE ERROR PATHS - Happy-path cycles teach us almost nothing we cannot already read out of the - binary. What we actually need is how MarkTelesis behaves when things go - wrong, because the translator has to reproduce it: - - --nak TYPE[,TYPE...] answer these types with NAK instead of ACK - --drop TYPE[,TYPE...] do not answer these at all, to see the retry - and timeout cadence - --delay SECONDS stall before every reply - - Run it once clean, then again with --nak P (pattern not found) and once - with --drop R, and the resulting logs cover the cases that would otherwise - only show up at a bay with an operator standing there. -""" - -import argparse -import os -import sys -import termios -import time - -EOT = 0x04 -SOH = 0x01 -STX = 0x02 -ETX = 0x03 -ACK = 0x06 -NAK = 0x15 -CR = 0x0D - -TYPE_MEANING = { - "P": "pattern load", - "V": "set field (TMC400 dialect)", - "O": "online", - "R": "run / mark (inferred)", - "D": "pattern download", - "I": "status request", -} - - -def describe(type_char): - if type_char in TYPE_MEANING: - return TYPE_MEANING[type_char] - if type_char.isdigit() and type_char != "0": - return "line %s text (2Line/3Line/9Line dialect)" % type_char - return "unknown" - - -def bcc(type_char, data): - """(TYPE + sum(data)) & 0xFF, as three ASCII decimal digits.""" - total = ord(type_char) - for byte in data: - total += byte - return b"%03d" % (total & 0xFF) - - -class Line: - """One serial endpoint, raw, no flow control.""" - - def __init__(self, device, baud=termios.B9600): - self.fd = os.open(device, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK) - attrs = termios.tcgetattr(self.fd) - cc = list(attrs[6]) - cc[termios.VMIN] = 0 - cc[termios.VTIME] = 0 - termios.tcsetattr(self.fd, termios.TCSANOW, - [0, 0, - termios.CS8 | termios.CREAD | termios.CLOCAL, - 0, baud, baud, cc]) - termios.tcflush(self.fd, termios.TCIOFLUSH) - - def read_byte(self, timeout=None): - deadline = None if timeout is None else time.monotonic() + timeout - while True: - try: - chunk = os.read(self.fd, 1) - except BlockingIOError: - chunk = b"" - except OSError: - return None - if chunk: - return chunk[0] - if deadline is not None and time.monotonic() >= deadline: - return None - time.sleep(0.002) - - def write(self, data): - offset = 0 - while offset < len(data): - offset += os.write(self.fd, data[offset:]) - - def close(self): - os.close(self.fd) - - -def main(): - parser = argparse.ArgumentParser( - description="Answer MarkTelesis as if we were a Telesis controller.") - parser.add_argument("-d", "--device", default="/dev/pts/4", - help="serial endpoint (the win11 VM's pty)") - parser.add_argument("-l", "--log", help="also append the transcript here") - parser.add_argument("--nak", default="", - help="comma-separated TYPEs to answer with NAK") - parser.add_argument("--drop", default="", - help="comma-separated TYPEs to leave unanswered") - parser.add_argument("--delay", type=float, default=0.0, - help="seconds to stall before each reply") - parser.add_argument("--status", default="0A;000", - help="data to return for a Type I status request." - " 0A;000 is a real TMC470 idle reply.") - args = parser.parse_args() - - nak_types = set(t.strip() for t in args.nak.split(",") if t.strip()) - drop_types = set(t.strip() for t in args.drop.split(",") if t.strip()) - - log_handle = open(args.log, "a") if args.log else None - - def emit(text): - stamp = time.strftime("%H:%M:%S") - line = "%s %s" % (stamp, text) - print(line, flush=True) - if log_handle: - log_handle.write(line + "\n") - log_handle.flush() - - line = Line(args.device) - emit("listening on %s as a Telesis controller" % args.device) - if nak_types: - emit("will NAK: %s" % ", ".join(sorted(nak_types))) - if drop_types: - emit("will DROP (no reply): %s" % ", ".join(sorted(drop_types))) - emit("waiting for MarkTelesis...") - - frames = 0 - try: - while True: - # requests open with EOT. anything else is noise worth seeing. - byte = line.read_byte(timeout=None) - if byte is None: - continue - if byte != EOT: - emit(" stray byte before EOT: 0x%02X" % byte) - continue - - soh = line.read_byte(timeout=2) - if soh != SOH: - emit(" expected SOH after EOT, got %s" - % ("nothing" if soh is None else "0x%02X" % soh)) - continue - - type_byte = line.read_byte(timeout=2) - if type_byte is None: - emit(" timed out waiting for TYPE") - continue - type_char = chr(type_byte) - - stx = line.read_byte(timeout=2) - if stx != STX: - emit(" expected STX, got %s" - % ("nothing" if stx is None else "0x%02X" % stx)) - continue - - data = bytearray() - while True: - nxt = line.read_byte(timeout=2) - if nxt is None: - emit(" timed out reading data") - break - if nxt == ETX: - break - data.append(nxt) - - checksum = bytearray() - for _ in range(3): - nxt = line.read_byte(timeout=2) - if nxt is None: - break - checksum.append(nxt) - line.read_byte(timeout=1) # trailing CR - - frames += 1 - expected = bcc(type_char, data) - ok = "ok" if bytes(checksum) == expected else ( - "MISMATCH, we computed %s" % expected.decode()) - emit("RX #%d TYPE '%s' (%s) data=%r bcc=%s [%s]" - % (frames, type_char, describe(type_char), bytes(data), - bytes(checksum).decode("ascii", "replace"), ok)) - - if type_char in drop_types: - emit(" -> dropping, no reply (forcing a timeout)") - continue - - if args.delay: - time.sleep(args.delay) - - if type_char in nak_types: - reply = bytes([SOH, ord(type_char), NAK, STX, ETX]) \ - + bcc(type_char, b"") + bytes([CR]) - emit(" -> NAK") - else: - payload = b"" - if type_char == "I": - payload = args.status.encode("ascii") - reply = bytes([SOH, ord(type_char), ACK, STX]) + payload \ - + bytes([ETX]) + bcc(type_char, payload) + bytes([CR]) - emit(" -> ACK%s" % (" data=%r" % payload if payload else "")) - line.write(reply) - - except KeyboardInterrupt: - emit("stopped after %d frames" % frames) - finally: - line.close() - if log_handle: - log_handle.close() - - -if __name__ == "__main__": - main() diff --git a/scripts/make-e10-pattern.py b/scripts/make-e10-pattern.py deleted file mode 100644 index d2a8c0d..0000000 --- a/scripts/make-e10-pattern.py +++ /dev/null @@ -1,279 +0,0 @@ -#!/usr/bin/env python3 -"""Build SIC e10 marking files with DECLARED variables. - -WHY THIS EXISTS - The e10's own protocol cannot create a variable. You can build a marking - file over the wire with NEWFILE / INSERTTEXTLINE / SAVEFILE, and you can put - "#(V, V01)" in a text line, but that is only a REFERENCE. The variable has - to be DECLARED, and there is no INSERTVAR command. Proven the hard way: a - file built entirely over the protocol came back with a variable count of - zero, and SETVAR answered "variable not found". - - Global variables are numbered 1-10, so #(V, NAME) cannot reach one either. - - That left authoring dependent on SIC's GUI, which would have made migrating - a fleet of Telesis patterns a hand operation. This does it from a template - instead. - -THE FILE FORMAT, reversed from 28 real files plus one we built over the wire - - header - 0x00 "MARK_V5.0\\0" - 0x0A variable count <- the byte that matters. zero here means - SETVAR will always fail. - 0x0B record count - 0x0C two bytes, purpose unknown, carried through unchanged - 0x0E offset table: 16-bit big-endian file offsets, one per record. - The number of entries is implied - the first entry points at the - first record, so entries = (first_offset - 0x0E) / 2. - - variable declaration record - [type][len-6][class][00][name, NUL-padded] - type 0x02 and 0x04 both seen; class 0x50 ('P') and 0x40 ('@') both seen. - Carried through unchanged except for the name, which is rewritten - inside its fixed-width padded field so the record length never moves. - - text line record - [X(2)][Y(2)][Z(2)][W(2)][H(2)][2 bytes][textlen+13 (2)][2 bytes] - [0x83][font name, 12 bytes NUL-padded][text] - All coordinates are big-endian tenths of a mm. The field at offset 12 - is len(text) + 13 in every file checked, which is what makes rewriting - the text safe. - - trailer records - Short fixed records at the end. Carried through untouched. - -WHAT THIS DOES - Takes a known-good file as a template, rewrites the variable names and the - text lines, then rebuilds the offset table so the records still line up. - Everything it does not understand is copied through byte for byte, which is - the only honest way to edit a format nobody has documented. -""" - -import argparse -import os -import sys - -MAGIC = b"MARK_V5.0\x00" -TEXT_HEADER_LEN = 29 # geometry + marker byte + 12-byte font field -TEXT_LEN_OFFSET = 12 # where len(text)+13 lives inside a text record -TEXT_LEN_BIAS = 13 -FONT_OFFSET = 17 -FONT_FIELD = 12 -NAME_OFFSET = 4 # where a variable's name starts in its record - - -def be16(data, index): - return (data[index] << 8) | data[index + 1] - - -def pack_be16(value): - return bytes([(value >> 8) & 0xFF, value & 0xFF]) - - -class Pattern: - """A parsed MARK_V5.0 file: a header, a list of records, nothing hidden.""" - - def __init__(self, raw): - if not raw.startswith(MAGIC): - raise ValueError("not a MARK_V5.0 file") - self.raw = raw - self.varcount = raw[0x0A] - self.reccount = raw[0x0B] - self.unknown = raw[0x0C:0x0E] - - first = be16(raw, 0x0E) - entries = (first - 0x0E) // 2 - if entries < 1: - raise ValueError("implausible offset table") - offsets = [be16(raw, 0x0E + 2 * i) for i in range(entries)] - - self.records = [] - for index, start in enumerate(offsets): - nxt = offsets[index + 1] if index + 1 < len(offsets) else len(raw) - if nxt <= start: - nxt = len(raw) - self.records.append(bytearray(raw[start:nxt])) - - # ------------------------------------------------------------ inspection - - def is_variable(self, record): - """A declaration record, identified by its own length arithmetic. - - Do NOT match on byte 0 being 0x02 or 0x04 - that is the name LENGTH, - which changes the moment you rename anything, and matching on it makes - a renamed variable invisible to the next edit. - """ - return (len(record) >= NAME_OFFSET + 1 - and record[2] in (0x40, 0x50) - and record[3] == 0x00 - and len(record) == NAME_OFFSET + record[0] + record[1]) - - def is_text(self, record): - return (len(record) > FONT_OFFSET - and record[FONT_OFFSET - 1] == 0x83) - - def variable_names(self): - out = [] - for rec in self.records: - if self.is_variable(rec): - out.append(bytes(rec[NAME_OFFSET:]).split(b"\x00")[0] - .decode("ascii", "replace")) - return out - - def variable_sizes(self): - """Value buffer size per variable - the silent truncation limit.""" - return [r[1] for r in self.records if self.is_variable(r)] - - def texts(self): - out = [] - for rec in self.records: - if self.is_text(rec): - out.append(bytes(rec[TEXT_HEADER_LEN:]) - .decode("ascii", "replace")) - return out - - # -------------------------------------------------------------- editing - - def rename_variable(self, index, new_name, value_size=None): - """Rewrite a declaration's name. - - THE RECORD LAYOUT, and the two length bytes both matter: - - [name_len][value_size][class][00][name][value buffer] - - SN 02 0a 50 00 "SN" 16 = 4 + 2 + 10 - PN 02 0e 50 00 "PN" 20 = 4 + 2 + 14 - OF 02 0f 40 00 "OF" 21 = 4 + 2 + 15 - TEMP 04 02 40 00 "TEMP" 10 = 4 + 4 + 2 - - Byte 0 is the length of the NAME. Byte 1 is the size of the VALUE - buffer that follows it, which is the longest string SETVAR can put in - this variable. - - Both were found the hard way. Writing a three-character name while byte - 0 still said 2 produced a file that pushed cleanly, read back - byte-identical and loaded without complaint - and then SETVAR answered - "variable not found", because the controller had parsed a name of the - wrong length. A silent, entirely plausible-looking failure. - """ - found = [i for i, r in enumerate(self.records) if self.is_variable(r)] - if index >= len(found): - raise ValueError("no variable %d in this template" % index) - position = found[index] - rec = self.records[position] - encoded = new_name.encode("ascii") - if not 1 <= len(encoded) <= 255: - raise ValueError("implausible variable name %r" % new_name) - - size = rec[1] if value_size is None else value_size - rebuilt = bytearray(rec[:NAME_OFFSET]) - rebuilt[0] = len(encoded) - rebuilt[1] = size - rebuilt += encoded - rebuilt += b"\x00" * size - self.records[position] = rebuilt - - def set_text(self, index, text): - """Replace a text line's content and fix its internal length field.""" - found = [i for i, r in enumerate(self.records) if self.is_text(r)] - if index >= len(found): - raise ValueError("no text line %d in this template" % index) - rec = self.records[found[index]] - encoded = text.encode("ascii") - rec[TEXT_HEADER_LEN:] = encoded - rec[TEXT_LEN_OFFSET:TEXT_LEN_OFFSET + 2] = pack_be16( - len(encoded) + TEXT_LEN_BIAS) - - def set_position(self, index, x=None, y=None): - """Move a text line. Coordinates are tenths of a mm.""" - found = [i for i, r in enumerate(self.records) if self.is_text(r)] - rec = self.records[found[index]] - if x is not None: - rec[0:2] = pack_be16(x) - if y is not None: - rec[2:4] = pack_be16(y) - - # ------------------------------------------------------------- assembly - - def build(self): - """Reassemble, recomputing every offset from the record lengths.""" - entries = len(self.records) - table_start = 0x0E - body_start = table_start + 2 * entries - - offsets, cursor = [], body_start - for rec in self.records: - offsets.append(cursor) - cursor += len(rec) - - out = bytearray(MAGIC) - out.append(self.varcount) - out.append(self.reccount) - out += self.unknown - for off in offsets: - out += pack_be16(off) - for rec in self.records: - out += rec - return bytes(out) - - -def describe(pattern, label): - print("%s" % label) - sizes = pattern.variable_sizes() - print(" variables declared : %d %s" - % (pattern.varcount, - ", ".join("%s(max %d)" % (n, s) - for n, s in zip(pattern.variable_names(), sizes)) - or "-")) - print(" records : %d" % len(pattern.records)) - for text in pattern.texts(): - print(" text line : %r" % text) - - -def main(): - parser = argparse.ArgumentParser( - description="Build an e10 marking file with declared variables.") - parser.add_argument("--template", required=True, - help="a known-good marking file with at least as many" - " variables as you need. NEW.marking has 2.") - parser.add_argument("--var", action="append", default=[], - help="new name for the next variable. repeatable.") - parser.add_argument("--var-size", type=int, default=127, - help="value buffer size for each variable, 1-127." - " THE CONTROLLER TRUNCATES SILENTLY to this and" - " still answers SETVAR ok, so the default is the" - " protocol maximum. Only lower it deliberately.") - parser.add_argument("--line", action="append", default=[], - help="text for the next line. repeatable." - " Use #(V, NAME) to reference a variable.") - parser.add_argument("-o", "--out", help="write the file here") - parser.add_argument("--show", action="store_true", - help="just describe the template and exit") - args = parser.parse_args() - - pattern = Pattern(open(args.template, "rb").read()) - describe(pattern, "TEMPLATE %s" % args.template) - if args.show: - return - - if not 1 <= args.var_size <= 127: - sys.exit("--var-size must be 1..127 (FILE SET VAR carries 1-127 bytes)") - for index, name in enumerate(args.var): - pattern.rename_variable(index, name, value_size=args.var_size) - for index, text in enumerate(args.line): - pattern.set_text(index, text) - - built = Pattern(pattern.build()) - print() - describe(built, "BUILT") - - if args.out: - with open(args.out, "wb") as handle: - handle.write(pattern.build()) - print() - print("wrote %s (%d bytes)" % (args.out, len(pattern.build()))) - - -if __name__ == "__main__": - main() diff --git a/scripts/mirror-from-gold.sh b/scripts/mirror-from-gold.sh deleted file mode 100755 index b6480d5..0000000 --- a/scripts/mirror-from-gold.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/bash -# -# mirror-from-gold.sh - Byte-identical mirror of /srv/samba/ from an existing -# PXE server (GOLD) onto a freshly-installed PXE server. -# -# Run this ON THE NEW PXE SERVER, pointing at the GOLD server's IP. -# It pulls every Samba share (winpeapps, enrollment, blancco-reports, -# clonezilla) wholesale so the new box matches GOLD regardless of whether -# content lives in the flat layout or the new taxonomy layout. -# -# Usage: -# sudo ./mirror-from-gold.sh [options] -# -# Options: -# --skip-drivers Do not mirror Out-of-box Drivers trees (saves ~178G). -# --skip-dell10 Do not mirror Dell_10 drivers (saves ~179G). -# --skip-latitude Do not mirror Latitude drivers (saves ~48G). -# --skip-os Do not mirror shared Operating Systems (saves ~22G). -# --skip-clonezilla Do not mirror clonezilla backup images (can be huge). -# --skip-reports Do not mirror blancco-reports history. -# --dry-run Show what would transfer without doing it. -# -# Prereqs: -# - GOLD's pxe user accepts the SSH key this script generates. -# - GOLD's filesystem is world-readable for the paths involved -# (it is, by default). - -# Note: not using `set -e`. rsync legitimately exits non-zero (e.g. 23 -# "some files/attrs were not transferred") when source dirs have files -# the rsync user cannot read (the OpenText W10shortcuts dir on GOLD is -# pxe-upload-group-only). We log and continue instead of aborting. -set -uo pipefail - -GOLD="${1:-}" -shift || true - -if [ -z "$GOLD" ]; then - echo "Usage: $0 [--skip-drivers|--skip-dell10|--skip-latitude|--skip-os|--dry-run]" - exit 1 -fi - -if [ "$(id -u)" -ne 0 ]; then - echo "ERROR: must run as root (sudo)." - exit 1 -fi - -SKIP_DRIVERS=0 -SKIP_DELL10=0 -SKIP_LATITUDE=0 -SKIP_OS=0 -SKIP_CLONEZILLA=0 -SKIP_REPORTS=0 -DRY_RUN="" - -while [ $# -gt 0 ]; do - case "$1" in - --skip-drivers) SKIP_DRIVERS=1 ;; - --skip-dell10) SKIP_DELL10=1 ;; - --skip-latitude) SKIP_LATITUDE=1 ;; - --skip-os) SKIP_OS=1 ;; - --skip-clonezilla) SKIP_CLONEZILLA=1 ;; - --skip-reports) SKIP_REPORTS=1 ;; - --dry-run) DRY_RUN="--dry-run" ;; - *) echo "Unknown option: $1"; exit 1 ;; - esac - shift -done - -KEY=/root/.ssh/pxe-mirror-key -if [ ! -f "$KEY" ]; then - echo "[setup] Generating mirror SSH key at $KEY" - mkdir -p /root/.ssh && chmod 700 /root/.ssh - ssh-keygen -t ed25519 -N '' -f "$KEY" -q - echo - echo "Copy the following public key into pxe@$GOLD's ~/.ssh/authorized_keys" - echo "(easiest: ssh pxe@$GOLD 'mkdir -p ~/.ssh && chmod 700 ~/.ssh' and then" - echo " scp '$KEY.pub' pxe@$GOLD:~/.ssh/authorized_keys, then chmod 600 there)" - echo - cat "$KEY.pub" - echo - read -rp "Press enter once the key is installed on GOLD..." -fi - -RSH="ssh -i $KEY -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" - -# Quick connectivity check -echo "[check] Testing key-based SSH to pxe@$GOLD..." -$RSH "pxe@$GOLD" "whoami" >/dev/null || { - echo "ERROR: SSH to pxe@$GOLD failed. Install $KEY.pub on GOLD first." - exit 1 -} -echo " OK" - -mirror() { - local label="$1" - local src="$2" - local dest="$3" - shift 3 - echo - echo "==== $label ====" - echo " src: pxe@$GOLD:$src" - echo " dest: $dest" - mkdir -p "$dest" - rsync -aHl --delete --info=progress2 --no-inc-recursive $DRY_RUN "$@" \ - -e "$RSH" \ - "pxe@$GOLD:$src" "$dest" || \ - echo " WARNING: rsync exited rc=$? (likely a permissions issue on source); continuing" -} - -# ---------- winpeapps share (all image types + _shared) ---------- -WINPE_EXCLUDES=() -[ "$SKIP_OS" = "1" ] && WINPE_EXCLUDES+=(--exclude='_shared/gea-Operating Systems') -[ "$SKIP_DRIVERS" = "1" ] && WINPE_EXCLUDES+=(--exclude='_shared/Out-of-box Drivers' --exclude='Out-of-box Drivers') -[ "$SKIP_DELL10" = "1" ] && WINPE_EXCLUDES+=(--exclude='Dell_10') -[ "$SKIP_LATITUDE" = "1" ] && WINPE_EXCLUDES+=(--exclude='Latitude') - -mirror "winpeapps (all image types, _shared, tools)" \ - "/srv/samba/winpeapps/" \ - "/srv/samba/winpeapps/" \ - "${WINPE_EXCLUDES[@]}" - -# ---------- enrollment share (flat-layout root + taxonomy subdirs) ---------- -mirror "enrollment (taxonomy + flat-layout content)" \ - "/srv/samba/enrollment/" \ - "/srv/samba/enrollment/" - -# ---------- blancco-reports share (historical XML reports) ---------- -if [ "$SKIP_REPORTS" = "0" ]; then - mirror "blancco-reports (erasure report history)" \ - "/srv/samba/blancco-reports/" \ - "/srv/samba/blancco-reports/" -fi - -# ---------- clonezilla share (disk backup images, can be very large) ---------- -if [ "$SKIP_CLONEZILLA" = "0" ]; then - mirror "clonezilla (disk backup images)" \ - "/srv/samba/clonezilla/" \ - "/srv/samba/clonezilla/" -fi - -# Permissions: make sure everything we pulled is readable by the share -chown -R root:root /srv/samba/enrollment /srv/samba/winpeapps /srv/samba/blancco-reports /srv/samba/clonezilla 2>/dev/null || true -find /srv/samba/enrollment /srv/samba/winpeapps -type d -exec chmod 0755 {} \; 2>/dev/null || true -find /srv/samba/enrollment /srv/samba/winpeapps -type f -exec chmod 0644 {} \; 2>/dev/null || true -find /srv/samba/enrollment -name '*.ppkg' -exec chmod 0755 {} \; 2>/dev/null || true - -echo -echo "============================================" -echo "Mirror complete. Verify with:" -echo " du -sh /srv/samba/winpeapps/_shared/*" -echo " du -sh /srv/samba/enrollment/*" -echo " df -h /srv" -echo "============================================" diff --git a/scripts/preflight.py b/scripts/preflight.py index 41aa298..fd53c78 100755 --- a/scripts/preflight.py +++ b/scripts/preflight.py @@ -15,8 +15,6 @@ What it runs: lint-unattend.py answer files vs the schema limits. One over-length value invalidates the whole file for its pass and stops the bay at a dialog with nothing configured. - build-pctype-media.py resolves the critical paths in every per-PCTYPE - --verify media view; a dangling symlink is a dead view. firmware coverage models in the driver catalogues that have no entry in the BIOS models.txt, so their firmware is never offered. This one is advisory - the manifest is a @@ -123,8 +121,6 @@ def main(): rc = 0 rc |= run("driver catalogue", [sys.executable, "scripts/lint-driver-catalogue.py", "--quiet"]) rc |= run("unattend answer files", [sys.executable, "scripts/lint-unattend.py", "--quiet"]) - if not args.quick: - rc |= run("per-PCTYPE media views", [sys.executable, "scripts/build-pctype-media.py", "--verify"]) rc |= firmware_coverage() print("=" * 72) diff --git a/scripts/share-drift.py b/scripts/share-drift.py index dfdfb84..6dfb4ea 100755 --- a/scripts/share-drift.py +++ b/scripts/share-drift.py @@ -56,24 +56,17 @@ PAIRS = [ "/srv/samba/enrollment/shopfloor-setup/Verify-And-Heal-Staging.ps1", GIT_OWNED), ("playbook/shopfloor-setup/Fetch-StagingPayload.ps1", "/srv/samba/enrollment/shopfloor-setup/Fetch-StagingPayload.ps1", GIT_OWNED), - ("playbook/shopfloor-setup/site-config.json", - "/srv/samba/enrollment/shopfloor-setup/site-config.json", GIT_OWNED), + ("playbook/shopfloor-setup/Shopfloor/Install-AppList.ps1", + "/srv/samba/enrollment/shopfloor-setup/Shopfloor/Install-AppList.ps1", GIT_OWNED), + ("playbook/shopfloor-setup/Shopfloor/Register-PostPpkgTask.ps1", + "/srv/samba/enrollment/shopfloor-setup/Shopfloor/Register-PostPpkgTask.ps1", GIT_OWNED), + ("playbook/shopfloor-setup/Shopfloor/Invoke-PostPpkg.ps1", + "/srv/samba/enrollment/shopfloor-setup/Shopfloor/Invoke-PostPpkg.ps1", GIT_OWNED), ("playbook/shopfloor-setup/BIOS/models.txt", "/srv/samba/winpeapps/_shared/BIOS/models.txt", GIT_OWNED), ("playbook/shopfloor-setup/BIOS/check-bios.cmd", "/srv/samba/winpeapps/_shared/BIOS/check-bios.cmd", GIT_OWNED), - # The config/ copy is the one startnet actually stages to - # C:\Enrollment\site-config.json, so it is the copy every bay reads. It had - # its own edit history and sat stale since 2026-08-06, which meant bays - # imaged after e844ff3 quietly lost the Plant Apps startup item and the - # Defect_Tracker pin - while the sibling copy under shopfloor-setup/ showed - # perfectly in sync and made the pair look healthy. Reconciled 2026-08-19 by - # deploying the repo copy over it. One source file, two destinations, both - # git-owned now, so a stale one cannot hide behind the other again. - ("playbook/shopfloor-setup/site-config.json", - "/srv/samba/enrollment/config/site-config.json", GIT_OWNED), - # All three unattends are reconciled. The live files were ahead of the repo # and the LIVE side won, because these are what boot machines - pushing the # repo over them is precisely the 2026-08-06 outage. diff --git a/scripts/simulate-ednc.py b/scripts/simulate-ednc.py deleted file mode 100644 index 30c55ed..0000000 --- a/scripts/simulate-ednc.py +++ /dev/null @@ -1,465 +0,0 @@ -#!/usr/bin/env python3 -"""Do what eDNC and MarkTelesis do, without eDNC or MarkTelesis. - -WHAT THIS IS FOR - The whole part-marker integration hinges on one question: what exactly does - GE's MarkTelesis.exe put on the wire, and can a translator turn that into - something a SIC e10 understands? Answering it by capture needs a Windows VM, - an installed Mark 6.2.1, a real Telesis controller and a live eMX prescan. - - We do not need any of that to make progress, because we already know all - three pieces: - - 1. The part-program file format, from MarkFileSpec.doc. - 2. The token substitution rules, from the same document. - 3. The exact wire frame, from disassembling MarkTelesis.exe on - 2026-08-27 - the frame builder at 0x401cf0 and its callers. - - So this reimplements that path. Feed it a real GE part program and the part - number and serial that eDNC would have pulled from the router scan, and it - emits the byte-exact Telesis frames MarkTelesis would have sent. Then it can - translate those into e10 commands and, optionally, drive a real controller. - - That makes the whole chain testable today, on a desk, with one e10 and no - Windows anywhere. - -PART PROGRAM FORMAT (MarkFileSpec.doc, first column is the command character) - : file information, "name,snumb". optional. - ^ pattern name to select on the controller. optional. - * menu item. items run in file order. - @ operator instruction, max 78 chars. - ! comment. programmer only, never shown. - $ prompt for operator input, max 60 chars. - # one choice in a pick list, max 16 chars. - / command line, new-style: /NN/ addresses field NN (TMC100/TMC400). - \\ command line, old-style: \\N\\ is line N (2Line/3Line/9Line). - Backslash strips leading spaces, forward slash keeps them. - -TOKENS - part number serial number - dash + checksum char .. part number in 5/5/5/3 chunks - operator dimension operator text - reusable dimension - prompted once, reused after - - Wilmington takes only the last 5 characters of . That is a site - rule, not a format rule, so it lives behind --site. - -THE WIRE FRAME (disassembled, not guessed) - EOT SOH STX ETX CR - BCC = (TYPE + sum of data bytes) & 0xFF - - NO STATION ID. Backup470 sent EOT SOH <2 digits> STX; MarkTelesis - does not. Same family, different dialect. - - TYPE letters, each confirmed at its call site: - 'P' pattern load, data is the pattern name - '1'..'9' line N text. The loop at 0x4090b0 does `add bl, 0x31`, so the - TYPE byte IS the line number. This is the 2Line dialect, which - is what WJPRT runs. - 'V' set field, TMC400 dialect, field number leads the data - 'O' online, empty data - 'R' empty data, believed to be the mark trigger - 'D' pattern download, ";<6-digit size>;128" - -TRANSLATION TO THE e10 - 'P' -> LOAD FILE 'c' - '1'/'2'/... -> FILE SET VAR '7' into V01 / V02 / ... - 'V' -> FILE SET VAR '7' into V - 'O' -> nothing on the e10. ACK it locally. - 'R' -> START MARKING 'g' - - The e10 side is deliberately BINARY, never text: the text protocol uses - space as a delimiter, and these values are full of spaces - look at line 2 - of the real GE program, which has four consecutive ones. -""" - -import argparse -import os -import re -import sys - -EOT, SOH, STX, ETX, CR = 0x04, 0x01, 0x02, 0x03, 0x0D - - -# --------------------------------------------------------------- part program - -class Item: - def __init__(self, name): - self.name = name - self.pattern = None - self.instructions = [] - self.commands = [] # (field, template, keep_spaces) - self.prompts = [] # prompt text in file order - self.choices = {} # prompt index -> [choices] - - -def parse_part_program(text): - """Parse a MarkEdit part program into items.""" - items = [] - general = [] - fileinfo = None - current = None - - for raw in text.splitlines(): - if not raw.strip(): - continue - tag = raw[0] - # NEVER strip a command line. The real GE program marks - # "S/N 4AM79" - those four spaces are marked onto the - # part, and stripping them silently changes what gets engraved. - body = raw[1:] if tag in ("/", "\\") else raw[1:].strip() - - if tag == ":": - fileinfo = body - elif tag == "!": - continue # comment, programmer only - elif tag == "*": - current = Item(body) - items.append(current) - elif tag == "^": - if current: - current.pattern = body - elif tag == "@": - (current.instructions if current else general).append(body) - elif tag == "$": - if current: - current.prompts.append(body) - elif tag == "#": - if current and current.prompts: - current.choices.setdefault( - len(current.prompts) - 1, []).append(body) - elif tag in ("/", "\\"): - # /NN/text or \N\text - the delimiter decides space handling - m = re.match(r"([0-9]+)[/\\](.*)", body) - if not m: - continue - field, template = int(m.group(1)), m.group(2) - keep_spaces = (tag == "/") - if not keep_spaces: - template = template.lstrip(" ") - if current: - current.commands.append((field, template, keep_spaces)) - - return fileinfo, general, items - - -# ------------------------------------------------------------------- tokens - -def serial_checksum(serial): - """Telesis serial checksum character. - - MarkFileSpec describes as a dash followed by the checksum - character but never defines the algorithm, and the binary computes it in - DNCdll. Until a real job's log shows one, this is clearly marked as - unverified rather than quietly guessed at. - """ - if not serial: - return "" - total = sum(ord(c) for c in serial) % 36 - return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[total] - - -def substitute(template, partno, serial, site, operator_inputs, reusable): - """Replace tokens the way MarkTelesis does, returning finished text.""" - out = template - ser = serial[-5:] if site == "wilmington" else serial - - out = out.replace("", partno) - out = out.replace("", ser) - out = out.replace("", "-" + serial_checksum(serial)) - out = out.replace("", partno[0:5]) - out = out.replace("", partno[5:10]) - out = out.replace("", partno[10:15]) - out = out.replace("", partno[15:18]) - - for name in ("RDIM1", "RDIM2", "RDIM3"): - token = "<%s>" % name - while token in out: - if name not in reusable: - reusable[name] = next_input(operator_inputs, name) - out = out.replace(token, reusable[name], 1) - - for name in ("DIM", "TEXT"): - token = "<%s>" % name - while token in out: - out = out.replace(token, next_input(operator_inputs, name), 1) - - return out - - -def next_input(queue, label): - """Take the next operator-supplied value, or a visible placeholder.""" - if queue: - return queue.pop(0) - return "<%s?>" % label - - -# -------------------------------------------------------------------- frames - -def bcc(type_char, data): - total = ord(type_char) + sum(data) - return b"%03d" % (total & 0xFF) - - -def frame(type_char, data=b""): - """Build one MarkTelesis request frame, byte for byte.""" - if isinstance(data, str): - data = data.encode("ascii") - return (bytes([EOT, SOH, ord(type_char), STX]) + data - + bytes([ETX]) + bcc(type_char, data) + bytes([CR])) - - -def build_sequence(item, partno, serial, site, operator_inputs, - marker_type="2Line", clear_first=True): - """Everything MarkTelesis would send for one item, in order.""" - seq = [] - reusable = {} - - seq.append(("online", frame("O"))) - - if item.pattern: - seq.append(("load pattern %s" % item.pattern, frame("P", item.pattern))) - - if clear_first: - # TmcClrFlds - blank every field before setting values, so a field the - # program does not set cannot mark the previous part's data. - for field, _, _ in item.commands: - if marker_type == "2Line": - seq.append(("clear line %d" % field, frame(str(field), " "))) - else: - seq.append(("clear field %d" % field, - frame("V", "%02d %s" % (field, " ")))) - - for field, template, _ in item.commands: - text = substitute(template, partno, serial, site, - operator_inputs, reusable) - if marker_type == "2Line": - # the TYPE byte IS the line number - seq.append(("line %d = %r" % (field, text), frame(str(field), text))) - else: - seq.append(("field %d = %r" % (field, text), - frame("V", "%02d%s" % (field, text)))) - - seq.append(("mark", frame("R"))) - return seq - - -# ---------------------------------------------------------------- translation - -# Field number -> e10 variable name. Default is the V01/V02 convention we -# intend for authored patterns; override when driving a file whose variables -# were named by someone else's GUI. -VAR_NAMES = {} - - -def var_for(field): - return VAR_NAMES.get(field, "V%02d" % field) - - -def translate(type_char, data): - """Turn one Telesis frame into the e10 action it corresponds to. - - Returns (action, args) where action is one of: - load, setvar, mark, ack_locally - """ - text = data.decode("ascii", "replace") - if type_char == "P": - return ("load", text) - if type_char == "O": - return ("ack_locally", "online - the e10 has no equivalent") - if type_char == "R": - return ("mark", "") - if type_char.isdigit(): - return ("setvar", (var_for(int(type_char)), text)) - if type_char == "V": - return ("setvar", (var_for(int(text[:2])), text[2:])) - return ("ack_locally", "unhandled type %r" % type_char) - - -def decode_frame(raw): - """Pull (type, data) back out of a frame we built.""" - type_char = chr(raw[2]) - end = raw.index(ETX, 4) - return type_char, raw[4:end] - - -# ---------------------------------------------------------------------- main - -def main(): - parser = argparse.ArgumentParser( - description="Simulate what eDNC/MarkTelesis do with a part program.") - parser.add_argument("partprogram") - parser.add_argument("--partno", default="07482ABC", - help="part number eDNC would get from the router scan") - parser.add_argument("--serial", default="12345678", - help="serial number from the router scan") - parser.add_argument("--site", default="westjefferson", - choices=["westjefferson", "wilmington"]) - parser.add_argument("--marker-type", default="2Line", - choices=["2Line", "TMC400"], - help="which dialect MarkTelesis would emit." - " WJPRT runs 2Line.") - parser.add_argument("--input", action="append", default=[], - help="operator input, in prompt order. repeatable.") - parser.add_argument("--no-clear", action="store_true", - help="skip the clear-fields pass") - parser.add_argument("--e10", metavar="DEVICE", nargs="?", const="", - help="also drive a real e10. Give a port, or pass the" - " flag bare to use $E10_PORT / the platform" - " default.") - parser.add_argument("--pattern", - help="override the pattern name from the ^ line." - " Useful when the e10 file is named differently" - " from the Telesis pattern.") - parser.add_argument("--var-names", - help="comma-separated e10 variable names for fields" - " 1,2,3... e.g. PN,SN. Default is V01,V02,...") - parser.add_argument("--really-mark", action="store_true", - help="fire the stylus for real. WITHOUT this, marking" - " runs in simulation mode, force 0, stylus up.") - args = parser.parse_args() - - if args.var_names: - for index, name in enumerate(args.var_names.split(","), start=1): - VAR_NAMES[index] = name.strip() - - try: - with open(args.partprogram) as handle: - fileinfo, general, items = parse_part_program(handle.read()) - except FileNotFoundError: - sys.stdout.flush() - sys.stderr.write("no such part program: %s\n" % args.partprogram) - here = os.path.join(os.path.dirname(os.path.abspath(__file__)), - "..", "partprograms") - for folder in (os.path.dirname(args.partprogram) or ".", here): - try: - found = sorted(f for f in os.listdir(folder) - if f.lower().endswith(".txt")) - except OSError: - continue - if found: - sys.stderr.write("part programs in %s:\n" - % os.path.normpath(folder)) - for name in found: - sys.stderr.write(" %s\n" % name) - break - else: - sys.stderr.write("Give the path to a .txt part program. On Windows" - " use backslashes:\n" - " python scripts\\simulate-ednc.py" - " partprograms\\TEL3L0001.txt ...\n") - sys.exit(1) - except IsADirectoryError: - sys.stdout.flush() - sys.stderr.write("%s is a folder, not a part program file\n" - % args.partprogram) - sys.exit(1) - - print("=" * 72) - print("PART PROGRAM: %s" % args.partprogram) - if fileinfo: - print(" file info %s" % fileinfo) - print(" part number %s (from the router scan)" % args.partno) - print(" serial %s" % args.serial) - print(" marker type %s" % args.marker_type) - for line in general: - print(" instruction %s" % line) - print("=" * 72) - - for item in items: - if args.pattern: - item.pattern = args.pattern - print("\nITEM %s" % item.name) - if item.pattern: - print(" pattern %s" % item.pattern) - for line in item.instructions: - print(" operator sees %s" % line) - for field, template, keep in item.commands: - print(" line %-2d %r%s" - % (field, template, "" if keep else " (leading spaces stripped)")) - - seq = build_sequence(item, args.partno, args.serial, args.site, - list(args.input), args.marker_type, - clear_first=not args.no_clear) - - print("\n WHAT MARKTELESIS WOULD PUT ON THE WIRE") - print(" %-28s %s" % ("meaning", "bytes")) - print(" " + "-" * 68) - for label, raw in seq: - print(" %-28s %s" % (label, raw.hex(" "))) - - print("\n TRANSLATED FOR THE e10") - for label, raw in seq: - type_char, data = decode_frame(raw) - action, payload = translate(type_char, data) - if action == "load": - print(" %-28s LOAD FILE %r" % (label, payload)) - elif action == "setvar": - print(" %-28s SETVAR %s = %r" % (label, payload[0], payload[1])) - elif action == "mark": - print(" %-28s START MARKING%s" - % (label, "" if args.really_mark else " (SIMULATION)")) - else: - print(" %-28s [%s]" % (label, payload)) - - # `is not None`, NOT a truth test. --e10 passed bare sets this to an - # empty string, which is falsy, so a truth test silently turns a - # hardware run into a dry run - with no error to explain why nothing - # reached the controller. - if args.e10 is not None: - drive_e10(seq, args) - - -def drive_e10(seq, args): - """Run the translated sequence against a real controller.""" - sys.path.insert(0, __file__.rsplit("/", 1)[0]) - import importlib.util - spec = importlib.util.spec_from_file_location( - "e10", __file__.rsplit("/", 1)[0] + "/e10-client.py") - e10mod = importlib.util.module_from_spec(spec) - spec.loader.exec_module(e10mod) - - port = args.e10 or e10mod.default_port() - print("\n DRIVING THE REAL CONTROLLER on %s" % port) - with e10mod.E10(port, timeout=5.0) as dev: - for label, raw in seq: - type_char, data = decode_frame(raw) - action, payload = translate(type_char, data) - try: - if action == "load": - dev.load_file(payload) - print(" %-26s LOAD FILE ok" % label) - elif action == "setvar": - dev.set_var(payload[0], payload[1]) - print(" %-26s SETVAR ok" % label) - elif action == "mark": - dev.start_marking(simulate=not args.really_mark) - print(" %-26s started, waiting for home..." % label) - dev.wait_for_mark(on_pause=lambda: print( - " PAUSE - press Start on the machine")) - print(" %-26s cycle complete" % label) - else: - print(" %-26s (nothing to send)" % label) - except e10mod.E10Error as err: - print(" %-26s FAILED: %s" % (label, err)) - break - - -if __name__ == "__main__": - try: - main() - except KeyboardInterrupt: - sys.exit(130) - except Exception as err: # noqa: BLE001 - # E10Error is defined in the client module, which is loaded - # dynamically, so catch by name rather than importing it up here. - if type(err).__name__ in ("E10Error", "E10Fault"): - # Flush stdout first. It is block-buffered when piped while stderr - # is not, so without this the error appears BEFORE the output it - # refers to - and a `| tail` drops it entirely, which looks like - # the command failed silently. - sys.stdout.flush() - sys.stderr.write("e10: %s\n" % err) - sys.stderr.flush() - sys.exit(1) - raise diff --git a/scripts/stage-usb-share.sh b/scripts/stage-usb-share.sh new file mode 100755 index 0000000..08e4f6c --- /dev/null +++ b/scripts/stage-usb-share.sh @@ -0,0 +1,108 @@ +#!/bin/bash +# +# stage-usb-share.sh - Put everything Build-PxeUsb.ps1 needs into a folder +# on a share, so a Windows PC can build the installer USB from it. +# +# Usage: +# scripts/stage-usb-share.sh [--iso FILE] [--payload-root DIR] [DEST] +# +# DEST defaults to ~/pxe-images/pxe-usb (the [pxe-images] Samba share; on +# the work PC: \\\pxe-images\pxe-usb, usually Z:\pxe-usb). It gets: +# - the repo as committed (git archive HEAD: uncommitted edits are NOT +# staged, so the stick matches a commit); +# - the payload folders (offline-packages, pip-wheels, boot-files, +# boot-tools, enrollment, bios-staging, drivers-staging, site-content) +# as hard links, so they cost no extra disk space; +# - the Ubuntu ISO offline-packages/ was built for (hard link); +# - STAGED.txt: commit, date, sizes. +# Then on the work PC: copy the folder to a local disk (C:\pxe-usb) and +# double-click Build-PxeUsb.cmd (KB: docs/kb/How_To_Deploy_PXE_Server_New_Site.html). +# +# The new copy is built beside the old one and swapped in when complete. +# Run capture-site-content.sh --apply first so site-content/ is current. + +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "$0")"/.. && pwd)" +PAYLOAD_ROOT="$REPO_ROOT" +ISO="" +DEST="" + +while [ $# -gt 0 ]; do + case "$1" in + --iso) ISO="${2:?}"; shift 2 ;; + --payload-root) PAYLOAD_ROOT="$(cd "${2:?}" && pwd)"; shift 2 ;; + -h|--help) sed -n '2,/^$/p' "$0" | sed 's/^# \{0,1\}//'; exit 0 ;; + -*) echo "unknown option $1" >&2; exit 2 ;; + *) DEST="$1"; shift ;; + esac +done +DEST="${DEST:-$HOME/pxe-images/pxe-usb}" +mkdir -p "$(dirname "$DEST")" +DEST="$(cd "$(dirname "$DEST")" && pwd)/$(basename "$DEST")" + +# Only ever replace a folder this script made (it is swapped and deleted). +if [ -e "$DEST" ] && [ ! -f "$DEST/STAGED.txt" ]; then + echo "ERROR: $DEST exists and was not made by this script (no STAGED.txt); refusing to replace it" >&2 + exit 1 +fi + +# The ISO the offline set was resolved for (BUILD-INFO names it). +if [ -z "$ISO" ]; then + name=$(sed -n 's/.*--iso \([^ ]*\.iso\).*/\1/p' "$PAYLOAD_ROOT/offline-packages/BUILD-INFO.txt" 2>/dev/null | head -1) + name=$(basename "${name:-}") + for d in "$PAYLOAD_ROOT" "$PAYLOAD_ROOT/iso" "${PXETEST_CACHE:-$HOME/.cache/pxetest}"; do + [ -n "$name" ] && [ -f "$d/$name" ] && { ISO="$d/$name"; break; } + done + [ -n "$ISO" ] || { echo "ERROR: give --iso FILE (the offline set was built for ${name:-an unknown ISO})" >&2; exit 1; } +fi +[ -f "$ISO" ] || { echo "ERROR: ISO not found: $ISO" >&2; exit 1; } + +same_fs() { [ "$(stat -c %d "$1")" = "$(stat -c %d "$2")" ]; } + +NEW="$DEST.new.$$" +OLD="$DEST.old.$$" +cleanup() { [ -d "$NEW" ] && rm -rf -- "$NEW"; return 0; } +trap cleanup EXIT +mkdir -p "$NEW" + +cd "$REPO_ROOT" +COMMIT=$(git rev-parse --short HEAD) +if ! git diff --quiet HEAD -- autoinstall playbook scripts webapp; then + echo "NOTE: uncommitted changes in autoinstall/playbook/scripts/webapp are NOT staged (HEAD $COMMIT is)." +fi +echo "Repo $COMMIT -> $NEW" +git archive HEAD | tar -x -C "$NEW" + +link_or_copy() { # SRC DST + if same_fs "$1" "$(dirname "$2")"; then cp -al "$1" "$2"; else cp -a "$1" "$2"; fi +} +for d in offline-packages pip-wheels boot-files boot-tools enrollment bios-staging drivers-staging site-content; do + src="$PAYLOAD_ROOT/$d" + [ -d "$src" ] || { echo " $d: not in $PAYLOAD_ROOT (skipped)"; continue; } + # git archive brings the tracked bits of boot-files/ and boot-tools/; the + # payload folder replaces them whole. + rm -rf -- "${NEW:?}/$d" + link_or_copy "$src" "$NEW/$d" + printf ' %-17s %s\n' "$d" "$(du -sh "$NEW/$d" | cut -f1)" +done +link_or_copy "$ISO" "$NEW/$(basename "$ISO")" +echo " ISO $(basename "$ISO")" + +{ + echo "Staged by scripts/stage-usb-share.sh $(date -Is)" + echo "Commit: $(git log -1 --format='%h %s')" + echo "ISO: $(basename "$ISO")" + echo "Payload root: $PAYLOAD_ROOT" + echo + echo "On the Windows PC:" + echo " 1. Copy this whole folder to a local disk, e.g. C:\\pxe-usb" + echo " 2. Double-click C:\\pxe-usb\\Build-PxeUsb.cmd (asks for admin, lists USB disks)" + echo " Instructions: docs\\kb\\How_To_Deploy_PXE_Server_New_Site.html" +} >"$NEW/STAGED.txt" + +if [ -e "$DEST" ]; then mv -- "$DEST" "$OLD"; fi +mv -- "$NEW" "$DEST" +[ -e "$OLD" ] && rm -rf -- "$OLD" +trap - EXIT +echo "Staged: $DEST ($(du -sh "$DEST" | cut -f1) apparent, hard-linked payload)" diff --git a/scripts/sync_hardware_models.py b/scripts/sync_hardware_models.py deleted file mode 100644 index 1470a20..0000000 --- a/scripts/sync_hardware_models.py +++ /dev/null @@ -1,177 +0,0 @@ -#!/usr/bin/env python3 -"""Sync HardwareDriver.json and user_selections.json across all PXE image types. - -Reads all HardwareDriver.json files, builds a unified driver catalog, -then updates each image to include all known hardware models. -Run after adding new driver packs to the shared Out-of-box Drivers directory. -""" -import json -import os -import sys -from pathlib import Path -from collections import OrderedDict - -WINPEAPPS = Path("/srv/samba/winpeapps") -SHARED_DRIVERS = WINPEAPPS / "_shared" / "Out-of-box Drivers" - - -def normalize_entry(entry): - """Normalize a HardwareDriver.json entry to a consistent format.""" - norm = {} - norm["manufacturer"] = entry.get("manufacturer", "Dell") - norm["product"] = entry.get("product") or entry.get("manufacturerfriendlyname", "Dell") - norm["family"] = entry.get("family", "") - norm["modelswminame"] = entry.get("modelswminame") or entry.get("models", "") - norm["modelsfriendlyname"] = entry.get("modelsfriendlyname", "") - norm["fileName"] = entry.get("fileName") or entry.get("FileName", "") - norm["destinationDir"] = entry.get("destinationDir") or entry.get("DestinationDir", "") - norm["url"] = entry.get("url", "") - norm["hash"] = entry.get("hash", "") - norm["size"] = entry.get("size", 0) - norm["modifiedDate"] = entry.get("modifiedDate", "0001-01-01T00:00:00") - norm["osId"] = entry.get("osId", "") - norm["imagedisk"] = entry.get("imagedisk", 0) - return norm - - -def merge_os_ids(a, b): - """Merge two osId strings (e.g., '18' + '20,21' -> '18,20,21').""" - ids = set() - for oid in [a, b]: - for part in str(oid).split(","): - part = part.strip() - if part: - ids.add(part) - return ",".join(sorted(ids, key=lambda x: int(x) if x.isdigit() else 0)) - - -def check_driver_exists(entry): - """Check if the driver zip actually exists in the shared directory.""" - dest = entry["destinationDir"] - dest = dest.replace("*destinationdir*", "") - dest = dest.lstrip("\\") - dest = dest.replace("\\", "/") - # Strip leading path components that are already in SHARED_DRIVERS - for prefix in ["Deploy/Out-of-box Drivers/", "Out-of-box Drivers/"]: - if dest.startswith(prefix): - dest = dest[len(prefix):] - break - dest = dest.lstrip("/") - zip_path = SHARED_DRIVERS / dest / entry["fileName"] - return zip_path.exists() - - -def main(): - print("=== PXE Hardware Model Sync ===") - print() - - # Step 1: Build unified catalog from all images - print("Reading driver catalogs...") - catalog = OrderedDict() - - image_dirs = sorted( - [d for d in WINPEAPPS.iterdir() if d.is_dir() and not d.name.startswith("_")] - ) - - for img_dir in image_dirs: - hw_file = img_dir / "Deploy" / "Control" / "HardwareDriver.json" - if not hw_file.exists(): - continue - with open(hw_file) as f: - entries = json.load(f) - print(" Read {} entries from {}".format(len(entries), img_dir.name)) - for entry in entries: - norm = normalize_entry(entry) - key = (norm["family"], norm["fileName"]) - if key in catalog: - catalog[key]["osId"] = merge_os_ids( - catalog[key]["osId"], norm["osId"] - ) - # Prefer longer/more complete model names - if len(norm["modelswminame"]) > len(catalog[key]["modelswminame"]): - catalog[key]["modelswminame"] = norm["modelswminame"] - if len(norm["modelsfriendlyname"]) > len( - catalog[key]["modelsfriendlyname"] - ): - catalog[key]["modelsfriendlyname"] = norm["modelsfriendlyname"] - else: - catalog[key] = norm - - unified = list(catalog.values()) - print() - print("Unified catalog: {} unique driver entries".format(len(unified))) - - # Step 2: Check which drivers actually exist on disk - missing = [] - found = 0 - for entry in unified: - if check_driver_exists(entry): - found += 1 - else: - missing.append( - " {}: {}".format(entry["family"], entry["fileName"]) - ) - - print(" {} drivers found on disk".format(found)) - if missing: - print(" WARNING: {} driver zips NOT found on disk:".format(len(missing))) - for m in missing[:15]: - print(m) - if len(missing) > 15: - print(" ... and {} more".format(len(missing) - 15)) - print(" (Entries still included - PESetup may download them)") - - # Step 3: Build unified model selection from all driver entries - models = [] - seen = set() - for entry in unified: - friendly_names = [ - n.strip() - for n in entry["modelsfriendlyname"].split(",") - if n.strip() - ] - family = entry["family"] - for name in friendly_names: - key = (name, family) - if key not in seen: - seen.add(key) - models.append({"Model": name, "Id": family}) - models.sort(key=lambda x: x["Model"]) - print() - print("Unified model selection: {} models".format(len(models))) - - # Step 4: Update each image - print() - print("Updating images...") - for img_dir in image_dirs: - hw_file = img_dir / "Deploy" / "Control" / "HardwareDriver.json" - us_file = img_dir / "Tools" / "user_selections.json" - if not hw_file.exists() or not us_file.exists(): - continue - - # Write unified HardwareDriver.json - with open(hw_file, "w") as f: - json.dump(unified, f, indent=2) - f.write("\n") - - # Update user_selections.json (preserve OperatingSystemSelection etc.) - with open(us_file) as f: - user_sel = json.load(f) - old_count = len(user_sel[0].get("HardwareModelSelection", [])) - user_sel[0]["HardwareModelSelection"] = models - with open(us_file, "w") as f: - json.dump(user_sel, f, indent=2) - f.write("\n") - - print( - " {}: {} -> {} models, {} driver entries".format( - img_dir.name, old_count, len(models), len(unified) - ) - ) - - print() - print("Done!") - - -if __name__ == "__main__": - main() diff --git a/site-vars.example.yml b/site-vars.example.yml new file mode 100644 index 0000000..8788afa --- /dev/null +++ b/site-vars.example.yml @@ -0,0 +1,26 @@ +# Copy to site-vars.yml in this folder (C:\pxe-usb) and keep only the lines you need. +# Build-PxeUsb.cmd puts site-vars.yml on the stick. Full list of settings: +# playbook\site-vars.example.yml + +# Name on Blancco erasure reports and the monthly evidence packs. +# Not set: "Unnamed site". Letters, digits, spaces and . , - ( ) & / only. +site_name: "Example Site" + +# Time zone of the server clock and the web interface (default +# America/New_York), e.g. America/Chicago, America/Los_Angeles. +site_timezone: "America/New_York" + +# Who may reach the web interface (9009) and SSH from the GE network. +# Not set = all of GE (the setup warns). To restrict it, remove the # +# and put your admin desks' subnet(s), e.g. ["10.12.34.0/24"]: +# corp_admin_cidrs: ["/24"] + +# Password of the Clonezilla backup share (8-64 characters from +# A-Z a-z 0-9 . _ ~ -). The PXE boot menu carries it: an imaging-LAN +# secret, not a real one. Default: clonezilla-backup +clonezilla_smb_password: "change-me-per-site" + +# Optional: pin the NICs by MAC instead of picking the imaging port at +# install (then both cables may be plugged in from the start). +# pxe_nic_mac: "aa:bb:cc:dd:ee:01" # port to the imaging switch +# corp_nic_mac: "aa:bb:cc:dd:ee:02" # port to the GE network diff --git a/startnet-template.cmd b/startnet-template.cmd deleted file mode 100644 index 13faa8c..0000000 --- a/startnet-template.cmd +++ /dev/null @@ -1,341 +0,0 @@ -@echo off -echo Please wait while 'WinPE' is being processed. This may take a few seconds. -wpeinit -powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c - -REM --- Wait for network (DHCP may take a moment after wpeinit) --- -echo Waiting for network... -:wait_net -ping -n 2 172.16.9.1 >NUL 2>&1 -if errorlevel 1 goto wait_net -echo Network ready. - -REM --- BIOS update check (runs before imaging menu) --- -REM Mounts [winpeapps_bios] share. CRITICAL: do NOT call check-bios.cmd -REM inside an `if exist (...)` parens block - CMD's variable scoping for -REM CALLed scripts inside parens does not propagate BIOS_STATUS back to -REM this script reliably. Use goto-flow instead so the CALL runs at the -REM top scope and BIOS_STATUS persists. -set BIOS_STATUS=No BIOS check (share unavailable) -net use B: \\172.16.9.1\winpeapps_bios /user:pxe-upload pxe /persistent:no 2>NUL -if not exist B:\check-bios.cmd goto :bios_check_done -echo. -echo Checking for BIOS updates... -call B:\check-bios.cmd -:bios_check_done -net use B: /delete 2>NUL - -:menu -cls -echo. -echo ======================================== -echo WinPE Setup Menu -echo ======================================== -echo Firmware: %BIOS_STATUS% -echo. -echo Please select an option: -echo. -echo 1. GEA Standard -echo 2. GEA Engineer -echo 3. GEA Shopfloor -echo. -echo ======================================== -echo. -set /p choice=Enter your choice (1-3): - -REM --- Only shopfloor images (3,6,7) need GCCH enrollment --- -set PPKG= -if "%choice%"=="3" goto enroll_menu -if "%choice%"=="6" goto enroll_menu -if "%choice%"=="7" goto enroll_menu -goto enroll_staged - -:enroll_menu -cls -echo. -echo ======================================== -echo GCCH Enrollment Profile -echo ======================================== -echo. -echo 1. No Office -echo 2. Standard Office (x86) -echo 3. Standard Office (x64) -echo 4. Pro Plus Office (x86) with Access -echo 5. Pro Plus Office (x64) with Access -echo 6. Skip enrollment -echo. -set /p enroll=Enter your choice (1-6): - -REM --- PPKG configuration (constructed at menu time, see docs) --- -REM Vendor ships one source PPKG; we construct the BPRT-tagged filename -REM by filling in Office, Region, Expiry, Version on the target copy. -REM Update SOURCE_PPKG + PPKG_VER when a new PPKG is released. -set SOURCE_PPKG=GCCH_Prod_SFLD_v4.12.ppkg -set PPKG_VER=v4.12 -set PPKG_EXP=20260831 -set REGION=US - -set OFFICE= -if "%enroll%"=="1" set OFFICE=NoOffice -if "%enroll%"=="2" set OFFICE=StdOffice-x86 -if "%enroll%"=="3" set OFFICE=StdOffice-x64 -if "%enroll%"=="4" set OFFICE=ProPlusOffice-x86 -if "%enroll%"=="5" set OFFICE=ProPlusOffice-x64 -if "%enroll%"=="6" set OFFICE= -if "%enroll%"=="" goto enroll_menu - -set PPKG= -if not "%OFFICE%"=="" set PPKG=GCCH_Prod_SFLD_%OFFICE%_%REGION%_Exp_%PPKG_EXP%_%PPKG_VER%.ppkg - -:pctype_menu -cls -echo. -echo ======================================== -echo Shopfloor PC Type -echo ======================================== -echo. -echo 1. CMM -echo 2. Wax and Trace -echo 3. Keyence -echo 4. Genspect -echo 5. Display -echo 6. Standard -echo 7. Lab -echo. -set PCTYPE= -set /p pctype_choice=Enter your choice (1-7): -if "%pctype_choice%"=="1" set PCTYPE=CMM -if "%pctype_choice%"=="2" set PCTYPE=WaxAndTrace -if "%pctype_choice%"=="3" set PCTYPE=Keyence -if "%pctype_choice%"=="4" set PCTYPE=Genspect -if "%pctype_choice%"=="5" set PCTYPE=Display -if "%pctype_choice%"=="6" set PCTYPE=Standard -if "%pctype_choice%"=="7" set PCTYPE=Lab -if "%PCTYPE%"=="" goto pctype_menu - -REM --- Sub-type selection menus --- -REM PCSUBTYPE is written to pc-subtype.txt alongside pc-type.txt. -REM Scripts read it to look up the right profile in site-config.json. -set PCSUBTYPE= -set DISPLAYTYPE= - -REM --- Standard sub-type --- -if not "%PCTYPE%"=="Standard" goto skip_standard_menu -:standard_menu -cls -echo. -echo ======================================== -echo Standard PC Sub-Type -echo ======================================== -echo. -echo 1. Timeclock (WJ Shopfloor only) -echo 2. Machine (WJ Shopfloor, Plant Apps, eDNC, UDC) -echo. -set /p standard_choice=Enter your choice (1-2): -if "%standard_choice%"=="1" set PCSUBTYPE=Timeclock -if "%standard_choice%"=="2" set PCSUBTYPE=Machine -if "%PCSUBTYPE%"=="" goto standard_menu - -REM --- Machine number (Standard-Machine only; Timeclock PCs do not use one) --- -set MACHINENUM=9999 -if "%PCSUBTYPE%"=="Timeclock" goto skip_standard_menu -echo. -set /p MACHINENUM=Enter machine number (digits, or Enter for 9999): -if "%MACHINENUM%"=="" set MACHINENUM=9999 -echo Machine number: %MACHINENUM% -:skip_standard_menu - -REM --- Display sub-type --- -if not "%PCTYPE%"=="Display" goto skip_display_menu -:display_menu -cls -echo. -echo ======================================== -echo Display Type -echo ======================================== -echo. -echo 1. Lobby Display -echo 2. Dashboard -echo. -set /p display_choice=Enter your choice (1-2): -if "%display_choice%"=="1" set DISPLAYTYPE=Lobby -if "%display_choice%"=="1" set PCSUBTYPE=Lobby -if "%display_choice%"=="2" set DISPLAYTYPE=Dashboard -if "%display_choice%"=="2" set PCSUBTYPE=Dashboard -if "%PCSUBTYPE%"=="" goto display_menu -:skip_display_menu - -REM --- Map enrollment share early (kept open for copy after imaging) --- -set NEED_ENROLL=0 -if not "%PPKG%"=="" set NEED_ENROLL=1 -if not "%PCTYPE%"=="" set NEED_ENROLL=1 -if "%NEED_ENROLL%"=="0" goto enroll_staged -net use Y: \\172.16.9.1\enrollment /user:pxe-upload pxe /persistent:no -if "%PPKG%"=="" goto enroll_staged -if not exist "Y:\ppkgs\%SOURCE_PPKG%" ( - echo WARNING: %SOURCE_PPKG% not found on server. Enrollment will be skipped. - set PPKG= -) -:enroll_staged - -echo. > X:\Boot.tag -if "%choice%"=="1" goto gea-standard -if "%choice%"=="2" goto gea-engineer -if "%choice%"=="3" goto gea-shopfloor -echo Invalid choice. Please try again. -pause -goto menu - -:gea-standard -echo. -echo Starting GEA Standard setup... -start "FlatApp" %SYSTEMDRIVE%\GESetup\FlatSetupLoader.exe -for /l %%i in (1,1,2000000) do rem -net use Z: \\172.16.9.1\winpeapps\gea-standard /user:pxe-upload pxe /persistent:no -goto end - -:gea-engineer -echo. -echo Starting GEA Engineer setup... -start "FlatApp" %SYSTEMDRIVE%\GESetup\FlatSetupLoader.exe -for /l %%i in (1,1,2000000) do rem -net use Z: \\172.16.9.1\winpeapps\gea-engineer /user:pxe-upload pxe /persistent:no -goto end - -:gea-shopfloor -echo. -echo Starting GEA Shopfloor setup... -start "FlatApp" %SYSTEMDRIVE%\GESetup\FlatSetupLoader.exe -for /l %%i in (1,1,2000000) do rem -net use Z: \\172.16.9.1\winpeapps\gea-shopfloor /user:pxe-upload pxe /persistent:no -goto end - -:end -echo. -echo Waiting for PESetup.exe to start... -:wait_start -ping -n 3 127.0.0.1 >NUL -wmic process where "name='PESetup.exe'" get name 2>NUL | find /I "PESetup" >NUL -if errorlevel 1 goto wait_start -echo PESetup.exe is running. Waiting for imaging to complete... - -REM --- Copy enrollment package and shopfloor setup as soon as Windows partition appears --- -if "%PPKG%"=="" if "%PCTYPE%"=="" goto wait_finish -echo Waiting for Windows partition at W: ... -:wait_enroll -ping -n 11 127.0.0.1 >NUL -if not exist W:\Windows\System32\config\system goto wait_enroll -echo Found Windows at W: -mkdir W:\Enrollment 2>NUL - -REM --- Copy site config (drives site-specific values in all setup scripts) --- -if exist "Y:\config\site-config.json" ( - copy /Y "Y:\config\site-config.json" "W:\Enrollment\site-config.json" - echo Copied site-config.json. -) else ( - echo WARNING: site-config.json not found on enrollment share. -) - -REM --- Copy PPKG if selected (renames from SOURCE to BPRT-tagged filename) --- -if "%PPKG%"=="" goto copy_pctype -copy /Y "Y:\ppkgs\%SOURCE_PPKG%" "W:\Enrollment\%PPKG%" -if errorlevel 1 ( - echo WARNING: Failed to copy enrollment package. - goto copy_pctype -) -copy /Y "Y:\scripts\run-enrollment.ps1" "W:\Enrollment\run-enrollment.ps1" -copy /Y "Y:\scripts\wait-for-internet.ps1" "W:\Enrollment\wait-for-internet.ps1" -copy /Y "Y:\scripts\migrate-to-wifi.ps1" "W:\Enrollment\migrate-to-wifi.ps1" - -REM --- Create enroll.cmd at drive root as manual fallback --- -> W:\enroll.cmd ( -echo @echo off -echo echo Waiting for network... -echo :waitnet -echo ping -n 2 8.8.8.8 ^>NUL 2^>^&1 -echo if errorlevel 1 goto waitnet -echo echo Network connected. Running enrollment... -echo powershell.exe -ExecutionPolicy Bypass -File "C:\run-enrollment.ps1" -) -echo Manual fallback created at W:\enroll.cmd - -:copy_pctype -REM --- Copy shopfloor PC type setup scripts --- -if "%PCTYPE%"=="" goto cleanup_enroll -echo %PCTYPE%> W:\Enrollment\pc-type.txt -if not "%DISPLAYTYPE%"=="" echo %DISPLAYTYPE%> W:\Enrollment\display-type.txt -if not "%PCSUBTYPE%"=="" echo %PCSUBTYPE%> W:\Enrollment\pc-subtype.txt -if not "%MACHINENUM%"=="" echo %MACHINENUM%> W:\Enrollment\machine-number.txt -copy /Y "Y:\shopfloor-setup\Run-ShopfloorSetup.ps1" "W:\Enrollment\Run-ShopfloorSetup.ps1" -REM --- Always copy Shopfloor baseline scripts --- -mkdir W:\Enrollment\shopfloor-setup 2>NUL -copy /Y "Y:\shopfloor-setup\backup_lockdown.bat" "W:\Enrollment\shopfloor-setup\backup_lockdown.bat" -if exist "Y:\shopfloor-setup\Shopfloor" ( - mkdir W:\Enrollment\shopfloor-setup\Shopfloor 2>NUL - xcopy /E /Y /I "Y:\shopfloor-setup\Shopfloor" "W:\Enrollment\shopfloor-setup\Shopfloor\" - echo Copied Shopfloor baseline setup files. -) -REM --- Always copy common/ (cross-PC-type GE-Enforce dispatcher + lib live here post-v2) --- -if exist "Y:\shopfloor-setup\common" ( - mkdir W:\Enrollment\shopfloor-setup\common 2>NUL - xcopy /E /Y /I "Y:\shopfloor-setup\common" "W:\Enrollment\shopfloor-setup\common\" - echo Copied common setup files. -) -REM --- Copy type-specific scripts on top of baseline --- -if exist "Y:\shopfloor-setup\%PCTYPE%" ( - mkdir "W:\Enrollment\shopfloor-setup\%PCTYPE%" 2>NUL - xcopy /E /Y /I "Y:\shopfloor-setup\%PCTYPE%" "W:\Enrollment\shopfloor-setup\%PCTYPE%\" - echo Copied %PCTYPE% setup files. -) else ( - echo WARNING: No setup files found for PC type %PCTYPE%. -) - -REM --- Stage preinstall bundle (apps installed locally to save Azure bandwidth) --- -if exist "Y:\pre-install\preinstall.json" ( - mkdir W:\PreInstall 2>NUL - mkdir W:\PreInstall\installers 2>NUL - copy /Y "Y:\pre-install\preinstall.json" "W:\PreInstall\preinstall.json" - if exist "Y:\pre-install\installers" ( - xcopy /E /Y /I "Y:\pre-install\installers" "W:\PreInstall\installers\" - echo Staged preinstall bundle to W:\PreInstall. - ) else ( - echo WARNING: Y:\pre-install\installers not found - preinstall.json staged without installers. - ) - if exist "Y:\pre-install\udc-backups" ( - xcopy /E /Y /I "Y:\pre-install\udc-backups" "W:\PreInstall\udc-backups\" - echo Staged UDC settings backups to W:\PreInstall\udc-backups. - ) -) else ( - echo No preinstall bundle on PXE server - skipping. -) - -REM --- Stage CMM bootstrap bundle (CMM-type PCs only) --- -REM Copies the Hexagon installer bundle (~1.9 GB) from the PXE server enrollment -REM share onto the target disk so 09-Setup-CMM.ps1 can install from local disk. -REM The tsgwp00525 SFLD share that holds the canonical copy is not yet reachable -REM during shopfloor-setup (Azure DSC provisions those creds later), so this -REM bootstrap exists to get the first-install through. Post-imaging, the -REM unified GE-Enforce dispatcher takes over from the share for ongoing updates. -if /i not "%PCTYPE%"=="CMM" goto skip_cmm_stage -if exist "Y:\installers-post\cmm\cmm-manifest.json" ( - mkdir W:\CMM-Install 2>NUL - xcopy /E /Y /I "Y:\installers-post\cmm" "W:\CMM-Install\" - echo Staged CMM bootstrap to W:\CMM-Install. -) else ( - echo WARNING: Y:\cmm-installers not found - CMM PC cannot install Hexagon apps at imaging time. -) -:skip_cmm_stage -:pctype_done - -:cleanup_enroll -net use Y: /delete 2>NUL - -:wait_finish -ping -n 11 127.0.0.1 >NUL -wmic process where "name='PESetup.exe'" get name 2>NUL | find /I "PESetup" >NUL -if not errorlevel 1 goto wait_finish -echo. -echo Imaging complete. Rebooting in 15 seconds... -echo Press Ctrl+C to cancel. -ping -n 16 127.0.0.1 >NUL -wpeutil reboot diff --git a/webapp/app.py b/webapp/app.py index c21bce3..f0b23bf 100644 --- a/webapp/app.py +++ b/webapp/app.py @@ -1648,8 +1648,6 @@ def startnet_editor(): boot_menu=boot_menu, lint=lint, snapshots=snapshots, - shopfloor_items=read_shopfloor_menu(), - shopfloor_available=available_pctypes(), image_types=config.IMAGE_TYPES, friendly_names=config.FRIENDLY_NAMES, ) @@ -1813,77 +1811,6 @@ def startnet_diff(): return jsonify({"error": "provide snapshot_id or content"}), 400 -# --------------------------------------------------------------------------- -# Routes - Shopfloor boot-menu (data-driven menu.json) -# --------------------------------------------------------------------------- - -SHOPFLOOR_SETUP_DIR = os.path.join(config.ENROLLMENT_SHARE, "shopfloor-setup") -SHOPFLOOR_MENU_JSON = os.path.join(SHOPFLOOR_SETUP_DIR, "menu.json") - - -def read_shopfloor_menu(): - """The shopfloor PC-type menu items from menu.json (list; [] if absent).""" - try: - with open(SHOPFLOOR_MENU_JSON) as fh: - return json.load(fh).get("shopfloor", []) - except (OSError, json.JSONDecodeError): - return [] - - -def available_pctypes(): - """gea-shopfloor-* handler dirs on the share - the only valid menu keys.""" - try: - return sorted( - d for d in os.listdir(SHOPFLOOR_SETUP_DIR) - if d.startswith("gea-shopfloor-") - and os.path.isdir(os.path.join(SHOPFLOOR_SETUP_DIR, d)) - ) - except OSError: - return [] - - -@app.route("/shopfloor-menu", methods=["GET", "POST"]) -def shopfloor_menu(): - if request.method == "POST": - try: - items = json.loads(request.form.get("items", "[]")) - except json.JSONDecodeError: - flash("Invalid menu payload.", "danger") - return redirect(url_for("startnet_editor") + "#tab-shopfloor") - valid = set(available_pctypes()) - clean = [] - for it in items: - if not isinstance(it, dict): - continue - key = (it.get("key") or "").strip() - label = (it.get("label") or "").strip() - if not key or not label: - continue - if key not in valid: - flash(f"Skipped '{label}': {key} has no shopfloor-setup handler.", "warning") - continue - clean.append({ - "key": key, - "label": label, - "hint": (it.get("hint") or "").strip(), - "enabled": bool(it.get("enabled", True)), - }) - if not clean: - flash("Refused to save an empty menu.", "danger") - return redirect(url_for("startnet_editor") + "#tab-shopfloor") - try: - os.makedirs(SHOPFLOOR_SETUP_DIR, exist_ok=True) - with open(SHOPFLOOR_MENU_JSON, "w") as fh: - json.dump({"shopfloor": clean}, fh, indent=2) - audit("SHOPFLOOR_MENU_SAVE", f"{len(clean)} items") - flash("Shopfloor boot menu saved - WinPE reads it at next boot.", "success") - except OSError as exc: - flash(f"Could not write menu.json: {exc}", "danger") - return redirect(url_for("startnet_editor") + "#tab-shopfloor") - - return redirect(url_for("startnet_editor") + "#tab-shopfloor") - - # --------------------------------------------------------------------------- # Routes - Audit Log # --------------------------------------------------------------------------- @@ -2064,6 +1991,7 @@ app.jinja_env.globals["blancco_failure_reason"] = blancco_report.failure_reason @app.context_processor def inject_globals(): return { + "site_name": config.BLANCCO_SITE, "all_image_types": config.IMAGE_TYPES, "all_friendly_names": config.FRIENDLY_NAMES, # image pages: tab table, header data, tab URLs (see _image_header.html) diff --git a/webapp/config.py b/webapp/config.py index de9abee..5ab06e8 100644 --- a/webapp/config.py +++ b/webapp/config.py @@ -29,7 +29,7 @@ IMAGING_DIR = os.environ.get("IMAGING_DIR", "/var/log/pxe-imaging") # Blancco evidence: site name stamped on reports and evidence packs, and a # small JSON state file (cloud-upload confirmations, ServiceNow ticks) kept # off the report share so it never shows up as a report. -BLANCCO_SITE = os.environ.get("BLANCCO_SITE", "West Jefferson") +BLANCCO_SITE = os.environ.get("BLANCCO_SITE", "Unnamed site") # Every time the webapp shows (and evidence-pack month boundaries) is in # this zone, DST included. Stored timestamps keep their own UTC offsets. DISPLAY_TZ = os.environ.get("DISPLAY_TZ", "America/New_York") diff --git a/webapp/services/blancco_prefs.py b/webapp/services/blancco_prefs.py new file mode 100644 index 0000000..f0224d7 --- /dev/null +++ b/webapp/services/blancco_prefs.py @@ -0,0 +1,165 @@ +"""Site settings in the Blancco preferences: set in the webapp, not in XML. + +Three values differ per site and are filled into our preferences.xml: + business_location printed on every erasure report (the site) + wifi_ssid the Wi-Fi Blancco joins to license erasures in the GE + wifi_password Blancco cloud (the imaging LAN has no internet) + +They live in UPDATES_DIR/blancco/site-settings.json (0600, root). The repo's +playbook/blancco-preferences.xml carries none of them; the playbook installs +it as WEB_ROOT/blancco/preferences.repo.xml and this module renders the +served WEB_ROOT/blancco/preferences.xml from it. The same values are applied +whenever a new Blancco release is staged (blancco_update.apply_prefs), so an +update keeps them. + +The playbook seeds the settings from site-vars.yml (site_name, +blancco_wifi_ssid, blancco_wifi_password) only while no settings file exists: +after install the webapp page (Updates > Blancco releases) is the place to +change them, and a playbook re-run never overwrites them. + + python3 -m services.blancco_prefs render [--seed] + --seed reads BLANCCO_SEED_LOCATION / _SSID / _PASSWORD from the + environment (not argv: the password stays out of ps). +""" + +import json +import os +import re +import sys +from xml.sax.saxutils import escape + +import config +from services import updates_common as uc + +FIELDS = ("business_location", "wifi_ssid", "wifi_password") +DEFAULTS = {"business_location": "", "wifi_ssid": "INTERNETACCESS", "wifi_password": ""} + +_LOCATION = re.compile(rb"()[^<]*()") +_WIRELESS = re.compile( + rb'(\s*[^<]*\s*)[^<]*' + rb'(\s*)[^<]*()') + + +def settings_path(): + return os.path.join(uc.state_dir("blancco"), "site-settings.json") + + +def repo_prefs_path(): + return os.path.join(config.WEB_ROOT, "blancco", "preferences.repo.xml") + + +def served_prefs_path(): + return os.path.join(config.WEB_ROOT, "blancco", "preferences.xml") + + +def load(): + data = uc.read_json(settings_path(), None) + out = dict(DEFAULTS) + if isinstance(data, dict): + for k in FIELDS: + if isinstance(data.get(k), str): + out[k] = data[k] + return out + + +def exists(): + return os.path.isfile(settings_path()) + + +def _clean(value, field): + value = (value or "").strip() + if len(value) > 128: + raise ValueError(f"{field} is too long (128 characters at most)") + if any(ord(c) < 32 for c in value): + raise ValueError(f"{field} has control characters") + return value + + +def save(business_location, wifi_ssid, wifi_password=None): + """Store the settings. wifi_password None (or '') keeps the stored one.""" + cur = load() + new = { + "business_location": _clean(business_location, "Business location"), + "wifi_ssid": _clean(wifi_ssid, "Wi-Fi network"), + "wifi_password": cur["wifi_password"] if not wifi_password else _clean(wifi_password, "Wi-Fi password"), + } + if not new["wifi_ssid"]: + raise ValueError("Wi-Fi network (SSID) cannot be empty") + path = settings_path() + tmp = path + ".tmp" + fd = os.open(tmp, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600) + with os.fdopen(fd, "w") as f: + json.dump(new, f, indent=2) + os.replace(tmp, path) + return new + + +def apply(xml, settings=None): + """Our preferences (bytes) with the site settings filled in. Values are + XML-escaped; the replacement is a function, so nothing in them is read + as a regex group reference.""" + s = settings or load() + loc = escape(s["business_location"] or "Unnamed site").encode("utf-8") + ssid = escape(s["wifi_ssid"]).encode("utf-8") + pw = escape(s["wifi_password"]).encode("utf-8") + out, n = _LOCATION.subn(lambda m: m.group(1) + loc + m.group(2), xml) + if n != 1: + raise ValueError("preferences have no single element") + out, n = _WIRELESS.subn(lambda m: m.group(1) + ssid + m.group(2) + pw + m.group(3), out) + if n != 1: + raise ValueError("preferences have no single ssid/password block") + return out + + +def render(): + """Write the served preferences.xml from the repo copy + settings, when it + changes. Returns True if the file was written.""" + with open(repo_prefs_path(), "rb") as f: + base = f.read() + data = apply(base) + # Same guard the playbook and the Blancco page apply: well-formed XML. + import xml.etree.ElementTree as ET + ET.fromstring(data) + path = served_prefs_path() + try: + with open(path, "rb") as f: + if f.read() == data: + return False + except OSError: + pass + tmp = path + ".tmp" + with open(tmp, "wb") as f: + f.write(data) + os.chmod(tmp, 0o644) + os.replace(tmp, path) + return True + + +def public(): + """For the page: the settings without the password.""" + s = load() + return {"business_location": s["business_location"], "wifi_ssid": s["wifi_ssid"], + "wifi_password_set": bool(s["wifi_password"]), "configured": exists()} + + +def main(argv): + if not argv or argv[0] != "render": + print(__doc__) + return 2 + if "--seed" in argv[1:] and not exists(): + save(os.environ.get("BLANCCO_SEED_LOCATION", ""), + os.environ.get("BLANCCO_SEED_SSID", "") or DEFAULTS["wifi_ssid"], + os.environ.get("BLANCCO_SEED_PASSWORD", "")) + print("seeded site settings from site-vars") + s = load() + changed = render() + print("CHANGED" if changed else "UNCHANGED") + if not s["business_location"]: + print("WARNING: business_location is empty: reports say 'Unnamed site'") + if not s["wifi_password"]: + print(f"WARNING: no Wi-Fi password for '{s['wifi_ssid']}': Blancco cannot license erasures") + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv[1:])) diff --git a/webapp/services/blancco_update.py b/webapp/services/blancco_update.py index 95cbdce..fca2a9d 100644 --- a/webapp/services/blancco_update.py +++ b/webapp/services/blancco_update.py @@ -955,6 +955,15 @@ def apply_prefs(version): ours = _read(src) if not ours: raise ValueError(f"no preferences at {src}") + # The site's business location and Wi-Fi (Updates > Blancco, site + # settings) go into every release, so an update keeps them. + from services import blancco_prefs + try: + ours = blancco_prefs.apply(ours) + except ValueError as e: + meta.update(status="failed", error=f"our preferences ({src}): {e}", prefs_source=src) + uc.write_json(meta_path, meta) + raise try: cfg = patch_config_img(vendor_cfg, ours) except StageBlocked as e: diff --git a/webapp/static/Sync-BPRT.ps1 b/webapp/static/Sync-BPRT.ps1 index 0c5c3eb..d36c5a9 100644 --- a/webapp/static/Sync-BPRT.ps1 +++ b/webapp/static/Sync-BPRT.ps1 @@ -79,8 +79,10 @@ [CmdletBinding()] param( [string]$Source = 'C:\ProgramData\GEAerospace\MediaCenter\Cache\Deploy\Applications\BPRT', - [string]$WebUrl = 'http://10.134.48.170:9009', - [string]$SshHost = '10.134.48.170', + # Filled in with the address the page was opened from when the script is + # downloaded from the PXE webapp (Updates > BPRT sync); else pass them. + [string]$WebUrl = '', + [string]$SshHost = '', [string]$SshUser = 'pxe', [switch]$DryRun, [string]$ZipOut, @@ -91,6 +93,9 @@ param( ) $ErrorActionPreference = 'Stop' +if (-not $WebUrl -or -not $SshHost) { + throw 'Give -WebUrl http://:9009 and -SshHost (or download this script from the PXE webapp, which fills them in).' +} # The cache folder has also been seen under MediaCreator rather than # MediaCenter; try that one when the default is missing. diff --git a/webapp/templates/_imaging_tiles.html b/webapp/templates/_imaging_tiles.html index 8c209ef..ed0fac4 100644 --- a/webapp/templates/_imaging_tiles.html +++ b/webapp/templates/_imaging_tiles.html @@ -6,9 +6,9 @@ {% import '_ui.html' as ui %} {% set stage_labels = { 1: ('Booting from PXE', 'WinPE loaded - applying Windows image to disk.'), - 2: ('Configuring Windows', 'First boot. Running shopfloor setup baseline scripts.'), - 3: ('Installing apps', 'Type-specific app installs (eDNC, UDC, NTLARS, etc).'), - 4: ('Apps installed', 'Type-specific scripts complete. Preparing for Intune enrollment.'), + 2: ('Configuring Windows', 'First boot. Running shopfloor setup.'), + 3: ('Installing site apps', 'The site app list (pre-install). Empty unless the site added apps.'), + 4: ('Site apps done', 'Pre-install list complete. Preparing for Intune enrollment.'), 5: ('Enrolling in Intune', 'PPKG installing - device joining Azure AD + Intune. ~5-10 min, reboot to follow.'), 6: ('Waiting on first Intune sync','Post-PPKG settle (~120s). Triggering Schedule #3 sync repeatedly.'), 7: ('Registered - assign category', diff --git a/webapp/templates/base.html b/webapp/templates/base.html index 4ce3899..b7c3591 100644 --- a/webapp/templates/base.html +++ b/webapp/templates/base.html @@ -75,7 +75,7 @@

Tools
- {{ navlink('Boot menu', url_for('startnet_editor'), ep in ('startnet_editor', 'shopfloor_menu')) }} + {{ navlink('Boot menu', url_for('startnet_editor'), ep == 'startnet_editor') }} {{ navlink('Enrollment packages', url_for('enrollment'), ep == 'enrollment') }} {{ navlink('Clonezilla backups', url_for('clonezilla_backups'), ep == 'clonezilla_backups') }} {{ navlink('Audit log', url_for('audit_log'), ep == 'audit_log') }} diff --git a/webapp/templates/dashboard.html b/webapp/templates/dashboard.html index 6c283fe..318fd0d 100644 --- a/webapp/templates/dashboard.html +++ b/webapp/templates/dashboard.html @@ -4,7 +4,7 @@ {% block content %} {% set services_up = services | selectattr('active') | list | length %} -{% call ui.head('Overview', 'West Jefferson') %} +{% call ui.head('Overview', site_name) %} {{ nic_pill }}
diff --git a/webapp/templates/imaging.html b/webapp/templates/imaging.html index be22d19..8be8862 100644 --- a/webapp/templates/imaging.html +++ b/webapp/templates/imaging.html @@ -69,11 +69,10 @@ Content-Type: application/json "serial": "4HBLF33", "mac": "e4:54:e8:dc:b1:f0", "hostname_target": "EDNMG3D4", - "pctype": "gea-shopfloor-keyence", - "machinenumber": "9999", - "current_stage": "Run-ShopfloorSetup: 09-Setup-Keyence", - "stage_index": 7, - "stage_total": 9, + "pctype": "gea-shopfloor-standard", + "current_stage": "Run-ShopfloorSetup: installing the site app list", + "stage_index": 3, + "stage_total": 8, "status": "in_progress", "log_lines": ["last few log lines from the stage"] } diff --git a/webapp/templates/startnet_editor.html b/webapp/templates/startnet_editor.html index cb0211e..e0aea68 100644 --- a/webapp/templates/startnet_editor.html +++ b/webapp/templates/startnet_editor.html @@ -179,8 +179,6 @@
  • -
  • @@ -265,31 +263,6 @@
    - -
    -
    -
    -

    Shopfloor sub-menu

    -
    menu.json on the enrollment share. No boot.wim edit.
    - - -
    -
    - The GEA Shopfloor choice drills into this sub-menu. Each PC type must be an existing - shopfloor-setup/gea-shopfloor-* handler. WinPE falls back to the - built-in menu if the share or picker is unavailable. Rows without a label are dropped on save. -
    -
    - - -
    - -
    -
    -
    -
    -
    -
    @@ -733,59 +706,4 @@ })(); {% endif %} - {% endblock %} diff --git a/webapp/templates/updates_blancco.html b/webapp/templates/updates_blancco.html index fb37584..627e4ee 100644 --- a/webapp/templates/updates_blancco.html +++ b/webapp/templates/updates_blancco.html @@ -66,6 +66,11 @@ .sec-h, .upl, .prog { padding-left: 16px; padding-right: 16px; } .cur { padding: 18px 16px; } } + .site-form { margin-top: 12px; } + .site-grid { display: grid; grid-template-columns: max-content minmax(0, 28rem); gap: 8px 14px; align-items: center; } + .site-grid .form-label { margin: 0; } + .site-act { margin-top: 12px; } + @media (max-width: 640px) { .site-grid { grid-template-columns: minmax(0, 1fr); } } {% endblock %} @@ -144,6 +149,33 @@
    Served from {{ current.path }}.
    +{# ---- Site settings ------------------------------------------------------- #} +
    +
    +
    +

    Site settings

    +
    On every erasure report, and the Wi-Fi Blancco joins to license erasures in the GE Blancco cloud. Saved into every release, including ones staged later.
    +
    + {% if not site.configured %}{{ ui.chip('Not set', 'warn') }}{% elif not site.business_location or not site.wifi_password_set %}{{ ui.chip('Incomplete', 'warn') }}{% else %}{{ ui.chip('Set', 'ok') }}{% endif %} +
    +
    + +
    + + + + + + +
    +
    +
    +
    + {# ---- Staged -------------------------------------------------------------- #}

    Staged releases

    diff --git a/webapp/tests/test_blancco_prefs.py b/webapp/tests/test_blancco_prefs.py new file mode 100644 index 0000000..089aee7 --- /dev/null +++ b/webapp/tests/test_blancco_prefs.py @@ -0,0 +1,120 @@ +"""Blancco site settings (business location, licensing Wi-Fi) rendered into +the served preferences.xml. + +Run from the webapp folder: + PYTHONPATH=.: python -m unittest tests.test_blancco_prefs -v +""" +import json +import os +import shutil +import stat +import sys +import tempfile +import unittest +import xml.etree.ElementTree as ET +from unittest import mock + +_T = tempfile.mkdtemp(prefix="pxe-blancco-prefs-test-") +for _k, _sub in {"WEB_ROOT": "www", "UPDATES_DIR": "upd"}.items(): + os.environ.setdefault(_k, os.path.join(_T, _sub)) + os.makedirs(os.environ[_k], exist_ok=True) + +WEBAPP = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +REPO_PREFS = os.path.join(WEBAPP, "..", "playbook", "blancco-preferences.xml") +sys.path.insert(0, WEBAPP) + +from services import blancco_prefs as BP # noqa: E402 + + +def served(): + root = ET.parse(BP.served_prefs_path()).getroot() + return (root.find(".//customer_data/business_location").text, + root.find(".//wireless/ssid").text, + root.find(".//wireless/password").text) + + +class BlanccoPrefs(unittest.TestCase): + def setUp(self): + shutil.rmtree(os.environ["UPDATES_DIR"], ignore_errors=True) + os.makedirs(os.environ["UPDATES_DIR"]) + os.makedirs(os.path.dirname(BP.repo_prefs_path()), exist_ok=True) + shutil.copy(REPO_PREFS, BP.repo_prefs_path()) + for p in (BP.served_prefs_path(),): + if os.path.exists(p): + os.remove(p) + + def test_repo_file_carries_no_site_values(self): + root = ET.parse(REPO_PREFS).getroot() + self.assertFalse(root.find(".//customer_data/business_location").text) + self.assertFalse(root.find(".//wireless/password").text) + self.assertFalse(root.find(".//wireless/ssid").text) + + def test_render_with_special_characters(self): + BP.save("Smith & Sons ", "Example-WiFi", r'Fake-Pa55!@# \1 \g<0> "q" &') + self.assertTrue(BP.render()) + self.assertEqual(served(), ("Smith & Sons ", "Example-WiFi", r'Fake-Pa55!@# \1 \g<0> "q" &')) + + def test_rest_of_file_unchanged(self): + BP.save("Site A", "NET", "pw") + BP.render() + def strip(t): + import re + t = re.sub(r"[^<]*", "", t) + return re.sub(r'()[^<]*(\s*)[^<]*', r"\1\2", t) + with open(REPO_PREFS) as a, open(BP.served_prefs_path()) as b: + self.assertEqual(strip(a.read()), strip(b.read())) + + def test_render_is_idempotent(self): + BP.save("Site A", "NET", "pw") + self.assertTrue(BP.render()) + self.assertFalse(BP.render()) + + def test_blank_password_keeps_the_stored_one(self): + BP.save("Site A", "NET", "first") + BP.save("Site B", "NET2", "") + BP.save("Site C", "NET3", None) + s = BP.load() + self.assertEqual((s["business_location"], s["wifi_ssid"], s["wifi_password"]), ("Site C", "NET3", "first")) + + def test_public_never_returns_the_password(self): + BP.save("Site A", "NET", "secret-pw") + pub = BP.public() + self.assertNotIn("secret-pw", json.dumps(pub)) + self.assertTrue(pub["wifi_password_set"]) + + def test_settings_file_is_private(self): + BP.save("Site A", "NET", "pw") + self.assertEqual(stat.S_IMODE(os.stat(BP.settings_path()).st_mode), 0o600) + + def test_empty_ssid_refused(self): + with self.assertRaisesRegex(ValueError, "SSID"): + BP.save("Site A", " ", "pw") + + def test_control_characters_refused(self): + with self.assertRaisesRegex(ValueError, "control"): + BP.save("Site\nA", "NET", "pw") + + def test_unset_location_renders_unnamed_site(self): + BP.save("", "NET", "") + BP.render() + self.assertEqual(served()[0], "Unnamed site") + + def test_seed_only_when_no_settings_exist(self): + env = {"BLANCCO_SEED_LOCATION": "Seeded Site", "BLANCCO_SEED_SSID": "SEEDNET", + "BLANCCO_SEED_PASSWORD": "seedpw"} + with mock.patch.dict(os.environ, env): + self.assertEqual(BP.main(["render", "--seed"]), 0) + self.assertEqual(served(), ("Seeded Site", "SEEDNET", "seedpw")) + # Changed in the webapp afterwards: a later playbook run keeps it. + BP.save("Webapp Site", "WEBNET", "webpw") + with mock.patch.dict(os.environ, env): + BP.main(["render", "--seed"]) + self.assertEqual(served(), ("Webapp Site", "WEBNET", "webpw")) + + def test_apply_refuses_unknown_layout(self): + with self.assertRaises(ValueError): + BP.apply(b"") + + +if __name__ == "__main__": + unittest.main() diff --git a/webapp/views/blancco_update.py b/webapp/views/blancco_update.py index cd37589..d8eec53 100644 --- a/webapp/views/blancco_update.py +++ b/webapp/views/blancco_update.py @@ -11,6 +11,7 @@ services/blancco_update.py; this module is the route surface. from flask import (Blueprint, abort, flash, jsonify, redirect, render_template, request, send_file, url_for) +from services import blancco_prefs from services import blancco_update as bu from services.audit import audit @@ -37,9 +38,31 @@ def page(): upload_dir=bu.upload_dir(), source_dirs=bu.source_dirs(), server=bu.SERVER, + site=blancco_prefs.public(), ) +@bp.route("/site-settings", methods=["POST"]) +def site_settings(): + """Business location and licensing Wi-Fi: saved, then the served + preferences.xml is rendered again. The password is never shown back.""" + try: + with bu._lock: + blancco_prefs.save(request.form.get("business_location", ""), + request.form.get("wifi_ssid", ""), + request.form.get("wifi_password", "")) + changed = blancco_prefs.render() + except (OSError, ValueError) as e: + flash(f"Blancco site settings not saved: {e}", "danger") + return _back() + s = blancco_prefs.public() + audit("BLANCCO_SITE_SETTINGS", f"location={s['business_location']!r} ssid={s['wifi_ssid']!r} " + f"password={'set' if s['wifi_password_set'] else 'empty'}") + flash("Blancco site settings saved" + (" and preferences.xml updated." if changed else " (no change)."), + "success") + return _back() + + @bp.route("/status.json") def status(): job = bu.job_state() diff --git a/webapp/views/bprt_sync.py b/webapp/views/bprt_sync.py index c2c7a6c..6d73da4 100644 --- a/webapp/views/bprt_sync.py +++ b/webapp/views/bprt_sync.py @@ -9,8 +9,10 @@ activation run as one background job at a time; logic lives in services/bprt_sync.py, this module is the route surface. """ +import re + from flask import (Blueprint, abort, flash, jsonify, redirect, render_template, - request, send_file, url_for) + Response, request, send_file, url_for) from services import bprt_sync as bs from services import mcl_ppkg @@ -131,7 +133,17 @@ def script(): path = bs.sync_script() if not path: abort(404) - return send_file(path, mimetype="text/plain", as_attachment=True, download_name="Sync-BPRT.ps1") + # The server address as the work PC reached it (its GE address, port + # 9009) goes in as the default, so the script needs no edits. + host = request.host.split(":")[0] + if not re.fullmatch(r"[A-Za-z0-9.-]{1,253}", host): + abort(400) + with open(path, encoding="utf-8") as f: + text = f.read() + text = text.replace("[string]$WebUrl = '',", f"[string]$WebUrl = 'http://{host}:9009',", 1) + text = text.replace("[string]$SshHost = '',", f"[string]$SshHost = '{host}',", 1) + return Response(text, mimetype="text/plain", + headers={"Content-Disposition": "attachment; filename=Sync-BPRT.ps1"}) def _start(kind, arg, ok_msg, audit_action):