首页 > 解决方案 > 检查是否在 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
}

标签: windowspowershelldriver

解决方案


我发现它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
}

推荐阅读