-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheckDLLs.ps1
29 lines (25 loc) · 951 Bytes
/
checkDLLs.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Get the DLL file path from user input
$dllPath = Read-Host "Enter the DLL file path"
# Get all running processes
$processes = Get-Process
# Loop through each process
foreach ($process in $processes) {
$processName = $process.ProcessName
# Check if the DLL is loaded in the process
try {
$loadedModules = Get-Process -Id $process.Id -Module -ErrorAction Stop
$isDllLoaded = $loadedModules.ModuleName -contains (Get-Item -Path $dllPath).Name
} catch {
# Handle access denied error gracefully
if ($_.Exception.Message -like "*Cannot enumerate the modules*") {
Write-Host "Access denied for process '$processName'"
continue
} else {
Write-Host "Failed to retrieve modules for process '$processName': $($_.Exception.Message)"
continue
}
}
if (!$isDllLoaded) {
Write-Host "DLL not loaded in process '$processName'"
}
}