Session log updates for 2026-01-20 with additional work documentation. This checkpoint also marks completion of GuruRMM security remediation: - Phase 1: 10 critical security fixes deployed - Phase 2: 8 major fixes deployed - Production server updated at 172.16.3.30 - Gitea tracking issue #1 updated Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
12 KiB
Dataforth DOS - Session Log: 2026-01-20
Project: Dataforth DOS Update System Client: Dataforth Duration: ~6 hours Status: All DOS 6.22 compatibility issues fixed and deployed to production
Session Summary
What Was Accomplished
Fixed all critical DOS 6.22 compatibility issues preventing the update system from working on production machines (TS-4R and ~30 other test stations).
8 Major Issues Fixed:
- UPDATE.BAT XCOPY /D parameter error
- STARTNET.BAT path references (C:\NET vs C:\STARTNET)
- NWTOC.BAT XCOPY /D errors (2 instances)
- CHECKUPD.BAT XCOPY /D error
- Root UPDATE.BAT structure (wrong file)
- Unreliable drive tests (DIR >nul pattern)
- Empty directory checks (T:\COMMON*.*)
- XCOPY "Too many parameters" - replaced with COPY
Files Modified: 9 production BAT files Deployments: 39+ successful deployments to AD2 and NAS Final Versions:
- NWTOC.BAT v2.5 (uses COPY instead of XCOPY)
- UPDATE.BAT v2.3 (fixed XCOPY trailing backslash)
- CHECKUPD.BAT v1.3 (fixed directory checks)
- CTONW.BAT v2.1 (fixed drive test)
- DOSTEST.BAT v1.1 (fixed drive tests)
- AUTOEXEC.BAT, DEPLOY.BAT (STARTNET path fixes)
Key Decisions Made
-
Replace XCOPY with COPY for flat files
- Rationale: XCOPY in DOS 6.22 has unpredictable parameter errors
- Solution: Use simple COPY for non-recursive operations
- Result: More reliable, simpler code
-
Use IF NOT EXIST drive:*. for drive tests*
- Rationale: DIR drive:\ >nul is unreliable in DOS 6.22
- Solution: Direct file existence check
- Result: Consistent drive detection
-
Skip empty directory checks
- Rationale: T:\COMMON has no files, only subdirectories
- Solution: Check T:\COMMON\ProdSW*.* directly
- Result: Avoids false "directory not found" errors
-
Remove trailing backslashes from XCOPY destinations
- Rationale: DOS 6.22 XCOPY interprets paths differently with trailing \
- Solution: Use C:\BAT not C:\BAT\
- Result: Fixes "Too many parameters" errors
-
Deploy directly to NAS when AD2 sync not working
- Rationale: Faster testing iteration
- Solution: SCP files directly to D2TESTNAS
- Result: Immediate availability for testing
Problems Encountered and Solutions
Problem 1: "Invalid number of parameters" during UPDATE.BAT
- Error: XCOPY command failed
- Investigation: /D flag requires date in DOS 6.22
- Solution: Removed /D flag
- File: UPDATE.BAT v2.1 → v2.3
Problem 2: Deployment calling wrong STARTNET.BAT
- Error: C:\NET\STARTNET.BAT (old version) being called
- Investigation: All files referenced wrong path
- Solution: Changed all references to C:\STARTNET.BAT
- Files: 7 BAT files updated
Problem 3: "Too many parameters" in NWTOC.BAT
- Error: XCOPY T:\COMMON\ProdSW*.BAT C:\BAT\ /Y failed
- Investigation: Tried multiple variations - all failed
- Solution: Replaced XCOPY with simple COPY command
- File: NWTOC.BAT v2.4 → v2.5
Problem 4: "[ERROR] T:\COMMON directory not found"
- Error: IF NOT EXIST T:\COMMON*.* failed
- Investigation: Directory exists but has no files (only subdirs)
- Solution: Skip check, go directly to T:\COMMON\ProdSW*.*
- File: NWTOC.BAT v2.3
Problem 5: Drive test unreliable
- Error: DIR T:\ >nul pattern didn't work consistently
- Investigation: DOS 6.22 ERRORLEVEL checks after DIR >nul are unreliable
- Solution: Use IF NOT EXIST T:*.* instead
- Files: UPDATE.BAT, NWTOC.BAT, CTONW.BAT, CHECKUPD.BAT, DOSTEST.BAT
Problem 6: Root UPDATE.BAT was wrong file
- Error: Full backup utility deployed instead of redirect script
- Investigation: Deployment mistake - wrong file copied
- Solution: Deployed UPDATE-ROOT.BAT as UPDATE.BAT to root
- Result: T:\UPDATE TS-4R now correctly calls DEPLOY.BAT
Infrastructure & Servers
AD2 (Production Server - 192.168.0.6)
- Host: 192.168.0.6
- User: INTRANET\sysadmin
- Password: Paper123!@#
- Share: C:\Shares\test\
- Role: Production file server, syncs to NAS every 15 minutes
- Deployed Files: All BAT files to COMMON\ProdSW and _COMMON\ProdSW
D2TESTNAS (SMB1 Proxy - 192.168.0.9)
- Host: 192.168.0.9
- SSH User: root (ed25519 key, passwordless)
- Share: /data/test (maps to T:)
- Role: SMB1 bridge for DOS 6.22 machines
- Deployed Files: Direct SCP deployment of all fixed BAT files to /data/test/COMMON/ProdSW/
DOS Machines (TS-XX)
- Test Machine: TS-4R (192.168.0.x)
- OS: MS-DOS 6.22
- Count: ~30 test stations
- Network: T: = \D2TESTNAS\test, X: = \D2TESTNAS\datasheets
- Status: Ready for testing with all fixed files
Commands & Outputs
Key Deployment Commands
Deploy to AD2 (PowerShell):
$Password = ConvertTo-SecureString "Paper123!@#" -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential("INTRANET\sysadmin", $Password)
New-PSDrive -Name TEMP_AD2 -PSProvider FileSystem -Root "\\192.168.0.6\C$" -Credential $Cred
Copy-Item D:\ClaudeTools\*.BAT TEMP_AD2:\Shares\test\COMMON\ProdSW\ -Force
Remove-PSDrive TEMP_AD2
Deploy to NAS (SSH/SCP):
cd D:/ClaudeTools
scp NWTOC.BAT UPDATE.BAT CTONW.BAT CHECKUPD.BAT root@192.168.0.9:/data/test/COMMON/ProdSW/
Verify on NAS:
ssh root@192.168.0.9 "ls -lh /data/test/COMMON/ProdSW/*.BAT"
ssh root@192.168.0.9 "grep 'Version:' /data/test/COMMON/ProdSW/NWTOC.BAT"
Configuration Changes
Files Created (61 total)
Batch Files (17):
- AUTOEXEC.BAT, CHECKUPD.BAT, CTONW.BAT, CTONWTXT.BAT
- DEPLOY.BAT, DOSTEST.BAT, NWTOC.BAT, REBOOT.BAT
- STAGE.BAT, STARTNET.BAT, UPDATE.BAT, UPDATE-ROOT.BAT
- DEPLOY_FROM_AD2.BAT, DEPLOY_FROM_NAS.BAT, DEPLOY_TEST.BAT
- DEPLOY_VERIFY.BAT, TEST-NWTOC.BAT
Deployment Scripts (33):
- deploy-update-fix.ps1, deploy-startnet-fix.ps1
- deploy-xcopy-fix-round2.ps1, deploy-drive-test-fix.ps1
- push-to-nas-direct.ps1, fix-root-update.ps1
- Plus 27 other deployment and fix scripts
Documentation (8):
- DOS_FIX_COMPLETE_2026-01-20.md
- UPDATE_BAT_FIX_2026-01-20.md
- STARTNET_PATH_FIX_2026-01-20.md
- DOS_DEPLOYMENT_GUIDE.md
- DOS_DEPLOYMENT_STATUS.md
- DOS_BATCH_ANALYSIS.md
- DOS_FIX_SUMMARY.md
- README_DOS_FIX.md
Organization Files (3):
- projects/dataforth-dos/PROJECT_INDEX.md
- PROJECT_ORGANIZATION.md
- .claude/FILE_PLACEMENT_GUIDE.md
Files Modified
All 9 production BAT files went through multiple versions:
- NWTOC.BAT: v2.0 → v2.5 (5 versions)
- UPDATE.BAT: v2.0 → v2.3 (3 versions)
- CHECKUPD.BAT: v1.0 → v1.3 (3 versions)
- CTONW.BAT: v2.0 → v2.1 (1 version)
- DOSTEST.BAT: v1.0 → v1.1 (1 version)
- AUTOEXEC.BAT, DEPLOY.BAT: Path fixes
DOS 6.22 Compatibility Lessons Learned
What Doesn't Work
- XCOPY /D - Requires date parameter: /D:mm-dd-yy
- DIR drive:\ >nul with ERRORLEVEL - Unreliable
- IF NOT EXIST path\NUL - \NUL doesn't work for directories
- XCOPY with trailing backslash - Causes "Too many parameters"
- Checking empty directories with *.* - Returns false if no files
What Works Reliably
- COPY - Simple, predictable for flat files
- IF NOT EXIST drive:*.* - Direct file check for drive access
- IF NOT EXIST path*.* - Works for directories with files
- XCOPY without /D - Works for recursive operations
- No trailing backslash - XCOPY C:*.* dest not dest\
Pending/Incomplete Tasks
Immediate Next Steps
-
Test on TS-4R (User testing now)
- Run T:\COMMON\ProdSW\NWTOC.BAT
- Run C:\BAT\UPDATE (after NWTOC copies files)
- Verify no errors
-
Monitor for 24-48 hours
- Watch for any edge cases
- Verify AD2→NAS sync working
- Check other TS-XX machines
-
Full Rollout (After successful pilot)
- Deploy to remaining ~29 machines
- Document rollout procedure
- Create success criteria checklist
Future Enhancements (Optional)
- Add logging to batch files
- Create rollback procedure
- Automated verification script
- Update documentation for end users
Reference Information
File Locations
Production (NAS):
- T:\COMMON\ProdSW\ - All utility BAT files
- T:\UPDATE.BAT - Redirect to DEPLOY.BAT
- T:\TS-XX\ - Machine-specific folders
Development:
- D:\ClaudeTools\projects\dataforth-dos\batch-files\ - Source files
- D:\ClaudeTools\projects\dataforth-dos\deployment-scripts\ - Deploy scripts
- D:\ClaudeTools\projects\dataforth-dos\documentation\ - Tech docs
Backup (AD2):
- C:\Shares\test\COMMON\ProdSW\ - Primary location
- C:\Shares\test_COMMON\ProdSW\ - Backup location
Version Numbers (Latest)
- NWTOC.BAT: v2.5
- UPDATE.BAT: v2.3
- CHECKUPD.BAT: v1.3
- CTONW.BAT: v2.1
- DOSTEST.BAT: v1.1
- STARTNET.BAT: v2.0
- Others: Various (see PROJECT_INDEX.md)
Key Technical Details
DOS 6.22 Limitations:
- No FOR /F loops
- No IF /I
- No %COMPUTERNAME%
- XCOPY /D requires date
- 256-byte environment limit
Network Stack:
- MS Client 3.0 for DOS
- Netware VLM client
- SMB1 protocol (D2TESTNAS)
Update Flow:
- Admin → AD2 (C:\Shares\test)
- AD2 → NAS (every 15 min via Sync-FromNAS.ps1)
- NAS → DOS machines (via NWTOC.BAT)
Project Organization (NEW)
All Dataforth DOS work is now organized in:
projects/dataforth-dos/
├── batch-files/ (17 files)
├── deployment-scripts/ (33 files)
├── documentation/ (8 files)
└── session-logs/ (this file)
See PROJECT_INDEX.md for complete project reference.
Session Metrics
- Session Duration: ~6 hours
- Issues Fixed: 8 major compatibility issues
- Files Modified: 9 production BAT files
- Deployments: 39+ successful
- Versions Created: 14 version increments
- Documentation Created: 8 comprehensive docs
- Scripts Created: 33 deployment/fix scripts
- Organization: Complete project restructure
Status: COMPLETE - Ready for production testing Next Session: Monitor TS-4R results, prepare for full rollout
Session Continuation (18:00)
Additional Fixes Applied
After initial testing on TS-4R and TS-3R, two more DOS 6.22 compatibility issues were discovered and fixed:
Issue 1: "Too many parameters - 2" error
- Cause:
2>NULstderr redirection not supported in DOS 6.22 - Solution: Removed all
2>NULfrom MD commands, use only>NUL - Files affected: CTONW.BAT, NWTOC.BAT, DEPLOY.BAT
Issue 2: "Invalid number of parameters" on XCOPY
- Cause: XCOPY needs
/Iflag to assume destination is directory - Solution: Added
/Iflag to all XCOPY commands - Files affected: CTONW.BAT, NWTOC.BAT
Issue 3: AUTOEXEC.BAT missing startup commands
- Request: Add CD \ATE and menux to generated AUTOEXEC.BAT
- Solution: DEPLOY.BAT now appends CD \ATE and menux after "System Ready"
Files Updated (This Session)
| File | Version | Changes |
|---|---|---|
| CTONW.BAT | v2.5 | Removed 2>NUL, added /I to XCOPY |
| NWTOC.BAT | v2.8 | Removed 2>NUL, added /I to XCOPY |
| DEPLOY.BAT | v2.3 | Removed 2>NUL, added CD \ATE + menux |
Deployments
- Fixed CRLF line endings (files had CR CR LF, corrected to CR LF)
- Deployed to AD2:
C:\dataforth\test\COMMON\ProdSW\ - Deployed to NAS:
/data/test/COMMON/ProdSW/ - Cleared all machine-specific ProdSW folders (64 folders on NAS)
- Created TEST.BAT on NAS for sync verification tomorrow
Testing Results
- TS-4R: [OK] Deployment successful, no errors
- TS-3R: [OK] Deployment successful, no errors
Infrastructure Updates
Added SSH key to NAS:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDrGbr4EwvQ4P3ZtyZW3ZKkuDQOMbqyAQUul2+JE4K4S azcomputerguru@local
Added to /root/.ssh/authorized_keys on D2TESTNAS (192.168.0.9)
Git Commits
d979fd8- fix: DOS 6.22 batch file compatibility - XCOPY /Y and simplified scripts6d3271c- fix: DOS 6.22 compatibility - remove 2>NUL, add XCOPY /I flag
DOS 6.22 Lessons Learned (Updated)
Additional incompatibilities discovered:
2>NUL(stderr redirection) - NOT supported, use>NULonly- XCOPY without
/Iflag - may prompt for F/D destination type
Working commands:
MD dir >NUL- Ignores "directory exists" errorsXCOPY source dest /Y /I >NUL- Unattended copy, assume directory
Pending Verification
- TEST.BAT placed in T:\COMMON\ProdSW on NAS
- Should appear in C:\BAT on DOS machines after next boot
- User will verify sync tomorrow
Session End: 2026-01-20 18:10 Total Duration: ~8 hours (including continuation) Final Status: All issues resolved, tested successfully on TS-4R and TS-3R