Initial commit: Organized PowerShell scripts for ShopDB asset collection

Structure:
- asset-collection/: Local PC data collection scripts
- remote-execution/: WinRM remote execution scripts
- setup-utilities/: Configuration and testing utilities
- registry-backup/: GE registry backup scripts
- winrm-https/: WinRM HTTPS certificate setup
- docs/: Complete documentation

Each folder includes a README with detailed documentation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2025-12-10 10:57:54 -05:00
commit 62c0c7bb06
102 changed files with 28017 additions and 0 deletions

View File

@@ -0,0 +1,267 @@
# Data Collection Reference
## Complete PowerShell Asset Management System Data Collection
This document provides a comprehensive reference of all data points collected by the PowerShell asset management system, organized by category and source.
---
## 🖥️ Basic System Information
### Core System Data
| Field | Source | Type | Description |
|-------|--------|------|-------------|
| `hostname` | `$env:COMPUTERNAME` | String | Computer name |
| `serialnumber` | WMI `Win32_BIOS.SerialNumber` | String | System serial number |
| `manufacturer` | WMI `Win32_ComputerSystem.Manufacturer` | String | System manufacturer (Dell, HP, etc.) |
| `model` | WMI `Win32_ComputerSystem.Model` | String | System model number |
| `operatingSystem` | WMI `Win32_OperatingSystem.Caption` | String | OS version and edition |
| `osVersion` | WMI `Win32_OperatingSystem.Version` | String | OS build version |
| `osArchitecture` | WMI `Win32_OperatingSystem.OSArchitecture` | String | System architecture (32-bit/64-bit) |
| `totalMemoryGB` | WMI `Win32_PhysicalMemory` | Integer | Total RAM in GB |
| `processor` | WMI `Win32_Processor.Name` | String | CPU model and specifications |
| `lastBootUpTime` | WMI `Win32_OperatingSystem.LastBootUpTime` | DateTime | System last boot time |
| `currentUser` | `$env:USERNAME` | String | Currently logged-in user |
| `domain` | WMI `Win32_ComputerSystem.Domain` | String | Active Directory domain |
### Hardware Details
| Field | Source | Type | Description |
|-------|--------|------|-------------|
| `biosVersion` | WMI `Win32_BIOS.SMBIOSBIOSVersion` | String | BIOS/UEFI version |
| `biosDate` | WMI `Win32_BIOS.ReleaseDate` | DateTime | BIOS release date |
| `systemType` | WMI `Win32_ComputerSystem.SystemType` | String | System type (desktop/laptop) |
| `totalPhysicalMemory` | WMI `Win32_ComputerSystem.TotalPhysicalMemory` | Long | Total physical memory in bytes |
---
## 🌐 Network Configuration
### Network Interface Data
| Field | Source | Type | Description |
|-------|--------|------|-------------|
| `networkInterfaces` | WMI `Win32_NetworkAdapterConfiguration` | Array | All network interfaces with IP configuration |
| `ipAddress` | Network interfaces | String | Primary IP address |
| `subnetMask` | Network interfaces | String | Subnet mask |
| `defaultGateway` | Network interfaces | String | Default gateway |
| `macAddress` | Network interfaces | String | MAC address |
| `dhcpEnabled` | Network interfaces | Boolean | DHCP enabled status |
| `dnsServers` | Network interfaces | Array | DNS server list |
### Network Interface Details Per Adapter
```powershell
foreach ($interface in $networkInterfaces) {
InterfaceDescription # Network adapter description
IPAddress[] # Array of IP addresses
IPSubnet[] # Array of subnet masks
DefaultIPGateway[] # Array of gateways
MACAddress # Physical address
DHCPEnabled # DHCP status
DNSServerSearchOrder[] # DNS servers
IPEnabled # Interface enabled status
InterfaceIndex # Interface index number
}
```
---
## 🏭 Manufacturing/Shopfloor Configuration
### DNC (Direct Numerical Control) System Data
| Field | Source | Type | Description |
|-------|--------|------|-------------|
| `dncConfigFound` | Registry scan | Boolean | DNC configuration detected |
| `dncDualPathEnabled` | eFocas registry | Boolean | DualPath communication enabled |
| `dncGeRegistry32Bit` | Registry detection | Boolean | 32-bit GE registry found |
| `dncGeRegistry64Bit` | Registry detection | Boolean | 64-bit GE registry found |
### GE Aircraft Engines Registry Analysis
#### Registry Architecture Detection
```powershell
# Dual registry path scanning
$registryPaths = @{
'32bit' = 'HKLM:\SOFTWARE\GE Aircraft Engines'
'64bit' = 'HKLM:\SOFTWARE\WOW6432Node\GE Aircraft Engines'
}
```
#### DNC Service Configurations
| Service | Registry Paths | Data Collected |
|---------|----------------|----------------|
| **Serial** | `DNC\Serial` | Serial communication settings |
| **Mark** | `DNC\Mark` | Marking system configuration |
| **PPDCS** | `DNC\PPDCS` | Production data collection |
| **TQM9030** | `DNC\TQM9030` | Quality management system |
| **TQMCaron** | `DNC\TQMCaron` | Caron quality system |
| **eFocas** | `DNC\eFocas` | Machine monitoring system |
| **General** | `DNC\General` | General DNC settings |
#### eFocas Configuration Details
```powershell
# eFocas registry values collected per path
$efocasData = @{
BasePath # Registry base path
Path1Name # Primary communication path
Path2Name # Secondary communication path
DualPath # DualPath enabled ("YES"/"NO")
[Additional registry values dynamically collected]
}
```
### DualPath Communication Configuration
| Field | Source | Description |
|-------|--------|-------------|
| `DualPathEnabled` | eFocas `DualPath` registry value | Boolean indicating dual communication paths |
| `Path1Name` | eFocas registry | Primary communication path identifier |
| `Path2Name` | eFocas registry | Secondary communication path identifier |
| `CommunicationMode` | Registry analysis | Communication mode configuration |
---
## 🔍 System Analysis & Intelligence
### Registry Architecture Analysis
```powershell
$geRegistryInfo = @{
Registry32Bit = $false # Found in 32-bit registry
Registry64Bit = $false # Found in 64-bit registry
DualPathEnabled = $null # DualPath configuration
ServiceConfigurations = @{} # Per-service registry data
FoundPaths = @() # All discovered registry paths
}
```
### Manufacturing Intelligence Data
| Category | Data Points | Purpose |
|----------|------------|---------|
| **Communication Paths** | DualPath detection, Path1/Path2 names | Network redundancy analysis |
| **Service Architecture** | 32-bit vs 64-bit service locations | Compatibility and migration planning |
| **System Integration** | DNC service configurations | Manufacturing system health |
| **Quality Systems** | TQM9030, TQMCaron configurations | Quality control integration |
---
## 🗄️ Database Integration
### Data Transmission Format
```powershell
# POST data structure sent to dashboard API
$postData = @{
# Basic system info
hostname = $computerName
serialnumber = $serialNumber
manufacturer = $manufacturer
# ... [all basic fields]
# Network configuration
networkInterfaces = $networkData
# Manufacturing data
dncConfigFound = $dncFound
dncDualPathEnabled = $geInfo.DualPathEnabled
dncGeRegistry32Bit = $geInfo.Registry32Bit
dncGeRegistry64Bit = $geInfo.Registry64Bit
# Shopfloor configuration
shopfloorConfig = $shopfloorData
}
```
### Database Tables Updated
| Table | Primary Data | Key Fields |
|-------|-------------|------------|
| `PCs` | Basic system information | `hostname`, `serialnumber`, `manufacturer` |
| `PC_Network_Interfaces` | Network configuration | `hostname`, `interface_name`, `ip_address` |
| `PC_DNC_Config` | Manufacturing settings | `hostname`, `dualpath_enabled`, `registry_32bit` |
---
## 🔄 Data Collection Workflow
### 1. System Information Collection
```powershell
Get-ComputerInfo # Basic system data
Get-WmiObject queries # Hardware details
```
### 2. Network Interface Analysis
```powershell
Get-WmiObject Win32_NetworkAdapterConfiguration |
Where-Object { $_.IPEnabled -eq $true }
```
### 3. Manufacturing Configuration Detection
```powershell
Get-ShopfloorConfig # DNC and GE registry analysis
Get-GERegistryInfo # Architecture and DualPath detection
```
### 4. Data Aggregation & Transmission
```powershell
# Combine all data sources
$postData = @{} + $systemInfo + $networkInfo + $manufacturingInfo
# Send to dashboard API
Invoke-RestMethod -Uri $apiEndpoint -Method POST -Body $postData
```
---
## 📋 Collection Statistics
### Comprehensive Data Points
- **Basic System**: ~15 core system fields
- **Network Configuration**: ~8 fields per interface (multiple interfaces)
- **Manufacturing/DNC**: ~10+ specialized manufacturing fields
- **Registry Architecture**: Dual-path scanning (32-bit + 64-bit)
- **Service-Specific**: 7 DNC services × multiple registry values each
### Total Data Points Collected
- **Minimum**: ~40 fields for basic desktop PC
- **Shopfloor PC**: ~60+ fields with full DNC configuration
- **Manufacturing Workstation**: ~80+ fields with complete eFocas integration
---
## 🎯 Use Cases & Applications
### IT Asset Management
- Hardware inventory and lifecycle tracking
- Software version and patch management
- Network configuration documentation
### Manufacturing Operations
- DNC system health monitoring
- Dual communication path verification
- Quality system integration status
- Machine connectivity analysis
### Security & Compliance
- Network configuration auditing
- System architecture documentation
- Access path verification
---
## 📝 Notes & Considerations
### Data Collection Scope
- **Non-Intrusive**: Read-only system information collection
- **Manufacturing-Aware**: Specialized shopfloor system detection
- **Architecture-Intelligent**: Dual registry path scanning
- **Network-Comprehensive**: Complete interface configuration
### Performance Characteristics
- **Collection Time**: ~30-60 seconds per PC
- **Network Impact**: Minimal (single API POST per PC)
- **System Impact**: Read-only operations, no system changes
### Future Enhancements
- Additional vendor registry detection (Siemens, Fanuc, etc.)
- Extended quality system integration
- Real-time monitoring capabilities
- Advanced manufacturing analytics
---
*Last Updated: September 2025 | Version 3.2*
*PowerShell Asset Management System - Complete Data Collection Reference*