检查 Windows 上是否加载了驱动程序

Check if a Driver is Loaded on Windows

我正在有效地尝试实现以下 PowerShell 函数:

# Checks for the presence of a loaded driver.
function Check-Driver($Driver) {
    ...
}

我环顾四周,没有找到执行此操作的好方法。如果我有一个内核调试器,我可以 运行 lm 看到一切,但我想为我们的 CI 自动化一些东西来验证事情是否设置在正确的状态。我想出了一种使用 verifier.exe 的方法(如下),但我不喜欢为了检查这个而必须更改系统状态。

# Checks for the presence of a loaded driver.
function Check-Driver($Driver) {
    $Found = $false
    try {
        $Start = verifier.exe /volatile /adddriver $Driver
        $Stop = verifier.exe /volatile /removedriver $Driver
        $Found = $Stop.Contains("An instance of the service is already running")
    } catch { }
    $Found
}

我发现 driverquery /v 包含完整的文件路径,所以我可以用它来匹配文件名。

# Checks for the presence of a loaded driver.
function Check-Driver($Driver) {
    $Found = $false
    try {
        $Found = (driverquery /v | Select-String $Driver).Matches[0].Success
    } catch { }
    $Found
}