Comprobar Hyper-V desde Pester

Pester

Hace un tiempo escrib铆 un post sobre que era Pester y como funcionaba este gran proyecto dentro de PowerShell.

B谩sicamente, Pester es un framework de testing unitario, que permite comprobar el correcto funcionamiento de cierto c贸digo de forma aislada.

En esta oportunidad, quiero compartir un peque帽o test para comprobar Hyper-V desde Pester. Obteniendo como resultado de la ejecuci贸n del mismo si lo servidores especificados se encuentran activos.

Test

Para ello vamos a definir el siguiente bloque de c贸digo que enlista y describe los componentes que son parte activa del servidor y las comprobaciones necesarias:

#Requires -RunAsAdministrator
#Requires -Modules Pester
#Requires -Version 4.0

<#
.Synopsis
    Test de validaci贸n operativa para Microsoft Hyper-V
.DESCRIPTION
    Se requiere que la cuenta que ejecuta el test tenga privilegios administrativos locales sobre los servidores especificados. 
    .EXAMPLE
    Invoke-Pester -Script .\HyperV.Tests.ps1
.NOTES
    Ejecutar bajo la propia responsabilidad
.FUNCTIONALITY
    Test de validaci贸n funcional
#>

Describe "Basic validation of the Hyper-V servers" {
    $Servers = @('HV-01','HV-02')

    foreach ($ComputerName in $Servers) {
    $Session = New-PSSession -ComputerName $ComputerName

    It "The Hyper-V VM Management service on $ComputerName should be running" {
        (Invoke-Command -Session $Session {Get-Service -Name  vmms}).status |
        Should be 'Running'
    }

    It "The Windows Management Instrumentation service on $ComputerName should be running" {
        (Invoke-Command -Session $Session {Get-Service -Name winmgmt}).status  |
        Should be 'Running'
    }

    It "The Get-VMHost cmdlet on $ComputerName should not throw any errors" {
        {Invoke-Command -Session $Session {Get-VMHost}} |
        Should Not Throw
    }

    It "The Get-VM cmdlet on $ComputerName should not throw any errors" {
        {Invoke-Command -Session $Session {Get-VM}} |
        Should Not Throw
    }


    Remove-PSSession -Session $Session

    }
}

Al inicio del script se detalla el m贸dulo requerido, versi贸n y permisos necesarios para ser ejecutado.

Posteriormente quiero compartir el resultado de la ejecuci贸n del test en mi Notebook, ya que tiene el rol de Hyper-V habilitado, resultando la siguiente salida en consola:

Comprobar Hyper-V desde Pester

Happy scripting!

Comments