# Mejores prácticas operativas

LLMS index: [llms.txt](/v1.2.0.0/llms.txt)

---

Esta página describe los patrones de operación recomendados para PackageUpdateInfo en
herramientas interactivas, perfiles y automatización.

## Comienza con el comportamiento predeterminado

Restablece la configuración antes de introducir ajustes personalizados, especialmente en sistemas compartidos:

```powershell
Set-PackageUpdateSetting -Reset
```

Inspecciona la configuración y las reglas actuales:

```powershell
Get-PackageUpdateSetting
Get-PackageUpdateRule -IncludeDefaultRule
```

## Usa intervalos de actualización para reducir el ruido

`Get-PackageUpdateInfo` respeta `UpdateCheckInterval`. Si la última
verificación efectiva aún está dentro del intervalo configurado, el cmdlet devuelve
temprano.

Establece un intervalo que coincida con tu entorno:

```powershell
Set-PackageUpdateSetting -UpdateCheckInterval (New-TimeSpan -Hours 6)
```

Usa `-Force` solo para ejecuciones de verificación ad-hoc:

```powershell
Get-PackageUpdateInfo -Force
```

## Prefiere un inicio de shell no bloqueante

Un patrón práctico de perfil es:

```powershell
Start-Job -ScriptBlock {
    Get-PackageUpdateInfo -ShowOnlyNeededUpdate | Export-PackageUpdateInfo
} | Out-Null

Import-PackageUpdateInfo
```

Por qué esto funciona bien:

- El inicio sigue siendo rápido porque la importación lee datos en caché.
- La verificación en línea costosa se ejecuta en segundo plano.
- Aún obtienes una visibilidad útil de las actualizaciones en cada sesión.

## Verifica el alcance explícitamente cuando sea necesario

Usa parámetros de alcance cuando los permisos difieran entre módulos de usuario y del sistema:

```powershell
Get-PackageUpdateInfo -CurrentUser
Get-PackageUpdateInfo -AllUsers
```

Usa `-Repository` en entornos con múltiples repositorios configurados:

```powershell
Get-PackageUpdateInfo -Repository PSGallery
```

## Diseña reglas cuidadosamente

Usa exclusiones amplias solo cuando sean intencionales. Excluir patrones grandes puede ocultar
actualizaciones importantes.

Crea reglas personalizadas enfocadas para módulos con alta rotación:

```powershell
Add-PackageUpdateRule -IncludeModuleForChecking "Az.*" -ReportChangeOnMajor $true -ReportChangeOnMinor $true -ReportChangeOnBuild $false -ReportChangeOnRevision $false
```

Revisa la precedencia de las reglas listando todas ellas:

```powershell
Get-PackageUpdateRule -IncludeDefaultRule | Sort-Object Id
```

## Usa exportación/importación de manera intencionada

Las rutas predeterminadas de exportación e importación son específicas de la plataforma e incluyen la edición de PowerShell y la versión principal en el nombre del archivo. Esto ayuda a evitar mezclar datos de diferentes entornos de ejecución.

Opciones comunes de exportación:

```powershell
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat XML
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat JSON
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat CSV
```

Guía recomendada:

- Usa XML cuando quieras conservar objetos tipados para reimportar.
- Usa JSON o CSV para informes externos e integración.
- Usa `-IncludeTimeStamp` para seguimiento histórico.

## Mantén las notificaciones útiles

Usa notificaciones toast solo donde aporten valor:

- En hosts Windows con BurntToast instalado.
- En sesiones donde se esperan alertas interactivas.

Para servidores, CI y shells no interactivos, prefiere informes exportados en lugar de notificaciones toast.
