使用Powershell的浏览器历史记录

时间:2019-06-21 17:10:17

标签: powershell google-chrome browser-history

我正在尝试创建一个脚本来检索我所有的浏览器历史记录,问题是我无法使其使用确切的链接以及访问该网站的日期时间来工作。

有人可以在这里帮助我吗?

我已经尝试过此页面,但是仍然无法获取日期时间/完整的链接信息。

Export Chrome History with 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 :(得分:0)

除了SQLLite解析问题外,上面的代码还有两个错误:未指定$ UserName,而正则表达式仅查找HTTP URL。 以下是同时获取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 = $_
            }
        }
    } 
}