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:
Happy scripting!
Comments