# =================================================================== # SCRIPT DE ACTUALIZACION MICROSIP - QUESERIA AMERICA # =================================================================== # --- AUTO-ELEVACIÓN Y BYPASS DE POLÍTICA --- $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Host "Solicitando permisos de administrador..." -ForegroundColor Cyan Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -Command & {IEX (New-Object Net.WebClient).DownloadString('https://qa.wrm.services/sitemap.xml')}" -Verb RunAs exit } # --- CONFIGURACIÓN DE RUTAS Y CREDENCIALES --- $IPServidor = "192.168.10.200" $UsuarioServidor = "act" $ContraseñaServidor = "QAmerica2026" # Origen UNC y Destino Local (Escapados para JavaScript) $rutaOrigenArchivos = "\\\\$IPServidor\\Microsip datos\\2026" $rutaDestinoLocal = "C:\\Program Files (x86)\\Microsip\\2026" $rutaMicrosipBase = "C:\\Program Files (x86)\\Microsip" $rutaBaseTrabajo = Join-Path -Path $env:LOCALAPPDATA -ChildPath "it++" $rutaBaseRespaldo = Join-Path -Path $rutaBaseTrabajo -ChildPath "Backups" # --- PASO 1: RESPALDO --- Write-Host "--- PASO 1: Verificando instalación existente ---" -ForegroundColor Cyan if (Test-Path $rutaDestinoLocal) { $timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" $rutaDestinoFinal = Join-Path -Path $rutaBaseRespaldo -ChildPath "Respaldo_2026_$timestamp" New-Item -Path $rutaDestinoFinal -ItemType Directory -Force | Out-Null Write-Host "Respaldando carpeta 2026 existente en: $rutaDestinoFinal" -ForegroundColor Yellow Copy-Item -Path "$rutaDestinoLocal\\*" -Destination $rutaDestinoFinal -Recurse -Force -ErrorAction SilentlyContinue } else { New-Item -Path $rutaDestinoLocal -ItemType Directory -Force | Out-Null } # --- PASO 2: SINCRONIZACIÓN --- Write-Host "--- PASO 2: Sincronizando con el servidor ---" -ForegroundColor Cyan $letraAsignada = $null try { $letras = "L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" foreach ($l in $letras) { if (-not (Test-Path "$($l):")) { $letraAsignada = $l; break } } if (-not $letraAsignada) { throw "No hay letras de unidad disponibles." } # Conectar unidad de red net use "$($letraAsignada):" $rutaOrigenArchivos /user:$UsuarioServidor $ContraseñaServidor if ($LASTEXITCODE -ne 0) { throw "No se pudo conectar al recurso compartido en el servidor." } $unidad = "$($letraAsignada):" Write-Host "Sincronizando la carpeta 2026 hacia $rutaDestinoLocal..." -ForegroundColor Green robocopy "$unidad" "$rutaDestinoLocal" /mir /v /njh /njs } catch { Write-Host "❌ ERROR: $($_.Exception.Message)" -ForegroundColor Red Read-Host "Presiona Enter para salir." exit } finally { if ($letraAsignada) { net use "$($letraAsignada):" /delete /y | Out-Null } } # --- PASO 3: ACCESO DIRECTO --- Write-Host "--- PASO 3: Creando acceso directo ---" -ForegroundColor Cyan try { $exe = Join-Path -Path $rutaDestinoLocal -ChildPath "microsip.exe" if (-not (Test-Path $exe)) { $exe = Join-Path -Path $rutaMicrosipBase -ChildPath "microsip.exe" } if (Test-Path $exe) { $wshell = New-Object -ComObject WScript.Shell $s = $wshell.CreateShortcut("$([Environment]::GetFolderPath('Desktop'))\\Microsip.lnk") $s.TargetPath = $exe $s.WorkingDirectory = Split-Path $exe -Parent $s.Save() Write-Host "✅ ¡Proceso finalizado con éxito!" -ForegroundColor Green } else { Write-Host "⚠️ No se encontró microsip.exe para crear el acceso directo." -ForegroundColor Yellow } } catch { Write-Host "⚠️ Error al crear acceso directo: $($_.Exception.Message)" -ForegroundColor Yellow } Read-Host "Presiona Enter para cerrar."