Implemented comprehensive DOS 6.22 update system for ~30 test stations with critical fix for test data database import routing. ## Major Changes ### DOS Batch Files (7 files) - NWTOC.BAT: Download updates from network to DOS machines - CTONW.BAT v1.2: Upload with separate ProdSW/LOGS routing (CRITICAL FIX) - UPDATE.BAT: Full system backup to network - STAGE.BAT: System file staging for safe updates - REBOOT.BAT: Apply staged updates on reboot - CHECKUPD.BAT: Check for available updates - DEPLOY.BAT: One-time deployment installer for DOS machines ### CTONW v1.2 Critical Fix Fixed test data routing to match AD2 sync script expectations: - Software distribution: C:\ATE\*.EXE -> T:\TS-4R\ProdSW\ (bidirectional) - Test data logging: C:\ATE\8BDATA\*.DAT -> T:\TS-4R\LOGS\8BLOG\ (upload only) - Subdirectory mapping: 8BDATA->8BLOG, DSCDATA->DSCLOG, HVDATA->HVLOG, etc. - Test data now correctly imported to AD2 database via Sync-FromNAS.ps1 ### Deployment Infrastructure - copy-to-ad2.ps1: Automated deployment to AD2 server - DOS_DEPLOYMENT_GUIDE.md: Complete deployment documentation - DEPLOYMENT_GUIDE.md: Technical workflow documentation - credentials.md: Centralized credentials (AD2, NAS, Gitea) ### Analysis & Documentation (15 files) - CTONW_ANALYSIS.md: Comprehensive compliance analysis - CTONW_V1.2_CHANGELOG.md: Detailed v1.2 changes - NWTOC_ANALYSIS.md: Download workflow analysis - DOS_BATCH_ANALYSIS.md: DOS 6.22 compatibility guide - UPDATE_WORKFLOW.md: Backup system workflow - BEHAVIORAL_RULES_INTEGRATION_SUMMARY.md: C: drive integration ### Session Logs - session-logs/2026-01-19-session.md: Complete session documentation ### Conversation Reorganization - Cleaned up 156 imported conversation files - Organized into sessions-by-date structure - Created metadata index and large files guide ## Technical Details ### AD2 → NAS → DOS Sync Flow 1. Admin copies files to AD2: \192.168.0.6\C$\Shares\test\ 2. Sync-FromNAS.ps1 runs every 15 minutes (AD2 → NAS) 3. DOS machines access via T: drive (\D2TESTNAS\test) 4. NWTOC downloads updates, CTONW uploads test data 5. Sync imports test data to AD2 database ### DOS 6.22 Compatibility - No %COMPUTERNAME%, uses %MACHINE% variable - No IF /I, uses multiple case-specific checks - Proper ERRORLEVEL checking (highest values first) - XCOPY /S for subdirectory support - ASCII markers ([OK], [ERROR], [WARNING]) instead of emojis ### File Locations - AD2: C:\Shares\test\COMMON\ProdSW\ (deployed) - NAS: T:\COMMON\ProdSW\ (synced) - DOS: C:\BAT\ (installed) - Logs: T:\TS-4R\LOGS\8BLOG\ (test data for database import) ## Deployment Status ✅ All 7 batch files deployed to AD2 (both COMMON and _COMMON) ⏳ Pending sync to NAS (within 15 minutes) ⏳ Pending pilot deployment on TS-4R 📋 Ready for rollout to ~30 DOS machines ## Breaking Changes CTONW v1.1 → v1.2: Test data now uploads to LOGS folder instead of ProdSW. Existing machines must download v1.2 via NWTOC for proper database import. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
945 lines
20 KiB
Markdown
945 lines
20 KiB
Markdown
# Dataforth DOS Update System - Deployment Guide
|
|
|
|
**Version:** 1.0
|
|
**Date:** 2026-01-19
|
|
**Target System:** DOS 6.22 with Microsoft Network Client 3.0
|
|
|
|
---
|
|
|
|
## Table of Contents
|
|
|
|
1. [Pre-Deployment Checklist](#pre-deployment-checklist)
|
|
2. [Network Infrastructure Setup](#network-infrastructure-setup)
|
|
3. [Deploy Batch Files](#deploy-batch-files)
|
|
4. [Configure DOS Machines](#configure-dos-machines)
|
|
5. [Test Update System](#test-update-system)
|
|
6. [Deploy to All Machines](#deploy-to-all-machines)
|
|
7. [Post-Deployment Verification](#post-deployment-verification)
|
|
8. [Troubleshooting](#troubleshooting)
|
|
|
|
---
|
|
|
|
## Pre-Deployment Checklist
|
|
|
|
### Required Information
|
|
|
|
- [ ] List of DOS machine names (e.g., TS-4R, TS-7A, TS-12B)
|
|
- [ ] AD2 workstation IP address: 192.168.0.6
|
|
- [ ] D2TESTNAS IP address: 192.168.0.9
|
|
- [ ] SMB1 protocol enabled on NAS: YES / NO
|
|
- [ ] Sync-FromNAS.ps1 script running on AD2: YES / NO (Scheduled task every 15 min)
|
|
- [ ] Network credentials verified: YES / NO
|
|
|
|
### Required Access
|
|
|
|
- [ ] Admin access to AD2 workstation
|
|
- [ ] SSH access to D2TESTNAS (guru account)
|
|
- [ ] Physical or remote access to DOS machines
|
|
- [ ] DattoRMM access (for monitoring)
|
|
|
|
### Required Files
|
|
|
|
All batch files should be in `D:\ClaudeTools\`:
|
|
|
|
- [ ] NWTOC.BAT - Network to Computer update
|
|
- [ ] CTONW.BAT - Computer to Network upload
|
|
- [ ] UPDATE.BAT - Full system backup
|
|
- [ ] STAGE.BAT - System file staging
|
|
- [ ] REBOOT.BAT - System file application
|
|
- [ ] CHECKUPD.BAT - Update checker
|
|
- [ ] STARTNET.BAT - Network startup
|
|
- [ ] AUTOEXEC.BAT - System startup template
|
|
|
|
---
|
|
|
|
## Network Infrastructure Setup
|
|
|
|
### Step 1: Verify NAS Share Structure
|
|
|
|
**On D2TESTNAS (SSH as guru):**
|
|
|
|
```bash
|
|
# Check if test share exists
|
|
ls -la /mnt/test
|
|
|
|
# Create directory structure if needed
|
|
sudo mkdir -p /mnt/test/COMMON/ProdSW
|
|
sudo mkdir -p /mnt/test/COMMON/DOS
|
|
sudo mkdir -p /mnt/test/COMMON/NET
|
|
|
|
# Create machine-specific directories
|
|
sudo mkdir -p /mnt/test/TS-4R/ProdSW
|
|
sudo mkdir -p /mnt/test/TS-4R/BACKUP
|
|
sudo mkdir -p /mnt/test/TS-7A/ProdSW
|
|
sudo mkdir -p /mnt/test/TS-7A/BACKUP
|
|
sudo mkdir -p /mnt/test/TS-12B/ProdSW
|
|
sudo mkdir -p /mnt/test/TS-12B/BACKUP
|
|
|
|
# Set permissions
|
|
sudo chmod -R 775 /mnt/test
|
|
sudo chown -R guru:users /mnt/test
|
|
```
|
|
|
|
### Step 2: Verify AD2 Sync Script
|
|
|
|
**IMPORTANT:** Sync runs ON AD2 (not NAS) due to WINS crashes and SSH lockups on NAS.
|
|
|
|
**Check sync script exists on AD2:**
|
|
|
|
```powershell
|
|
# RDP or SSH to AD2 (192.168.0.6)
|
|
# Check if script exists
|
|
Test-Path "C:\Shares\test\scripts\Sync-FromNAS.ps1"
|
|
|
|
# View last sync status
|
|
Get-Content "C:\Shares\test\_SYNC_STATUS.txt"
|
|
|
|
# Check recent log entries
|
|
Get-Content "C:\Shares\test\scripts\sync-from-nas.log" -Tail 20
|
|
```
|
|
|
|
**Verify Scheduled Task:**
|
|
|
|
```powershell
|
|
# On AD2, check scheduled task
|
|
Get-ScheduledTask | Where-Object {$_.TaskName -like '*sync*'}
|
|
|
|
# View task details
|
|
Get-ScheduledTask -TaskName "Sync-FromNAS" | Get-ScheduledTaskInfo
|
|
```
|
|
|
|
**Expected scheduled task:**
|
|
- **Name:** Sync-FromNAS (or similar)
|
|
- **Runs:** Every 15 minutes
|
|
- **Script:** `C:\Shares\test\scripts\Sync-FromNAS.ps1`
|
|
- **User:** INTRANET\sysadmin or local admin
|
|
|
|
**How the sync works:**
|
|
|
|
1. **PULL (NAS → AD2):** Test results from DOS machines
|
|
- `/data/test/TS-XX/LOGS/*.DAT` → `C:\Shares\test\TS-XX\LOGS\`
|
|
- `/data/test/TS-XX/Reports/*.TXT` → `C:\Shares\test\TS-XX\Reports\`
|
|
- Files are imported to database after sync
|
|
- Files are deleted from NAS after successful sync
|
|
|
|
2. **PUSH (AD2 → NAS):** Software updates for DOS machines
|
|
- `C:\Shares\test\COMMON\ProdSW\*` → `/data/test/COMMON/ProdSW/`
|
|
- `C:\Shares\test\TS-XX\ProdSW\*` → `/data/test/TS-XX/ProdSW/`
|
|
- `C:\Shares\test\UPDATE.BAT` → `/data/test/UPDATE.BAT`
|
|
- `C:\Shares\test\TS-XX\TODO.BAT` → `/data/test/TS-XX/TODO.BAT` (one-shot tasks)
|
|
|
|
**Status file location:**
|
|
- `C:\Shares\test\_SYNC_STATUS.txt` (monitored by DattoRMM)
|
|
- Shows last sync time, files transferred, error count
|
|
|
|
**If scheduled task doesn't exist:**
|
|
|
|
Contact Dataforth IT administrator - scheduled task should have been created when sync was moved from NAS to AD2 (January 2026) to resolve WINS crashes.
|
|
```
|
|
|
|
### Step 3: Verify SMB1 Protocol
|
|
|
|
**Check SMB1 is enabled on NAS:**
|
|
|
|
```bash
|
|
# Check Samba configuration
|
|
grep "min protocol" /etc/samba/smb.conf
|
|
|
|
# Should show:
|
|
# min protocol = NT1
|
|
# Or similar (NT1 = SMB1)
|
|
|
|
# If not present, add to [global] section:
|
|
sudo nano /etc/samba/smb.conf
|
|
```
|
|
|
|
Add to `[global]` section:
|
|
```
|
|
[global]
|
|
min protocol = NT1
|
|
max protocol = SMB3
|
|
client min protocol = NT1
|
|
```
|
|
|
|
```bash
|
|
# Restart Samba
|
|
sudo systemctl restart smbd
|
|
|
|
# Verify from Windows:
|
|
# Open \\172.16.3.30 in File Explorer
|
|
# Should be able to access without errors
|
|
```
|
|
|
|
---
|
|
|
|
## Deploy Batch Files
|
|
|
|
### Step 1: Copy Batch Files to AD2
|
|
|
|
**From Windows workstation with D:\ClaudeTools access:**
|
|
|
|
Copy batch files to AD2 COMMON directory:
|
|
|
|
```powershell
|
|
# Set source and destination
|
|
$source = "D:\ClaudeTools"
|
|
$dest = "\\AD2\test\COMMON\ProdSW"
|
|
|
|
# Create destination directory if needed
|
|
New-Item -ItemType Directory -Path $dest -Force
|
|
|
|
# Copy batch files
|
|
Copy-Item "$source\NWTOC.BAT" "$dest\" -Force
|
|
Copy-Item "$source\CTONW.BAT" "$dest\" -Force
|
|
Copy-Item "$source\UPDATE.BAT" "$dest\" -Force
|
|
Copy-Item "$source\STAGE.BAT" "$dest\" -Force
|
|
Copy-Item "$source\CHECKUPD.BAT" "$dest\" -Force
|
|
Copy-Item "$source\STARTNET.BAT" "$dest\" -Force
|
|
|
|
# Don't copy REBOOT.BAT (it's auto-generated by STAGE.BAT)
|
|
|
|
# Verify
|
|
Get-ChildItem $dest -Filter *.BAT
|
|
```
|
|
|
|
### Step 2: Wait for NAS Sync
|
|
|
|
Wait up to 15 minutes for sync, or force sync:
|
|
|
|
```bash
|
|
# On NAS (SSH)
|
|
sudo /root/sync-to-ad2.sh
|
|
|
|
# Check status
|
|
cat /mnt/test/_SYNC_STATUS.txt
|
|
```
|
|
|
|
### Step 3: Verify Files on NAS
|
|
|
|
**From Windows, access NAS directly:**
|
|
|
|
```
|
|
\\172.16.3.30\test\COMMON\ProdSW\
|
|
|
|
Should contain:
|
|
NWTOC.BAT
|
|
CTONW.BAT
|
|
UPDATE.BAT
|
|
STAGE.BAT
|
|
CHECKUPD.BAT
|
|
STARTNET.BAT
|
|
```
|
|
|
|
---
|
|
|
|
## Configure DOS Machines
|
|
|
|
### Step 1: Access DOS Machine
|
|
|
|
**Physical access or remote console (TS-4R example):**
|
|
|
|
```
|
|
Power on machine
|
|
Boot to DOS
|
|
Wait for C:\> prompt
|
|
```
|
|
|
|
### Step 2: Verify Network Client
|
|
|
|
Check if Microsoft Network Client 3.0 is installed:
|
|
|
|
```bat
|
|
C:\> DIR C:\NET
|
|
```
|
|
|
|
Should show:
|
|
- STARTNET.BAT
|
|
- NET.EXE
|
|
- PROTOCOL.INI
|
|
- *.DOS files (network drivers)
|
|
|
|
If not installed, install Microsoft Network Client 3.0 first (separate procedure).
|
|
|
|
### Step 3: Update AUTOEXEC.BAT
|
|
|
|
**Edit AUTOEXEC.BAT to add MACHINE variable:**
|
|
|
|
```bat
|
|
C:\> EDIT C:\AUTOEXEC.BAT
|
|
```
|
|
|
|
**Add these lines near the top (after @ECHO OFF):**
|
|
|
|
```bat
|
|
@ECHO OFF
|
|
REM AUTOEXEC.BAT - DOS 6.22 startup script for Dataforth test machines
|
|
|
|
REM *** ADD THIS LINE - Change TS-4R to actual machine name ***
|
|
SET MACHINE=TS-4R
|
|
|
|
REM Set DOS path
|
|
SET PATH=C:\DOS;C:\NET;C:\BAT;C:\
|
|
|
|
REM Set command prompt
|
|
PROMPT $P$G
|
|
|
|
REM Set temporary directory
|
|
SET TEMP=C:\TEMP
|
|
SET TMP=C:\TEMP
|
|
|
|
REM Create required directories
|
|
IF NOT EXIST C:\TEMP\NUL MD C:\TEMP
|
|
IF NOT EXIST C:\BAT\NUL MD C:\BAT
|
|
IF NOT EXIST C:\ATE\NUL MD C:\ATE
|
|
|
|
REM Start network client and map drives
|
|
ECHO Starting network client...
|
|
IF EXIST C:\NET\STARTNET.BAT CALL C:\NET\STARTNET.BAT
|
|
|
|
REM Check if network started
|
|
IF NOT EXIST T:\NUL GOTO NET_FAILED
|
|
ECHO [OK] Network drives mapped
|
|
ECHO T: = \\D2TESTNAS\test
|
|
ECHO X: = \\D2TESTNAS\datasheets
|
|
ECHO.
|
|
ECHO System ready.
|
|
ECHO.
|
|
GOTO DONE
|
|
|
|
:NET_FAILED
|
|
ECHO [WARNING] Network drive mapping failed
|
|
ECHO To start network manually: C:\NET\STARTNET.BAT
|
|
ECHO.
|
|
PAUSE Press any key to continue...
|
|
|
|
:DONE
|
|
```
|
|
|
|
**Save and exit EDIT (Alt+F, X, Yes)**
|
|
|
|
### Step 4: Create/Update STARTNET.BAT
|
|
|
|
**Edit C:\NET\STARTNET.BAT:**
|
|
|
|
```bat
|
|
C:\> EDIT C:\NET\STARTNET.BAT
|
|
```
|
|
|
|
**Contents:**
|
|
|
|
```bat
|
|
@ECHO OFF
|
|
REM STARTNET.BAT - Start Microsoft Network Client and map drives
|
|
|
|
REM Start network client
|
|
NET START
|
|
IF ERRORLEVEL 1 GOTO NET_START_FAILED
|
|
|
|
ECHO [OK] Network client started
|
|
|
|
REM Map T: drive to test share
|
|
NET USE T: \\D2TESTNAS\test /YES
|
|
IF ERRORLEVEL 1 GOTO T_DRIVE_FAILED
|
|
ECHO [OK] T: mapped to \\D2TESTNAS\test
|
|
|
|
REM Map X: drive to datasheets share
|
|
NET USE X: \\D2TESTNAS\datasheets /YES
|
|
IF ERRORLEVEL 1 GOTO X_DRIVE_FAILED
|
|
ECHO [OK] X: mapped to \\D2TESTNAS\datasheets
|
|
|
|
GOTO END
|
|
|
|
:NET_START_FAILED
|
|
ECHO [ERROR] Network client failed to start
|
|
ECHO Check network cable and CONFIG.SYS drivers
|
|
GOTO END
|
|
|
|
:T_DRIVE_FAILED
|
|
ECHO [ERROR] Failed to map T: drive
|
|
ECHO Check if \\D2TESTNAS is online
|
|
GOTO END
|
|
|
|
:X_DRIVE_FAILED
|
|
ECHO [ERROR] Failed to map X: drive
|
|
ECHO Check if \\D2TESTNAS\datasheets exists
|
|
GOTO END
|
|
|
|
:END
|
|
```
|
|
|
|
**Save and exit**
|
|
|
|
### Step 5: Reboot DOS Machine
|
|
|
|
```bat
|
|
C:\> Press Ctrl+Alt+Del
|
|
|
|
[Machine reboots]
|
|
[AUTOEXEC.BAT runs]
|
|
[STARTNET.BAT maps network drives]
|
|
[Should see "Network drives mapped" message]
|
|
```
|
|
|
|
### Step 6: Verify Network Access
|
|
|
|
```bat
|
|
C:\> DIR T:\
|
|
|
|
Should show:
|
|
COMMON
|
|
TS-4R
|
|
_SYNC_STATUS.txt
|
|
|
|
C:\> DIR T:\COMMON\ProdSW
|
|
|
|
Should show batch files:
|
|
NWTOC.BAT
|
|
CTONW.BAT
|
|
UPDATE.BAT
|
|
STAGE.BAT
|
|
CHECKUPD.BAT
|
|
```
|
|
|
|
---
|
|
|
|
## Test Update System
|
|
|
|
### Test 1: Initial Update Pull (NWTOC)
|
|
|
|
**On DOS machine (TS-4R):**
|
|
|
|
```bat
|
|
C:\> NWTOC
|
|
|
|
Expected output:
|
|
==============================================================
|
|
Update: TS-4R from Network
|
|
==============================================================
|
|
Source: T:\COMMON and T:\TS-4R
|
|
Target: C:\BAT, C:\ATE, C:\NET
|
|
==============================================================
|
|
|
|
[1/4] Updating batch files from T:\COMMON\ProdSW...
|
|
Creating backups (.BAK files)...
|
|
Copying updated files...
|
|
[OK] Batch files updated from COMMON
|
|
|
|
[2/4] Updating machine-specific files from T:\TS-4R\ProdSW...
|
|
[SKIP] No machine-specific directory (T:\TS-4R\ProdSW)
|
|
|
|
[3/4] Checking for system file updates...
|
|
[OK] No system file updates
|
|
|
|
[4/4] Checking for network client updates...
|
|
[OK] No network client updates
|
|
|
|
==============================================================
|
|
Update Complete
|
|
==============================================================
|
|
|
|
Files updated from:
|
|
T:\COMMON\ProdSW → C:\BAT
|
|
T:\TS-4R\ProdSW → C:\BAT and C:\ATE
|
|
```
|
|
|
|
**Verify files were copied:**
|
|
|
|
```bat
|
|
C:\> DIR C:\BAT\*.BAT
|
|
|
|
Should show:
|
|
NWTOC.BAT
|
|
CTONW.BAT
|
|
UPDATE.BAT
|
|
STAGE.BAT
|
|
CHECKUPD.BAT
|
|
```
|
|
|
|
### Test 2: Update Check (CHECKUPD)
|
|
|
|
```bat
|
|
C:\> CHECKUPD
|
|
|
|
Expected output:
|
|
==============================================================
|
|
Update Check: TS-4R
|
|
==============================================================
|
|
|
|
[1/3] Checking T:\COMMON\ProdSW for batch file updates...
|
|
[OK] No updates in COMMON
|
|
|
|
[2/3] Checking T:\TS-4R\ProdSW for machine-specific updates...
|
|
[SKIP] T:\TS-4R\ProdSW not found
|
|
|
|
[3/3] Checking T:\COMMON\DOS for system file updates...
|
|
[OK] No system file updates
|
|
|
|
==============================================================
|
|
Update Summary
|
|
==============================================================
|
|
|
|
Available updates:
|
|
Common files: 0
|
|
Machine-specific files: 0
|
|
System files: 0
|
|
-----------------------------------
|
|
Total: 0
|
|
|
|
Status: All files are up to date
|
|
```
|
|
|
|
### Test 3: Full Backup (UPDATE)
|
|
|
|
```bat
|
|
C:\> UPDATE
|
|
|
|
Expected output:
|
|
==============================================================
|
|
Backup: Machine TS-4R
|
|
==============================================================
|
|
Source: C:\
|
|
Target: T:\TS-4R\BACKUP
|
|
|
|
Checking network drive T:...
|
|
[OK] T: drive accessible
|
|
[OK] Backup directory ready
|
|
|
|
Starting backup...
|
|
[OK] Backup completed successfully
|
|
|
|
Files backed up to: T:\TS-4R\BACKUP
|
|
```
|
|
|
|
**Verify backup:**
|
|
|
|
```bat
|
|
C:\> DIR T:\TS-4R\BACKUP
|
|
|
|
Should mirror C:\ structure:
|
|
DOS
|
|
NET
|
|
BAT
|
|
ATE
|
|
TEMP
|
|
AUTOEXEC.BAT
|
|
CONFIG.SYS
|
|
```
|
|
|
|
### Test 4: Upload to Network (CTONW)
|
|
|
|
**Create test file:**
|
|
|
|
```bat
|
|
C:\> EDIT C:\BAT\TEST.BAT
|
|
```
|
|
|
|
**Contents:**
|
|
```bat
|
|
@ECHO OFF
|
|
ECHO This is a test file
|
|
PAUSE
|
|
```
|
|
|
|
**Save and upload:**
|
|
|
|
```bat
|
|
C:\> CTONW MACHINE
|
|
|
|
Expected output:
|
|
==============================================================
|
|
Upload: TS-4R to Network
|
|
==============================================================
|
|
Source: C:\BAT, C:\ATE
|
|
Target: T:\TS-4R\ProdSW
|
|
Target type: MACHINE
|
|
==============================================================
|
|
|
|
[OK] Target directory ready: T:\TS-4R\ProdSW
|
|
|
|
[1/2] Uploading batch files from C:\BAT...
|
|
Creating backups on network (.BAK files)...
|
|
Copying files to T:\TS-4R\ProdSW...
|
|
[OK] Batch files uploaded
|
|
|
|
[2/2] Uploading programs and data from C:\ATE...
|
|
[OK] Programs uploaded
|
|
|
|
==============================================================
|
|
Upload Complete
|
|
==============================================================
|
|
```
|
|
|
|
**Verify upload:**
|
|
|
|
```bat
|
|
C:\> DIR T:\TS-4R\ProdSW
|
|
|
|
Should show:
|
|
TEST.BAT
|
|
```
|
|
|
|
### Test 5: System File Update (STAGE/REBOOT)
|
|
|
|
**Create test AUTOEXEC.NEW:**
|
|
|
|
```bat
|
|
C:\> COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.NEW
|
|
C:\> EDIT C:\AUTOEXEC.NEW
|
|
```
|
|
|
|
**Add a comment to identify this as test version:**
|
|
|
|
```bat
|
|
@ECHO OFF
|
|
REM AUTOEXEC.BAT - DOS 6.22 startup script
|
|
REM *** TEST VERSION - Updated 2026-01-19 ***
|
|
```
|
|
|
|
**Save and copy to network:**
|
|
|
|
```bat
|
|
C:\> COPY C:\AUTOEXEC.NEW T:\COMMON\DOS\AUTOEXEC.NEW
|
|
```
|
|
|
|
**Run update:**
|
|
|
|
```bat
|
|
C:\> NWTOC
|
|
|
|
[Will detect AUTOEXEC.NEW]
|
|
[Will call STAGE.BAT automatically]
|
|
|
|
Expected output:
|
|
...
|
|
[3/4] Checking for system file updates...
|
|
[FOUND] System file updates available
|
|
Staging AUTOEXEC.BAT and/or CONFIG.SYS updates...
|
|
|
|
==============================================================
|
|
Staging System File Updates
|
|
==============================================================
|
|
[STAGED] C:\AUTOEXEC.NEW → Will replace AUTOEXEC.BAT
|
|
==============================================================
|
|
|
|
[1/3] Backing up current system files...
|
|
[OK] C:\AUTOEXEC.BAT → C:\AUTOEXEC.SAV
|
|
|
|
[2/3] Creating reboot update script...
|
|
[OK] C:\BAT\REBOOT.BAT created
|
|
|
|
[3/3] Modifying AUTOEXEC.BAT for one-time reboot update...
|
|
[OK] AUTOEXEC.BAT modified to run update on next boot
|
|
|
|
==============================================================
|
|
REBOOT REQUIRED
|
|
==============================================================
|
|
|
|
To apply updates now:
|
|
1. Press Ctrl+Alt+Del to reboot
|
|
|
|
Press any key to return to DOS...
|
|
```
|
|
|
|
**Reboot machine:**
|
|
|
|
```bat
|
|
C:\> Press Ctrl+Alt+Del
|
|
|
|
[Machine reboots]
|
|
[AUTOEXEC.BAT calls REBOOT.BAT]
|
|
|
|
Expected output during boot:
|
|
==============================================================
|
|
Applying System Updates
|
|
==============================================================
|
|
|
|
[1/2] Updating AUTOEXEC.BAT...
|
|
[OK] AUTOEXEC.BAT updated
|
|
|
|
==============================================================
|
|
System Updates Applied
|
|
==============================================================
|
|
|
|
Backup files saved:
|
|
C:\AUTOEXEC.SAV - Previous AUTOEXEC.BAT
|
|
C:\CONFIG.SAV - Previous CONFIG.SYS
|
|
|
|
To rollback changes:
|
|
COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
|
|
|
Press any key to continue boot...
|
|
```
|
|
|
|
**Verify update:**
|
|
|
|
```bat
|
|
C:\> TYPE C:\AUTOEXEC.BAT | FIND "TEST VERSION"
|
|
|
|
Should show:
|
|
REM *** TEST VERSION - Updated 2026-01-19 ***
|
|
```
|
|
|
|
**Rollback test:**
|
|
|
|
```bat
|
|
C:\> COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
|
C:\> Press Ctrl+Alt+Del to reboot
|
|
```
|
|
|
|
---
|
|
|
|
## Deploy to All Machines
|
|
|
|
### Deployment Order
|
|
|
|
1. **Test machine:** TS-4R (already done above)
|
|
2. **Pilot machines:** TS-7A, TS-12B (next 2-3 machines)
|
|
3. **Full rollout:** All remaining machines
|
|
|
|
### For Each Machine
|
|
|
|
**Repeat these steps for each DOS machine:**
|
|
|
|
1. **Update AUTOEXEC.BAT:**
|
|
```bat
|
|
C:\> EDIT C:\AUTOEXEC.BAT
|
|
[Add: SET MACHINE=TS-7A] # Change to actual machine name
|
|
[Save and exit]
|
|
```
|
|
|
|
2. **Reboot to activate network:**
|
|
```bat
|
|
C:\> Press Ctrl+Alt+Del
|
|
```
|
|
|
|
3. **Verify network:**
|
|
```bat
|
|
C:\> DIR T:\
|
|
[Should show COMMON, machine directories]
|
|
```
|
|
|
|
4. **Initial update:**
|
|
```bat
|
|
C:\> NWTOC
|
|
[Pulls all batch files from network]
|
|
```
|
|
|
|
5. **Create backup:**
|
|
```bat
|
|
C:\> UPDATE
|
|
[Backs up to T:\[MACHINE]\BACKUP]
|
|
```
|
|
|
|
6. **Verify:**
|
|
```bat
|
|
C:\> DIR C:\BAT\*.BAT
|
|
[Should show all batch files]
|
|
|
|
C:\> CHECKUPD
|
|
[Should show "All files are up to date"]
|
|
```
|
|
|
|
### Create Machine-Specific Directories
|
|
|
|
**On AD2 or via SSH to NAS:**
|
|
|
|
```bash
|
|
# For each machine, create directories
|
|
sudo mkdir -p /mnt/test/TS-7A/ProdSW
|
|
sudo mkdir -p /mnt/test/TS-7A/BACKUP
|
|
|
|
sudo mkdir -p /mnt/test/TS-12B/ProdSW
|
|
sudo mkdir -p /mnt/test/TS-12B/BACKUP
|
|
|
|
# Set permissions
|
|
sudo chmod -R 775 /mnt/test
|
|
sudo chown -R guru:users /mnt/test
|
|
```
|
|
|
|
---
|
|
|
|
## Post-Deployment Verification
|
|
|
|
### Verification Checklist
|
|
|
|
For each DOS machine:
|
|
|
|
- [ ] MACHINE variable set correctly in AUTOEXEC.BAT
|
|
- [ ] Network drives map on boot (T: and X:)
|
|
- [ ] NWTOC downloads files successfully
|
|
- [ ] UPDATE backs up to network
|
|
- [ ] CHECKUPD reports status correctly
|
|
- [ ] CTONW uploads to network
|
|
- [ ] System file updates work (if tested)
|
|
|
|
### DattoRMM Monitoring
|
|
|
|
**Set up monitoring for:**
|
|
|
|
1. **Sync status:**
|
|
- Monitor: `\\AD2\test\_SYNC_STATUS.txt`
|
|
- Alert if: File age > 30 minutes
|
|
- Alert if: Contains "ERROR"
|
|
|
|
2. **Backup status:**
|
|
- Monitor: `\\AD2\test\TS-*\BACKUP` directories
|
|
- Alert if: No files modified in 7 days
|
|
|
|
3. **NAS availability:**
|
|
- Monitor: PING 172.16.3.30
|
|
- Alert if: Down for > 5 minutes
|
|
|
|
### Test Update Distribution
|
|
|
|
**Deploy test batch file to all machines:**
|
|
|
|
1. **Create TEST-ALL.BAT:**
|
|
```bat
|
|
@ECHO OFF
|
|
ECHO Test file deployed to all machines
|
|
ECHO Machine: %MACHINE%
|
|
ECHO Date: 2026-01-19
|
|
PAUSE
|
|
```
|
|
|
|
2. **Copy to COMMON:**
|
|
```powershell
|
|
Copy-Item "C:\Temp\TEST-ALL.BAT" "\\AD2\test\COMMON\ProdSW\" -Force
|
|
```
|
|
|
|
3. **Wait for sync (15 min) or force:**
|
|
```bash
|
|
sudo /root/sync-to-ad2.sh
|
|
```
|
|
|
|
4. **On each DOS machine:**
|
|
```bat
|
|
C:\> CHECKUPD
|
|
[Should show 1 update available]
|
|
|
|
C:\> NWTOC
|
|
[Should download TEST-ALL.BAT]
|
|
|
|
C:\> C:\BAT\TEST-ALL.BAT
|
|
[Should run correctly]
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Problem: Network drives don't map on boot
|
|
|
|
**Symptoms:**
|
|
- T: and X: drives not available after boot
|
|
- STARTNET.BAT shows errors
|
|
|
|
**Solutions:**
|
|
|
|
1. **Check network cable:**
|
|
```bat
|
|
C:\> NET VIEW
|
|
[Should show \\D2TESTNAS]
|
|
```
|
|
|
|
2. **Manual map:**
|
|
```bat
|
|
C:\> NET USE T: \\D2TESTNAS\test /YES
|
|
C:\> NET USE X: \\D2TESTNAS\datasheets /YES
|
|
```
|
|
|
|
3. **Check PROTOCOL.INI:**
|
|
```bat
|
|
C:\> TYPE C:\NET\PROTOCOL.INI
|
|
[Verify computername, workgroup settings]
|
|
```
|
|
|
|
### Problem: NWTOC says "MACHINE variable not set"
|
|
|
|
**Solution:**
|
|
|
|
```bat
|
|
C:\> EDIT C:\AUTOEXEC.BAT
|
|
[Add: SET MACHINE=TS-4R]
|
|
[Save]
|
|
|
|
C:\> SET MACHINE=TS-4R
|
|
C:\> NWTOC
|
|
```
|
|
|
|
### Problem: Sync not working between AD2 and NAS
|
|
|
|
**Check sync status:**
|
|
|
|
```bash
|
|
# On NAS
|
|
cat /mnt/test/_SYNC_STATUS.txt
|
|
|
|
# Check sync log
|
|
tail -f /var/log/sync-to-ad2.log
|
|
|
|
# Force sync
|
|
sudo /root/sync-to-ad2.sh
|
|
```
|
|
|
|
**Common issues:**
|
|
|
|
1. **AD2 share not accessible:**
|
|
```bash
|
|
# Test mount
|
|
sudo mount -t cifs //192.168.1.XXX/test /mnt/ad2-test -o credentials=/root/.smbcredentials,vers=1.0
|
|
```
|
|
|
|
2. **Credentials incorrect:**
|
|
```bash
|
|
# Check credentials file
|
|
sudo cat /root/.smbcredentials
|
|
# Should contain:
|
|
# username=admin
|
|
# password=xxx
|
|
```
|
|
|
|
3. **Firewall blocking:**
|
|
```bash
|
|
# Test connectivity
|
|
ping 192.168.1.XXX # AD2 IP
|
|
telnet 192.168.1.XXX 445 # SMB port
|
|
```
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
After successful deployment:
|
|
|
|
1. All DOS machines have MACHINE variable set
|
|
2. All machines can access T: and X: drives
|
|
3. NWTOC pulls updates from network
|
|
4. UPDATE backs up to network
|
|
5. System file updates work safely
|
|
6. Sync between AD2 and NAS is automatic
|
|
7. DattoRMM monitors sync status
|
|
|
|
**Commands available on all machines:**
|
|
|
|
```
|
|
NWTOC - Download updates from network
|
|
CTONW - Upload local changes to network
|
|
UPDATE - Backup entire C:\ to network
|
|
CHECKUPD - Check for available updates
|
|
```
|
|
|
|
**Files automatically backed up:**
|
|
|
|
- Batch files: C:\BAT\*.BAK
|
|
- System files: C:\AUTOEXEC.SAV, C:\CONFIG.SAV
|
|
- Full backup: T:\[MACHINE]\BACKUP\
|
|
|
|
---
|
|
|
|
**Deployment Date:** __________
|
|
**Deployed By:** __________
|
|
**Machines Deployed:** ____ / ____
|
|
|
|
**End of Deployment Guide**
|