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>
267 lines
9.9 KiB
Markdown
267 lines
9.9 KiB
Markdown
# 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* |