@echo off
echo ============================================
echo  SLIDER - Extraccion de Hash para Autopilot
echo  Equipo: %COMPUTERNAME%
echo ============================================
echo.

REM Detectar la letra del USB
set USBDRIVE=
for %%d in (D E F G H I J K L M N) do (
    if exist "%%d:\extraer-hash.cmd" set USBDRIVE=%%d:
)

if "%USBDRIVE%"=="" (
    echo ERROR: No se detecto el USB. Verificar que este conectado.
    pause
    exit /b 1
)

echo USB detectado en: %USBDRIVE%
echo Los hashes se guardaran en: %USBDRIVE%\HASHES\autopilot.csv
echo.

if not exist "%USBDRIVE%\HASHES" mkdir "%USBDRIVE%\HASHES"

REM Si el script Get-WindowsAutopilotInfo.ps1 esta en el USB, usarlo local (rapido, sin red).
REM Si no esta, fallback a Install-Script desde PowerShell Gallery (requiere internet).
if exist "%USBDRIVE%\Get-WindowsAutopilotInfo.ps1" (
    echo Limpiando Mark-of-the-Web del script ^(por las dudas^)...
    type nul > "%USBDRIVE%\Get-WindowsAutopilotInfo.ps1:Zone.Identifier" 2>nul
    echo Usando script local del USB ^(sin descarga^)...
    echo.
    powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& { Set-ExecutionPolicy Bypass -Scope Process -Force; Set-ExecutionPolicy Bypass -Scope CurrentUser -Force -ErrorAction SilentlyContinue; Unblock-File -Path '%USBDRIVE%\Get-WindowsAutopilotInfo.ps1' -ErrorAction SilentlyContinue; & '%USBDRIVE%\Get-WindowsAutopilotInfo.ps1' -OutputFile '%USBDRIVE%\HASHES\autopilot.csv' -Append }"
) else (
    echo AVISO: Get-WindowsAutopilotInfo.ps1 no encontrado en el USB.
    echo Descargando desde PowerShell Gallery... ^(requiere internet^)
    echo.
    powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& { Set-ExecutionPolicy Bypass -Scope Process -Force; Set-ExecutionPolicy Bypass -Scope CurrentUser -Force -ErrorAction SilentlyContinue; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force | Out-Null; Install-Script -Name Get-WindowsAutopilotInfo -Force; Get-WindowsAutopilotInfo -OutputFile '%USBDRIVE%\HASHES\autopilot.csv' -Append }"
)

if %ERRORLEVEL% EQU 0 (
    echo.
    echo ============================================
    echo  OK - Hash extraido y guardado en el USB
    echo  Ya podes apagar y pasar al siguiente equipo
    echo ============================================
) else (
    echo.
    echo ============================================
    echo  ERROR - Revisar mensaje arriba
    echo  Si uso fallback de internet: verificar red
    echo ============================================
)
pause
