{"id":1772,"date":"2026-03-30T11:51:13","date_gmt":"2026-03-30T11:51:13","guid":{"rendered":"https:\/\/patriciocerda.com\/?p=1772"},"modified":"2026-03-30T11:51:13","modified_gmt":"2026-03-30T11:51:13","slug":"reporte-de-cumplimiento-de-slas-para-vms-de-vmware-usando-powershell-y-veeam","status":"publish","type":"post","link":"https:\/\/patriciocerda.com\/?p=1772","title":{"rendered":"Reporte de Cumplimiento de  SLAs para VMs de VMware usando PowerShell y Veeam"},"content":{"rendered":"<p data-path-to-node=\"4\">En entornos virtualizados con <b data-path-to-node=\"4\" data-index-in-node=\"30\">VMware vSphere<\/b>, el cumplimiento de los Acuerdos de Nivel de Servicio (SLA) es una m\u00e9trica clave. No basta con saber que los backups &#8220;se hicieron&#8221;; los stakeholders necesitan saber qu\u00e9 m\u00e1quinas est\u00e1n fuera de su <b data-path-to-node=\"4\" data-index-in-node=\"242\">RPO (Recovery Point Objective)<\/b> de forma clara y procesable.<\/p>\n<p data-path-to-node=\"5\">En este post vamos a construir un script de PowerShell que extrae datos directamente de <b data-path-to-node=\"5\" data-index-in-node=\"79\">Veeam Backup &amp; Replication<\/b> para generar un reporte de cumplimiento din\u00e1mico.<\/p>\n<p data-path-to-node=\"5\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#Que_vamos_a_medir\" >Que vamos a medir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#Beneficios_de_esta_Estrategia\" >Beneficios de esta Estrategia<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#Requisitos_previos\" >Requisitos previos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#Conectar_con_Veeam_Backup_desde_PowerShell\" >Conectar con Veeam Backup desde PowerShell<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#El_Script_de_PowerShell\" >El Script de PowerShell<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#Visualizacion_y_Automatizacion\" >Visualizaci\u00f3n y Automatizaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#Mejores_Practicas\" >Mejores Pr\u00e1cticas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/patriciocerda.com\/?p=1772\/#Conclusion\" >Conclusi\u00f3n<\/a><\/li><\/ul><\/nav><\/div>\n<h3 data-path-to-node=\"5\"><span class=\"ez-toc-section\" id=\"Que_vamos_a_medir\"><\/span>Que vamos a medir?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p data-path-to-node=\"8\">Para este reporte, definiremos que una VM cumple el SLA si tiene un punto de restauraci\u00f3n v\u00e1lido dentro de las \u00faltimas <b data-path-to-node=\"8\" data-index-in-node=\"119\">24 horas<\/b> (este valor es ajustable en el script).<\/p>\n<p data-path-to-node=\"8\">\n<h3 data-path-to-node=\"22\"><span class=\"ez-toc-section\" id=\"Beneficios_de_esta_Estrategia\"><\/span>Beneficios de esta Estrategia<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li data-path-to-node=\"23,0,0\"><b data-path-to-node=\"23,0,0\" data-index-in-node=\"0\">Sin Costo Adicional:<\/b> No necesitas licencias de Veeam ONE si solo buscas m\u00e9tricas b\u00e1sicas de cumplimiento.<\/li>\n<li data-path-to-node=\"23,1,0\"><b data-path-to-node=\"23,1,0\" data-index-in-node=\"0\">Personalizaci\u00f3n Total:<\/b> Puedes filtrar por Nombres de Job, por carpetas de VMware o incluso por Tags de vSphere.<\/li>\n<li data-path-to-node=\"23,2,0\"><b data-path-to-node=\"23,2,0\" data-index-in-node=\"0\">Auditor\u00eda:<\/b> Mantener un hist\u00f3rico de estos reportes es vital para auditor\u00edas de cumplimiento (ISO 27001, por ejemplo).<\/li>\n<\/ul>\n<p data-path-to-node=\"8\">\n<h3 data-path-to-node=\"9\"><span class=\"ez-toc-section\" id=\"Requisitos_previos\"><\/span><strong>Requisitos previos<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li data-path-to-node=\"10,0,0\">PowerShell v7<\/li>\n<li data-path-to-node=\"10,0,0\">Tener instalado el <b data-path-to-node=\"10,0,0\" data-index-in-node=\"19\">Veeam PowerShell Module<\/b> (incluido en la consola de Veeam).<\/li>\n<li data-path-to-node=\"10,1,0\">Permisos de lectura en el servidor de Veeam Backup &amp; Replication.<\/li>\n<li data-path-to-node=\"10,2,0\">Entorno de VMware vSphere conectado a Veeam.<\/li>\n<\/ul>\n<p data-path-to-node=\"4\">\n<h3 data-path-to-node=\"4\"><span class=\"ez-toc-section\" id=\"Conectar_con_Veeam_Backup_desde_PowerShell\"><\/span>Conectar con Veeam Backup desde PowerShell<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p data-path-to-node=\"4\">El script debe ejecutarse en un equipo que tenga instalada la <b data-path-to-node=\"4\" data-index-in-node=\"62\">Consola de Veeam Backup &amp; Replication<\/b>. Esto es vital porque la consola instala los binarios y el m\u00f3dulo de PowerShell necesarios.<\/p>\n<ul>\n<li data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">Opci\u00f3n A:<\/b> Ejecutarlo directamente en el servidor de Veeam (para la version Windows)<\/li>\n<li data-path-to-node=\"5,1,0\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">Opci\u00f3n B:<\/b> Ejecutarlo desde tu PC, siempre que tengas instalada la consola de Veeam y conectividad con el servidor Veeam Backup.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Abrir la consola de PowerShell v7, y ejecutar los siguientes comandos para conectarse con la instancia de Veeam Backup Server (opcionalmente la conexi\u00f3n se puede hacer directamente desde el script de PowerShell, como se ver\u00e1 m\u00e1s adelante)<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-1 > .CodeMirror, .fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-1 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_1\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_1\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_1\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">Import-Module Veeam.Backup.PowerShell -DisableNameChecking\nConnect-VBRServer -Server \"veeamvbrlab.homelab.local\" -User \"veeamadmin\" -Password \"mysuperpassword\" -ForceAcceptTlsCertificate<\/textarea><\/div>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1773\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-300x42.png\" alt=\"\" width=\"614\" height=\"86\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-200x28.png 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-300x42.png 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-400x56.png 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-600x84.png 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-768x108.png 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-800x112.png 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-1024x144.png 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-1200x168.png 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-1536x215.png 1536w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"El_Script_de_PowerShell\"><\/span>El Script de PowerShell<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A continuaci\u00f3n, presentamos el bloque de c\u00f3digo principal. Este script recorre todas las VMs procesadas y compara su \u00faltimo backup con la hora actual.<\/p>\n<p>&nbsp;<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-2 > .CodeMirror, .fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-2 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_2\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_2\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_2\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">param(\n    [string]$VbrServer = \"veeamvbrlab.homelab.local\",\n    [string]$VbrUser = \"veeamadmin\",\n    [string]$VbrPass = \"misuperpassword\",\n    [switch]$Connect\n)\n\nSet-StrictMode -Version Latest\n$ErrorActionPreference = \"Stop\"\n\n\n# 1. Definir la ruta de salida\n$rutaSalida = \"$env:USERPROFILE\\Desktop\\Reporte_Veeam_24h.html\"\n$umbral24Horas = (Get-Date).AddHours(-24)\n\n# 2. Definir el estilo CSS para que el HTML se vea profesional\n$estiloCSS = @\"\n<style>\n    body { font-family: Calibri, sans-serif; }\n    table { border-collapse: collapse; width: 80%; margin-top: 20px; }\n    th { background-color: #0078D4; color: white; padding: 10px; text-align: left; }\n    td { border: 1px solid #ddd; padding: 8px; }\n    tr:nth-child(even) { background-color: #f2f2f2; }\n    .si { color: green; font-weight: bold; }\n    .no { color: red; font-weight: bold; }\n    h2 { color: #333; }\n<\/style>\n\"@\n\nWrite-Host \"Generando reporte HTML...\" -ForegroundColor Cyan\n\n# 3. Obtener los datos de Veeam\ntry {\n    # --- (Opcional) Conectar a VBR ---\n    if ($Connect) {\n        Connect-VBRServer -Server $VbrServer -User $VbrUser -Password $VbrPass -ForceAcceptTlsCertificate | Out-Null\n    }\n\n\t# Importar el m\u00f3dulo de Veeam (si no se ha cargado autom\u00e1ticamente)\n\tif (!(Get-Module -ListAvailable Veeam.Backup.PowerShell)) {\n\t\tWrite-Error \"El m\u00f3dulo de Veeam PowerShell no est\u00e1 instalado en este servidor.\"\n\t\treturn\n}\n\t# Obtener los datos de Veeam\n\t$datosVeeam = Get-VBRRestorePoint | Group-Object -Property VMName | ForEach-Object {\n\t\t# Para cada VM, buscamos el punto de restauraci\u00f3n m\u00e1s reciente\t\t\n\t\t$ultimoRP = $_.Group | Sort-Object CreationTime -Descending | Select-Object -First 1\n\t\t$valido = $ultimoRP.CreationTime -ge $umbral24Horas\n\t\t\n\t\t# Creamos el objeto con etiquetas HTML para los colores de \u00e9xito\/error\n\t\t[PSCustomObject]@{\n\t\t\t\"Nombre de VM\"       = $_.Name\n\t\t\t\"Fecha Backup\"       = $ultimoRP.CreationTime\n\t\t\t\"Tipo de Punto\"      = $ultimoRP.Type\n\t\t\t\"Estado 24h\"         = if ($valido) { \"<span class='si'>S\u00cd<\/span>\" } else { \"<span class='no'>NO<\/span>\" }\n\t\t\t\"D\u00edas Antig\u00fcedad\"    = New-TimeSpan -Start $ultimoRP.CreationTime -End (Get-Date) | Select-Object -ExpandProperty Days\n\t\t}\n\t}\n\n}\nfinally {\n    if ($Connect) {\n        Disconnect-VBRServer | Out-Null\n    }\n}\n\n# 4. Mostrar resultados en consola\n$datosVeeam | Sort-Object Cumple24h, VMName | Format-Table -AutoSize\n\n# 4. Convertir a HTML y guardar\n$cuerpoHtml = $datosVeeam | Sort-Object \"Estado 24h\", \"Nombre de VM\" | ConvertTo-Html -Head $estiloCSS -Title \"Reporte de Backups Veeam\" -PreContent \"<h2>Estado de Puntos de Restauraci\u00f3n (\u00daltimas 24h)<\/h2>\"\n\n# Nota: Usamos -Raw y [System.Net.WebUtility]::HtmlDecode para que las etiquetas <span> funcionen\n$htmlFinal = [System.Net.WebUtility]::HtmlDecode($cuerpoHtml)\n$htmlFinal | Out-File $rutaSalida -Encoding UTF8\n\nWrite-Host \"Reporte generado con \u00e9xito en: $rutaSalida\" -ForegroundColor Green\n\n# 5. Abrir el reporte autom\u00e1ticamente (Opcional)\nInvoke-Item $rutaSalida<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1775\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-300x120.png\" alt=\"\" width=\"478\" height=\"191\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-200x80.png 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-300x120.png 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-400x160.png 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-600x240.png 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-768x307.png 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-800x320.png 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-1024x410.png 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-1200x480.png 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-13.45.10-1536x614.png 1536w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3 data-path-to-node=\"16\"><span class=\"ez-toc-section\" id=\"Visualizacion_y_Automatizacion\"><\/span>Visualizaci\u00f3n y Automatizaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li data-path-to-node=\"17\"><strong>Salida en Formato HTML Din\u00e1mico<\/strong>: Para que el reporte sea legible para directores hemos configurado una salida en formato HTML.\u00a0 \u00a0Opcionalmente es posible configurar una salida en formato CSV o a traves de la misma consola PowerShell.<\/li>\n<li data-path-to-node=\"19\"><strong>Programaci\u00f3n mediante Task Scheduler:<\/strong>\u00a0La verdadera magia ocurre cuando automatizas este reporte. Puedes configurar una <b data-path-to-node=\"20\" data-index-in-node=\"81\">Tarea Programada<\/b> en Windows para que el script se ejecute cada ma\u00f1ana a las 8:00 AM y env\u00ede el resultado por correo electr\u00f3nico usando <code data-path-to-node=\"20\" data-index-in-node=\"216\">Send-MailMessage<\/code>.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3 data-path-to-node=\"25\"><span class=\"ez-toc-section\" id=\"Mejores_Practicas\"><\/span>Mejores Pr\u00e1cticas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li data-path-to-node=\"26,0,0\"><b data-path-to-node=\"26,0,0\" data-index-in-node=\"0\">Excluir VMs Replicadas:<\/b> Si usas Replicaci\u00f3n adem\u00e1s de Backup, aseg\u00farate de filtrar los puntos de restauraci\u00f3n para no duplicar datos en el reporte.<\/li>\n<li data-path-to-node=\"26,1,0\"><b data-path-to-node=\"26,1,0\" data-index-in-node=\"0\">Manejo de Errores:<\/b> A\u00f1ade bloques <code data-path-to-node=\"26,1,0\" data-index-in-node=\"33\">Try-Catch<\/code> para gestionar situaciones donde el servidor de Veeam no responda o la sesi\u00f3n haya expirado.<\/li>\n<li data-path-to-node=\"26,2,0\"><b data-path-to-node=\"26,2,0\" data-index-in-node=\"0\">Uso de Tags:<\/b> En infraestructuras de gran tama\u00f1o, usa <b data-path-to-node=\"26,2,0\" data-index-in-node=\"46\">vSphere Tags<\/b> para definir diferentes niveles de SLA (Bronce: 48h, Plata: 24h, Oro: 4h) y adapta el script para leer esos tags.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3 data-path-to-node=\"28\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusi\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p data-path-to-node=\"29\">Automatizar el reporte de SLAs con PowerShell no solo ahorra tiempo, sino que elimina el error humano en la supervisi\u00f3n de la infraestructura. Con este script, pasas de ser un administrador reactivo a uno proactivo que identifica brechas de protecci\u00f3n antes de que se conviertan en un problema.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En entornos virtualizados con VMware vSphere, el cumplimiento de los<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[100,43,61,55],"tags":[85,37,101,90,30,57,58],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam - vLatam<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/patriciocerda.com\/?p=1772\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam - vLatam\" \/>\n<meta property=\"og:description\" content=\"En entornos virtualizados con VMware vSphere, el cumplimiento de los\" \/>\n<meta property=\"og:url\" content=\"https:\/\/patriciocerda.com\/?p=1772\" \/>\n<meta property=\"og:site_name\" content=\"vLatam\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-30T11:51:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1954\" \/>\n\t<meta property=\"og:image:height\" content=\"274\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"pcerda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pcerda\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1772\",\"url\":\"https:\/\/patriciocerda.com\/?p=1772\",\"name\":\"Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam - vLatam\",\"isPartOf\":{\"@id\":\"https:\/\/patriciocerda.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1772#primaryimage\"},\"image\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1772#primaryimage\"},\"thumbnailUrl\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-300x42.png\",\"datePublished\":\"2026-03-30T11:51:13+00:00\",\"author\":{\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a\"},\"breadcrumb\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1772#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/patriciocerda.com\/?p=1772\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1772#primaryimage\",\"url\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02.png\",\"contentUrl\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02.png\",\"width\":1954,\"height\":274},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1772#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/patriciocerda.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/patriciocerda.com\/#website\",\"url\":\"https:\/\/patriciocerda.com\/\",\"name\":\"vLatam\",\"description\":\"El Blog de Patricio Cerda\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/patriciocerda.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a\",\"name\":\"pcerda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1778589913\",\"contentUrl\":\"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1778589913\",\"caption\":\"pcerda\"},\"url\":\"https:\/\/patriciocerda.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam - vLatam","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/patriciocerda.com\/?p=1772","og_locale":"en_US","og_type":"article","og_title":"Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam - vLatam","og_description":"En entornos virtualizados con VMware vSphere, el cumplimiento de los","og_url":"https:\/\/patriciocerda.com\/?p=1772","og_site_name":"vLatam","article_published_time":"2026-03-30T11:51:13+00:00","og_image":[{"width":1954,"height":274,"url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02.png","type":"image\/png"}],"author":"pcerda","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pcerda"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/patriciocerda.com\/?p=1772","url":"https:\/\/patriciocerda.com\/?p=1772","name":"Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam - vLatam","isPartOf":{"@id":"https:\/\/patriciocerda.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/patriciocerda.com\/?p=1772#primaryimage"},"image":{"@id":"https:\/\/patriciocerda.com\/?p=1772#primaryimage"},"thumbnailUrl":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02-300x42.png","datePublished":"2026-03-30T11:51:13+00:00","author":{"@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a"},"breadcrumb":{"@id":"https:\/\/patriciocerda.com\/?p=1772#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/patriciocerda.com\/?p=1772"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/patriciocerda.com\/?p=1772#primaryimage","url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02.png","contentUrl":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-30-a-las-12.59.02.png","width":1954,"height":274},{"@type":"BreadcrumbList","@id":"https:\/\/patriciocerda.com\/?p=1772#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/patriciocerda.com\/"},{"@type":"ListItem","position":2,"name":"Reporte de Cumplimiento de SLAs para VMs de VMware usando PowerShell y Veeam"}]},{"@type":"WebSite","@id":"https:\/\/patriciocerda.com\/#website","url":"https:\/\/patriciocerda.com\/","name":"vLatam","description":"El Blog de Patricio Cerda","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/patriciocerda.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a","name":"pcerda","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/image\/","url":"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1778589913","contentUrl":"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1778589913","caption":"pcerda"},"url":"https:\/\/patriciocerda.com\/?author=1"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1772"}],"collection":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1772"}],"version-history":[{"count":1,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1772\/revisions"}],"predecessor-version":[{"id":1776,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1772\/revisions\/1776"}],"wp:attachment":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}