Link Integrity / Integridad de enlaces

PowerShell Advanced Topic #10
Check URL Existence

Validate links included in reports, inventories, documentation, websites, and operational files before users encounter broken pages.

Cybersecurity & Production Environment Warning

This exercise is intended for learning and testing purposes only. Do not execute scripts against production environments, business-critical systems, enterprise repositories, public websites, or shared network locations without proper authorization, testing, backups, change-control procedures, and compliance with your organization's cybersecurity policies.

Advertencia de ciberseguridad y ambiente de producción

Este ejercicio es únicamente para aprendizaje y pruebas. No ejecute scripts contra ambientes de producción, sistemas críticos, repositorios empresariales, sitios públicos o carpetas compartidas sin autorización formal, pruebas previas, respaldos, control de cambios y cumplimiento de las políticas de ciberseguridad de su organización.

Objective

This topic focuses on checking whether URLs included in a dataset are reachable. Broken links can affect reports, documentation, SharePoint libraries, knowledge bases, public portals, and data catalogs.

Detect broken URLs
Create validation reports
Improve documentation quality
Support content audits

Objetivo

Este tópico se enfoca en comprobar si las URLs incluidas en un dataset son accesibles. Los enlaces rotos pueden afectar reportes, documentación, bibliotecas de SharePoint, bases de conocimiento, portales públicos y catálogos de datos.

Detectar URLs rotas
Crear reportes de validación
Mejorar calidad documental
Apoyar auditorías de contenido

Synthetic Data

IDWebsite
1https://jobaqui.com
2https://microsoft.com
3https://example-broken-link-demo-12345.com
4https://google.com

Datos sintéticos

IDWebsite
1https://jobaqui.com
2https://microsoft.com
3https://example-broken-link-demo-12345.com
4https://google.com

Base Script / Ejemplo base

try {
    Invoke-WebRequest $_.Website -Method Head -ErrorAction Stop
}
catch {
    Write-Host "Broken URL detected: $($_.Website)"
}

Complete Script

Script completo

# PowerShell Advanced Topic 10
# Check URL Existence

# Input and output paths
$inputPath  = "C:\Data\Websites.csv"
$outputPath = "C:\Data\Website_Validation_Report.csv"

# Import URL list
$urls = Import-Csv $inputPath

# Validate each URL
$results = foreach ($url in $urls) {

    try {
        Invoke-WebRequest `
            -Uri $url.Website `
            -Method Head `
            -TimeoutSec 15 `
            -ErrorAction Stop | Out-Null

        [PSCustomObject]@{
            ID      = $url.ID
            Website = $url.Website
            Status  = "OK"
            Message = "URL reachable"
        }
    }
    catch {
        [PSCustomObject]@{
            ID      = $url.ID
            Website = $url.Website
            Status  = "ERROR"
            Message = $_.Exception.Message
        }
    }
}

# Export validation report
$results | Export-Csv $outputPath -NoTypeInformation

Write-Host "URL validation completed."
Write-Host "Report created at: $outputPath"

Expected Result

WebsiteStatus
https://jobaqui.comOK
https://microsoft.comOK
https://example-broken-link-demo-12345.comERROR
https://google.comOK

Resultado esperado

WebsiteStatus
https://jobaqui.comOK
https://microsoft.comOK
https://example-broken-link-demo-12345.comERROR
https://google.comOK

Real-World Applications

  • Website and portal audits
  • SharePoint documentation validation
  • Knowledge base quality control
  • Data catalog link validation
  • Public report review before publication

Aplicaciones reales

  • Auditorías de sitios web y portales
  • Validación de documentación en SharePoint
  • Control de calidad en bases de conocimiento
  • Validación de enlaces en catálogos de datos
  • Revisión de reportes públicos antes de publicarlos

Recommendations

Use this validation before publishing public documentation, sending reports, or migrating content. Always store the validation output as evidence of the review process.

Professional automation does not only process data. It also validates dependencies and records the result.

Recomendaciones

Use esta validación antes de publicar documentación pública, enviar reportes o migrar contenido. Guarde siempre el resultado de la validación como evidencia del proceso de revisión.

La automatización profesional no solo procesa datos. También valida dependencias y registra el resultado.