Cómo ver los discos que tienen errores mediante script de PowerShell

Compartir

Sigue leyendo para descubrir cómo ver los discos que tienen errores mediante un script de PowerShell que nos permita ver en un momento cual es su estado, o para poder automatizar una tarea que monitorice el estado cada “x” tiempo.

Como todo aquel administrador de sistemas que peine canas ya sabe, tener claro el estado de los discos de nuestros servidores es algo crucial, porque un error catastrófico en los discos puede hacer que caigan sobre nosotros las siete plagas de Egipto.

No hay situación más estresante que tener una pérdida de storage, y lo digo por experiencia… Bueno, sí, hay algo peor, que es sufrir la pérdida de almacenamiento y que se complemente maravillosamente con una copia de seguridad inexistente o mal realizada.

Por eso debemos tener en mente la necesidad de chequear el estado de los discos de nuestros servidores (y estaciones de trabajo más delicadas) de vez en cuando.

 

Consultando el estado de un disco mediante script de PowerShell:

Podemos usar el comando “get-physicaldisk” para comprobar el estado de los discos conectados a nuestro sistema.

Si lanzamos el comando sin modificadores:

# get-physicaldisk

Se muestra el estado de los discos conectados. Si miramos los estados, podemos ver que, en principio, dado que esta máquina no tiene problemas, muestra los discos como “Healty” (o sea sanos o sin errores).

Existen varios estados para los discos:

  • Healthy: Sanos o sin errores. Se mostrarán en los casos en los que los discos no tengan ningún tipo de error.
  • Failure: Fallo o con errores. Se muestra cuando el sistema chequea algún tipo de fallo, que puede ser físico o lógico.
Imagen. Consultamos el estado de los discos físicos mediante script PowerShell
Imagen. Consultamos el estado de los discos físicos

Viendo estos estados, podríamos decir que tenemos la posibilidad de hacer la búsqueda de discos en función de su estado.

Dado que al devolver los estados de los discos nos muestra una de esas cadenas, podemos filtrar para encontrar lo que nos interese.

Para el filtrado podemos usar las comparaciones:

  • eq: Equal, o igual, hará match cuando la cadena sea idéntica a la comparada.
  • ne: No equal, o distintas, se mostrará la cadena que no concuerde con lo comparado.

Haciendo uso de esto, podemos lanzar el siguiente comando que nos permite ver solo los discos que están “sanos”:

# get-physicaldisk | Where-Object { $_.HealthStatus -eq «Healthy» }

O este otro, que nos muestra los que tienen algún error, o sea, no están “sanos”:

# get-physicaldisk | Where-Object { $_.HealthStatus -ne «Healthy» }

Aunque también lo podríamos hacer mediante la consulta en relación con los discos con fallos, mediante la búsqueda de “Failure”, de la misma manera que antes.

# get-physicaldisk | Where-Object { $_.HealthStatus -eq «Failure» }

O este otro, que nos muestra los que no tienen errores, o sea, que están “sanos”:

# get-physicaldisk | Where-Object { $_.HealthStatus -ne «Failure» }

Imagen. Consultamos los discos físicos que tienen un estado healty (sin errores) mediante script PowerShell
Imagen. Consultamos los discos físicos que tienen un estado healty (sin errores)

 

Construyendo nuestro script de PowerShell para comprobar la salud de los discos:

Ahora que ya sabemos hacer consultas del estado de los discos, lo natural sería hacer la consulta híbrida, mediante la mezcla de ambos, o mediante el uso de estructuras como “if/else” o “try/catch”, y es justo esto lo que debemos explorar a continuación.

En este caso, mediante una estructura de “if/else” en la cual pasamos una variable “$Disk” que busca ver si los discos están sanos (-eq “Healty”) o no y, si están sanos, muestra un mensaje por pantalla y si no lo están manda otro mensaje, mostrando en ambos casos un listado completo de los discos para que el que lanza el comando pueda revisar donde está el problema, si es que lo hay.

$Disks = get-physicaldisk | Where-Object { $_.HealthStatus -eq «Healthy» }

if ($disks) {

    write-output «Comprobacion de Discos: Los discos estan sanos»

    write-output $disks

}

else {

    write-output «Comprobacion de Discos: Se han detectado problemas en los discos»

    write-output «Por favor compruebe su estado»

    write-output $disks

    }

Con esto deberíamos tener un mínimo con lo que empezar a trabajar.

Conclusiones

Como puedes ver, ver los discos que tienen errores mediante un script de PowerShell nos permite tener algo más de control sobre nuestra infraestructura, teniendo claro si hay algún problema en nuestros discos físicos. Usando un par de comandos bien encadenados se puede realizar la tarea de manera semiautomática, pudiendo automatizarla mediante su programación, para monitorizar el estado y que nos avise si hay problemas.

La ejecución es sencilla y debería estar soportada por todos los sistemas Microsoft Windows actuales, ya que son cmdlets básicos de PowerShell, pero si encontraras algún problema en su ejecución puedes contactar con nosotros para que intentemos echarte una mano.

Si quieres aprender otros scripts y trucos de PowerShell puedes echar un ojo a nuestro blog.

¡Gracias por leernos!

Categorías:Recursos Sysadmin

Otros posts que te pueden interesar

13 de noviembre de 2024
¡Tenemos nuevas distros en Servidores! En respuesta a las múltiples solicitudes de varios de nuestros partners, se ha habilitado
13 de noviembre de 2024
¡Ya es posible desplegar plantillas de diferentes softwares desde el asistente de despliegue de servidores! Estrenamos esta funcionalidad del
13 de noviembre de 2024
¡Integración con QNAP! Ya es posible crear copias sincronizadas entre dispositivos de almacenamiento local QNAP y nuestro servicio de

Rellena el formulario y nuestro equipo de Sales contactará contigo lo antes posible.

growth@jotelulu.com  |  +34 911 333 712  |  jotelulu.com 

Puedes darte de baja de estas comunicaciones en cualquier momento.  Consulta nuestra Política de privacidad.

Precios competitivos para la pyme y mucho más margen para el partner

Disaster Recovery ha sido diseñado, implementado y puesto en producción teniendo en cuenta dos premisas: Debe tener un precio atractivo para la pyme a la vez que deja un buen margen de beneficio a la empresa de IT que lo comercializa y gestiona.

DR_buen_precio_y_mas_margen

De esta manera, Disaster Recovery pretende ser un producto diferencial que permita incrementar la seguridad de todo tipo de empresas de manera asequible e implicando, además, rentabilidad para el distribuidor que lo comercializa.

Protege la infraestructura de tus clientes

Disaster Recovery permite replicar cualquier suscripción de infraestructura (Escritorio Remoto y Servidores) en otra zona de disponibilidad creando un entorno de alta disponibilidad y blindando así el servicio.

Replica en pocos pasos no sólo los discos sino todos los elementos que forman parte de cada suscripción:

  • Servidores: Instancias, discos, reglas de firewall, redes, IPs…
  • Escritorio Remoto: Usuarios, Aplicaciones, Licencias, Personalización…
DR_blinda_la_infraestructura

Tratamos de hacer fácil lo difícil

Las herramientas de Disaster Recovery existentes necesitan de conocimientos avanzados para poder ser gestionadas, implicando, muchas veces, un expertise difícil de alcanzar.

 

Disaster Recovery de Jotelulu busca hacer fácil lo difícil y plantea un despliegue muy sencillo basado en una configuración de tres pasos:

Origin (Primary Site)
Determina la ubicación de origen de la suscripción sobre la que se va a establecer el servicio de Disaster Recovery.

Destino (Recovery Site)
Establece la ubicación de destino (zona de disponibilidad) en la que quieres que se despliegue el Recovery Site.

Características de la réplica
Establece los datos asociados al número de copias que se quieren guardar y la frecuencia con la que se va a llevar a cabo la réplica.