Búsqueda de sitios web

PowerShell: compruebe si el controlador VMware vShield está instalado y ejecutándose


El controlador VMware vShield es un controlador del sistema llamado vsepflt.

Es fácil verificar el estado de este controlador ejecutando msinfo32.exe y navegando a "Controladores del sistema de entorno de software".

Sin embargo, esto puede resultar un poco engorroso en un entorno con más de una máquina virtual. Por eso recomiendo usar PowerShell en su lugar.

La categoría Controladores del sistema que muestra msinfo32 no es más que Win32_SystemDriver de clase WMI, por lo que escribí una función breve que se puede usar para inventariar el estado del controlador VMware vShield. Toma un parámetro, -ComputerName y devuelve un PSCustomObject que contiene el nombre del servidor inventariado y las propiedades básicas del controlador.

Aquí hay un ejemplo:

Podemos ver fácilmente que Server01 no tiene el controlador VShield instalado, Server02 está fuera de línea (o al menos no responde) y Server03 y Server04 funcionan bien.

La función incluye la siguiente consulta en una función avanzada de PowerShell:

Get-WmiObject -Class Win32_SystemDriver -Filter “nombre=‘vsepflt’ ” -ComputerName $Computer -ErrorAction Stop

function Get-SWVShieldStatus
{
    [Cmdletbinding()]
    Param(
        [Parameter(Mandatory,ValueFromPipeline)]
        [String[]]
        $ComputerName
    )
    Process
    {
        Foreach($Computer in $ComputerName)
        {
            Try
            {
                $VShieldDriver = Get-WmiObject -Class Win32_SystemDriver -Filter "name='vsepflt'" -ComputerName $Computer -ErrorAction Stop
                Write-Verbose -Message "Successfully connected to $Computer"
                [PSCustomObject]@{
                    ComputerName = $Computer
                    DisplayName = $VShieldDriver.DisplayName
                    Name = $VShieldDriver.Name
                    State = $VShieldDriver.State
                    Status = $VShieldDriver.Status
                    Started = $VShieldDriver.Started
                }
            }
            Catch
            {
                Write-Verbose -Message "Failed to inventory $Computer"
                Write-Error -Exception $_.Exception -Message "Failed to inventory $Computer" -Category ConnectionError
                Continue
            }
        }
    }
}

Artículos relacionados