Private/Initialize-TechCareState.ps1
|
function Initialize-TechCareState { <# .SYNOPSIS Deja el estado de ejecucion del modulo en limpio. .DESCRIPTION Invoke-TechCare lo llama al empezar. Sin este reinicio, una segunda pasada en la misma sesion de PowerShell heredaria los resultados y el log de la primera, y el informe mezclaria dos ejecuciones como si fueran una. Deliberadamente NO declara ShouldProcess: el cargador del modulo lo invoca al importar, y si respetase -WhatIf una sesion con $WhatIfPreference = $true importaria el modulo con el estado sin inicializar. Tampoco toca el sistema: solo memoria del propio modulo. #> [CmdletBinding()] [OutputType([void])] param() $script:State = @{ RunId = [guid]::NewGuid().ToString('N').Substring(0, 8) StartedUtc = (Get-Date).ToUniversalTime() Preset = 'None' Apply = $false LogPath = $null ReportPath = $null Log = New-Object -TypeName System.Collections.ArrayList Results = New-Object -TypeName System.Collections.ArrayList Branding = @{ TechnicianName = ''; CompanyName = ''; ContactInfo = '' } Admin = $false Managed = $false ManagedBy = @() } } |