$files = Get-PSDrive -PSProvider FileSystem | foreach { (Get-ChildItem ($_.Root) -Recurse -force -include ("*.jar", "*.war", "*.ear") -ea 0 ) } | select -Unique if ($files) { $log4jFiles = @() foreach ( $file in $files ) { $extn = [IO.Path]::GetExtension($file) if ($extn -eq ".jar" ) { if (Get-Content $file.FullName | select-string "JndiLookup.class") { $log4jFiles += $file.FullName } } Elseif ( $extn -eq ".war" -or $extn -eq ".ear" ) { if (Get-Content $file.FullName | select-string "log4j-core-2\.((\d(\-.*)?|1(?!(6|2))[0-5]|12\.[01])(\.\d)?)\.jar" ) { $log4jFiles += $file.FullName } } } if ($log4jFiles) { Write-Output "Potential Log4j vulnerabilities were found.`n" $log4jFiles } Else { "No Log4j vulnerabilities were found" } } Else { "No Log4j vulnerabilities were found" }