PowerShell: VMware vShield sürücüsünün kurulu ve çalışır durumda olup olmadığını kontrol edin


VMware vShield sürücüsü vsepflt adlı bir sistem sürücüsüdür.

Msinfo32.exe dosyasını çalıştırıp “Yazılım Ortam Sistemi Sürücüleri”ne giderek bu sürücünün durumunu kontrol etmek kolaydır.

Ancak birden fazla sanal makinenin bulunduğu ortamlarda bu biraz zahmetli olabilir. Bu yüzden bunun yerine PowerShell kullanmanızı öneririm.

Msinfo32 tarafından görüntülenen Sistem Sürücüleri kategorisi, WMI sınıfı Win32_SystemDriver'dan başka bir şey değildir, bu nedenle VMware vShield sürücüsünün durumunu envanterlemek için kullanılabilecek kısa bir işlev yazdım. -ComputerName parametresini alır ve envantere kaydedilen sunucunun adını ve sürücünün temel özelliklerini içeren bir PSCustomObject döndürür.

İşte bir örnek:

Server01'de VShield sürücüsünün kurulu olmadığını, Server02'nin çevrimdışı olduğunu (veya en azından yanıt vermediğini) ve Server03 ile Server04'ün düzgün çalıştığını kolaylıkla görebiliriz.

İşlev, aşağıdaki sorguyu bir PowerShell gelişmiş işlevinde sarar:

Get-WmiObject -Class Win32_SystemDriver -Filter “name=‘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
            }
        }
    }
}

İlgili makaleler