Files
claudetools/clients/dataforth/dos-test-machines/README.md
Mike Swanson 07816eae46 docs: Add comprehensive project documentation from claude-projects scan
Added:
- PROJECTS_INDEX.md - Master catalog of 7 active projects
- GURURMM_API_ACCESS.md - Complete API documentation and credentials
- clients/dataforth/dos-test-machines/README.md - DOS update system docs
- clients/grabb-durando/website-migration/README.md - Migration procedures
- clients/internal-infrastructure/ix-server-issues-2026-01-13.md - Server issues
- projects/msp-tools/guru-connect/README.md - Remote desktop architecture
- projects/msp-tools/toolkit/README.md - MSP PowerShell tools
- projects/internal/acg-website-2025/README.md - Website rebuild docs
- test_gururmm_api.py - GuruRMM API testing script

Modified:
- credentials.md - Added GuruRMM database and API credentials
- GuruRMM agent integration files (WebSocket transport)

Total: 38,000+ words of comprehensive project documentation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-22 09:58:32 -07:00

448 lines
12 KiB
Markdown

# Dataforth DOS Test Machines Project
**Client:** Dataforth Corporation
**Status:** 90% Complete, Working
**Project Start:** 2025-12-14
**Last Updated:** 2026-01-22
## Project Overview
Automated update and management system for approximately 30 DOS 6.22 test stations running QuickBASIC 4.5 data acquisition software at Dataforth's engineering facility.
**Primary Challenge:** Legacy DOS machines require SMB1 protocol, Windows Kerberos authentication incompatible with DOS networking.
**Solution:** D2TESTNAS (TrueNAS) acts as SMB1-to-SMB2 proxy with bidirectional sync to AD2 production server.
---
## Architecture
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ DOS Machines │◄──SMB1─►│ D2TESTNAS │◄──SMB2─►│ AD2 │
│ (TS-XX) │ │ (192.168.0.9) │ │ (192.168.0.6) │
│ DOS 6.22 │ │ TrueNAS/proxy │ │ Production Svr │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ Sync every 15 min
[Bidirectional Sync]
/root/sync-to-ad2.sh
```
---
## Network Configuration
| Device | IP | Role | OS | Credentials |
|--------|-----|------|-----|-------------|
| D2TESTNAS | 192.168.0.9 | NAS/SMB1 proxy | TrueNAS | admin / Paper123!@#-nas |
| AD2 | 192.168.0.6 | Production server | Windows Server 2008 R2 | INTRANET\sysadmin / Paper123!@# |
| UDM | 192.168.0.254 | Gateway/Router | UniFi Dream Machine | admin / [see credentials.md] |
| DOS Stations | 192.168.0.x | Test stations (TS-XX) | DOS 6.22 | N/A |
**Network:** 192.168.0.0/24 (Dataforth engineering network)
---
## Key Components
### 1. SMB Shares
#### D2TESTNAS Shares (SMB1)
- **test:** `/data/test/` - Main working share for DOS machines
- **datasheets:** `/data/datasheets/` - Engineering documentation and configs
#### AD2 Shares (SMB2)
- **\\AD2\test** - C:\Shares\test\ (production working directory)
- **\\AD2\datasheets** - PENDING (waiting on Engineering input)
### 2. UPDATE.BAT - Remote Management Utility
**Location:**
- NAS: `/data/test/UPDATE.BAT`
- AD2: `C:\Shares\test\UPDATE.BAT`
- DOS: `T:\UPDATE.BAT` (via mapped drive)
**Usage:**
```batch
REM Update all components for station TS-27
T:\UPDATE TS-27 ALL
REM Update specific component
T:\UPDATE TS-27 GPIB
T:\UPDATE TS-27 AUTOEXEC
```
**Functions:**
- Deploys configuration files from central location
- Updates AUTOEXEC.BAT, CONFIG.SYS
- Syncs GPIB drivers and QuickBASIC modules
- Creates station-specific directories
### 3. TODO.BAT - Automated Task Execution
**Location:** `T:\TS-XX\TODO.BAT` (created by admin on AD2)
**Behavior:**
- Placed in station-specific folder: `\\AD2\test\TS-XX\TODO.BAT`
- Sync copies to NAS (every 15 min)
- DOS machine runs on boot via AUTOEXEC.BAT
- Automatically deletes after execution
- Results logged to `TS-XX\TODO.LOG`
**Example Use Cases:**
- Remote diagnostic commands
- Configuration updates
- File collection
- System information gathering
### 4. Bidirectional Sync System
**Script:** `/root/sync-to-ad2.sh` on D2TESTNAS
**Credentials:** `/root/.ad2creds`
```
username=sysadmin
password=Paper123!@#
domain=INTRANET
```
**Log:** `/var/log/ad2-sync.log`
**Schedule:** Every 15 minutes via cron
```cron
*/15 * * * * /root/sync-to-ad2.sh >> /var/log/ad2-sync.log 2>&1
```
**Sync Strategy:**
- **NAS → AD2:** rsync with --update (newer files win)
- **AD2 → NAS:** rsync with --update (newer files win)
- **Deletions:** Not synced (safety measure)
- **Conflicts:** Newer timestamp wins
**Monitoring:**
```bash
# View recent sync activity
ssh root@192.168.0.9 'tail -50 /var/log/ad2-sync.log'
# Check sync status file
smbclient //192.168.0.6/test -U sysadmin%'Paper123!@#' -c 'get _SYNC_STATUS.txt -'
```
---
## DOS Machine Configuration
### Network Setup
Each DOS station uses Microsoft Network Client 3.0:
**AUTOEXEC.BAT:**
```batch
@ECHO OFF
C:\NET\NET START
NET USE T: \\D2TESTNAS\TEST
IF EXIST T:\TS-XX\TODO.BAT CALL T:\TS-XX\TODO.BAT
```
**PROTOCOL.INI:**
- Workgroup: WORKGROUP
- ComputerName: TS-XX
- Protocol: NetBEUI over SMB1 CORE
### WINS Configuration
**Critical:** WINS server (192.168.0.254) required for NetBIOS name resolution.
Without WINS, DOS machines cannot resolve `\\D2TESTNAS` to 192.168.0.9.
---
## File Locations
### On D2TESTNAS (192.168.0.9)
```
/data/test/
├── UPDATE.BAT # Central management utility
├── TS-XX/ # Per-station folders
│ ├── TODO.BAT # Remote task (if present)
│ └── TODO.LOG # Task execution log
├── CONFIGS/ # Master config templates
├── GPIB/ # GPIB driver files
└── _SYNC_STATUS.txt # Last sync timestamp
/data/datasheets/
└── CONFIGS/ # Full DOS image from TS-27
└── [1790 files, 44MB]
```
### On AD2 (192.168.0.6)
```
C:\Shares\test\
├── UPDATE.BAT
├── TS-XX\
│ ├── TODO.BAT
│ └── TODO.LOG
├── CONFIGS\
├── GPIB\
└── _SYNC_STATUS.txt
```
### On DOS Machines
```
C:\
├── AUTOEXEC.BAT # Network startup + TODO execution
├── CONFIG.SYS # Device drivers
├── NET\ # Network client files
├── GPIB\ # GPIB ISA card drivers
└── QB45\ # QuickBASIC 4.5
T:\ (mapped to \\D2TESTNAS\TEST)
├── UPDATE.BAT
├── TS-XX\
│ └── TODO.BAT (if present)
└── [shared files]
```
---
## Common Operations
### Accessing Infrastructure
#### SSH to NAS
```bash
ssh root@192.168.0.9
# Uses ed25519 key from ~/.ssh/id_ed25519
```
#### SMB to NAS (from Windows)
```bash
# Via PowerShell
New-SmbMapping -LocalPath T: -RemotePath \\192.168.0.9\test -UserName admin -Password Paper123!@#-nas
# Via Command Prompt
net use T: \\192.168.0.9\test /user:admin Paper123!@#-nas
```
#### SMB to AD2
```bash
# Via PowerShell (from GuruRMM/Jupiter)
$password = ConvertTo-SecureString 'Paper123!@#' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential('INTRANET\sysadmin', $password)
New-PSDrive -Name AD2 -PSProvider FileSystem -Root "\\192.168.0.6\C$" -Credential $cred
```
### Deploying Updates to DOS Machines
#### Method 1: UPDATE.BAT (Normal Operation)
```batch
REM Edit UPDATE.BAT on AD2
\\192.168.0.6\test\UPDATE.BAT
REM Wait for sync (every 15 min) or trigger manually:
ssh root@192.168.0.9 '/root/sync-to-ad2.sh'
REM On DOS machine:
T:\UPDATE TS-XX ALL
```
#### Method 2: TODO.BAT (Remote Execution)
```batch
REM Create TODO.BAT on AD2
echo DIR C:\ > \\192.168.0.6\test\TS-27\TODO.BAT
REM Wait for sync
REM DOS machine runs on next boot, then deletes TODO.BAT
REM Check results
type \\192.168.0.6\test\TS-27\TODO.LOG
```
### Monitoring Sync
```bash
# View sync log
ssh root@192.168.0.9 'tail -50 /var/log/ad2-sync.log'
# Check last sync status
smbclient //192.168.0.6/test -U sysadmin%'Paper123!@#' -c 'get _SYNC_STATUS.txt -'
# Manual sync trigger
ssh root@192.168.0.9 '/root/sync-to-ad2.sh'
```
### Testing DOS Machine
```batch
REM From DOS machine:
C:\NET\NET VIEW
C:\NET\NET USE
DIR T:\
REM Test UPDATE.BAT
T:\UPDATE TS-XX ALL
REM Check for TODO.BAT
IF EXIST T:\TS-XX\TODO.BAT TYPE T:\TS-XX\TODO.BAT
```
---
## Tested Machines
| Station | Status | Last Test | Notes |
|---------|--------|-----------|-------|
| TS-27 | ✅ Working | 2025-12-14 | Reference machine, full config captured |
| TS-8L | ✅ Working | 2025-12-14 | Network config updated |
| TS-8R | ✅ Working | 2025-12-14 | Network config updated |
| TS-XX (others) | ⏳ Pending | N/A | ~27 machines need config updates |
---
## Remaining Tasks
### High Priority
- [ ] Create `\\AD2\datasheets` share (waiting on Engineering input for folder location)
- [ ] Update network configuration on remaining ~27 DOS machines
- [ ] Document QuickBASIC application details (if Engineering provides info)
### Medium Priority
- [ ] Create comprehensive DOS machine inventory
- [ ] Test TODO.BAT on all stations
- [ ] Set up automated health monitoring
### Low Priority
- [ ] Explore VPN access for remote management
- [ ] Investigate modern DOS alternatives (FreeDOS, etc.)
- [ ] Create backup/restore procedures for DOS machine images
---
## Troubleshooting
### DOS Machine Cannot Access T: Drive
**Check:**
1. Network cable connected?
2. WINS server reachable? `ping 192.168.0.254`
3. NetBIOS name resolution? Try IP: `NET USE T: \\192.168.0.9\TEST`
4. NAS share accessible? Test from Windows: `\\192.168.0.9\test`
**Common Fixes:**
- Restart network client: `C:\NET\NET STOP` then `C:\NET\NET START`
- Check PROTOCOL.INI for typos
- Verify WINS server setting in UDM
### Sync Not Working
**Check:**
1. Cron running? `ssh root@192.168.0.9 'ps aux | grep cron'`
2. Credentials valid? `cat /root/.ad2creds`
3. SMB mount successful? `ssh root@192.168.0.9 'mount | grep /mnt/ad2-test'`
4. Recent errors? `ssh root@192.168.0.9 'tail -50 /var/log/ad2-sync.log'`
**Common Fixes:**
- Re-mount AD2 share: Run sync script manually
- Check AD2 reachability: `ping 192.168.0.6`
- Verify sysadmin credentials
### UPDATE.BAT Fails
**Check:**
1. Batch file has DOS line endings (CR+LF)?
2. Paths correct for DOS (8.3 format if needed)?
3. Files exist on T: drive?
4. Sufficient disk space on C: drive?
**Common Fixes:**
- Convert line endings: `unix2dos UPDATE.BAT`
- Test manually: Run commands one by one
- Check sync: Files may not be on NAS yet
---
## Technical Details
### DOS 6.22 Limitations
- **Filenames:** 8.3 format only (FILENAME.EXT)
- **Line Endings:** CR+LF (\\r\\n) required for batch files
- **Networking:** SMB1 CORE protocol only
- **Authentication:** No Kerberos, plaintext passwords
- **Memory:** 640KB conventional + extended via HIMEM.SYS
### SMB Protocol Versions
- **SMB1 CORE:** DOS machines (1985, insecure)
- **SMB1:** Windows XP / Server 2003
- **SMB2:** Windows Vista / Server 2008+
- **SMB3:** Windows 8 / Server 2012+
### TrueNAS Configuration
- SMB service enabled with SMB1 support
- Guest access disabled
- User: admin with password authentication
- Shares: test, datasheets
---
## Documentation
### Original Implementation
**Session Log:** `~/claude-projects/session-logs/2025-12-14-dataforth-dos-machines.md`
**Implementation Time:** ~11 hours
**Date:** 2025-12-14
### Additional Documentation
- **CREDENTIALS.md** - All access credentials
- **NETWORK_TOPOLOGY.md** - Network diagram and IP addresses
- **SYNC_SCRIPT.md** - Bidirectional sync documentation
- **DOS_BATCH_FILES.md** - UPDATE.BAT and TODO.BAT details
- **GITEA_ACCESS.md** - Repository access instructions
- **PROJECT_INDEX.md** - Quick reference guide
### Source Repository
```bash
git clone --no-checkout https://git.azcomputerguru.com/azcomputerguru/claude-projects.git
cd claude-projects
git sparse-checkout init --cone
git sparse-checkout set dataforth-dos
git checkout main
```
---
## Project History
**2025-12-14:** Initial implementation, sync system created, TS-27/TS-8L/TS-8R tested
**2025-12-20:** VPN access configured for remote management
**2026-01-13:** Dataforth DOS project recalled for additional work
**2026-01-19:** DOS deployment verification, AD2-NAS sync enhancements
**2026-01-20:** DOS Update System comprehensive documentation created
**2026-01-22:** Project documentation imported to ClaudeTools
---
## Support Contacts
**Client:** Dataforth Corporation
**Engineering Contact:** [Pending]
**Network Administrator:** [Pending]
**Technical Support:**
- Arizona Computer Guru (MSP)
- Phone: 520.304.8300
- Email: support@azcomputerguru.com
---
## Related Projects
- **GuruRMM:** Remote monitoring system (AD2 has agent installed)
- **ClaudeTools:** Project tracking and documentation system
- **Session Logs:** Complete work history in claude-projects/session-logs/
---
**Project Status:** 90% Complete, Operational
**Next Steps:** Datasheets share creation, remaining machine configs
**Maintenance:** Automated sync, minimal intervention required