История браузера с powershell - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь создать скрипт, который будет извлекать всю историю моего браузера, проблема в том, что я не могу заставить его работать с точной ссылкой и датой, когда сайт был посещен.

МожетКто-нибудь может мне помочь?

Я уже пробовал эту страницу, но все еще не могу получить информацию о дате / времени / полную ссылку.

Экспорт истории Chrome с помощью Powershell

function Get-ChromeHistory {
            $Path = "$Env:systemdrive\Users\$UserName\AppData\Local\Google\Chrome\User Data\Default\History"
            if (-not (Test-Path -Path $Path)) {
                Write-Verbose "[!] Could not find Chrome History for username: $UserName"
            }
            $Regex = '(htt(p|s))://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)*?'
            $Value = Get-Content -Path "$Env:systemdrive\Users\$UserName\AppData\Local\Google\Chrome\User Data\Default\History"|Select-String -AllMatches $regex |% {($_.Matches).Value} |Sort -Unique
            $Value | ForEach-Object {
                $Key = $_
                if ($Key -match $Search){
                    New-Object -TypeName PSObject -Property @{
                        User = $UserName
                        Browser = 'Chrome'
                        DataType = 'History'
                        Data = $_
                    }
                }
            }        
        }

Фактический результат: Chrome | myusername | https://www.stackoverflow.com/

Ожидаемый результат: Chrome | username | 06/21/2019 11:05 | https://stackoverflow.com/questions/ask

1 Ответ

0 голосов
/ 22 июня 2019

В дополнение к проблеме синтаксического анализа SQLLite в приведенном выше коде есть две ошибки: $ UserName не указано, и регулярное выражение находит только URL-адреса HTTP.Ниже приведена исправленная версия, которая получает как HTTP, так и HTTPS URL верхнего уровня.К сожалению, он не включает в себя путь к ресурсу, который, как вам показалось, вам нужен, но его невозможно надежно получить из файла SQLLite.В конце URL-адреса в файле нет разделителя.

function Get-ChromeHistory {
    $Path = "$Env:SystemDrive\Users\$Env:USERNAME\AppData\Local\Google\Chrome\User Data\Default\History"
    if (-not (Test-Path -Path $Path)) {
        Write-Verbose "[!] Could not find Chrome History for username: $UserName"
    }
    $Regex = '(http|https)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)*?'
    $Value = Get-Content -Path $path | Select-String -AllMatches $regex |% {($_.Matches).Value} |Sort -Unique
    $Value | ForEach-Object {
        $Key = $_
        if ($Key -match $Search){
            New-Object -TypeName PSObject -Property @{
                User = $env:UserName
                Browser = 'Chrome'
                DataType = 'History'
                Data = $_
            }
        }
    } 
}
...