检查 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
}
我正在有效地尝试实现以下 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
}