TechCare.psm1
|
#Requires -Version 5.1 # StrictMode convierte en error las referencias a variables o propiedades que no # existen. En un modulo que lee WMI, el registro y la salida de binarios ajenos, # una propiedad ausente es el fallo mas probable, y preferimos que grite a que # devuelva $null y acabe en un informe que dice "Correcto". Set-StrictMode -Version 3.0 $ErrorActionPreference = 'Stop' $script:ModuleRoot = $PSScriptRoot $script:ModuleVersion = '0.1.0' # Mensaje unico de guarda de plataforma: todas las funciones que llaman a APIs de # Windows lo reutilizan para que el usuario de Linux o macOS lea siempre lo mismo. $script:PlatformMessage = 'TechCare solo puede ejecutarse en Windows 10 u 11. El paquete se instala en Linux y macOS, pero el motor depende de DISM, sfc, chkdsk, Defender, el firewall y Windows Update, que son APIs de Windows. Desde Linux, macOS o movil, usa SSH o WinRM contra un equipo Windows.' $script:State = $null foreach ($folder in @('Private', 'Public')) { $dir = Join-Path -Path $PSScriptRoot -ChildPath $folder if (Test-Path -LiteralPath $dir) { Get-ChildItem -LiteralPath $dir -Filter '*.ps1' -File | Sort-Object -Property Name | ForEach-Object { . $_.FullName } } } # El estado arranca inicializado para que importar el modulo y llamar a un cmdlet # suelto (sin pasar por Invoke-TechCare) funcione igual que dentro de una pasada. Initialize-TechCareState $publicDir = Join-Path -Path $PSScriptRoot -ChildPath 'Public' $export = @(Get-ChildItem -LiteralPath $publicDir -Filter '*.ps1' -File | ForEach-Object { $_.BaseName }) Export-ModuleMember -Function $export |