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.
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.
Synthetic Data
| ID | Website |
|---|---|
| 1 | https://jobaqui.com |
| 2 | https://microsoft.com |
| 3 | https://example-broken-link-demo-12345.com |
| 4 | https://google.com |
Datos sintéticos
| ID | Website |
|---|---|
| 1 | https://jobaqui.com |
| 2 | https://microsoft.com |
| 3 | https://example-broken-link-demo-12345.com |
| 4 | https://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
| Website | Status |
|---|---|
| https://jobaqui.com | OK |
| https://microsoft.com | OK |
| https://example-broken-link-demo-12345.com | ERROR |
| https://google.com | OK |
Resultado esperado
| Website | Status |
|---|---|
| https://jobaqui.com | OK |
| https://microsoft.com | OK |
| https://example-broken-link-demo-12345.com | ERROR |
| https://google.com | OK |
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.