使用 Powershell 添加 URL 到 Chrome cookie
Using Powershell to add URL to Chrome cookies
我想知道是否有办法在设置中的“始终可以使用 cookie 的网站”下添加 URL 至 Chrome cookie 选项卡。我试图拉取 Json 首选项文件以查看是否可以将它添加到那里但没有看到它。想知道是否有人能指出我正确的方向。
这是我目前的情况:
$LocalAppData = [Environment]::GetFolderPath( [Environment+SpecialFolder]::LocalApplicationData )
$ChromeDefaults = Join-Path $LocalAppData "Google\Chrome\User Data\default"
$ChromePrefFile = Join-Path $ChromeDefaults "Preferences"
$Settings = Get-Content $ChromePrefFile | ConvertFrom-Json >> C:\Temp\Test1.txt
但这并没有给我我想的那样,并且搜索它似乎没有人问过在使用 powershell 之前向这个 section/list 添加一个 URL。
TL;DR 在底部。
美化首选项文件后,我发现这是正确的路径:
$Preferences = Get-Content -Path "C:\Users\xxx\AppData\Local\Google\Chrome\User Data\default\Preferences" | ConvertFrom-Json
$CookieExceptions = $Preferences.profile.content_settings.exceptions.cookies
$CookieExceptions
returns 一个 PSCustomObject:
stackexchange.com,*
-------------------
@{expiration=0; last_modified=13287790992647427; model=0; setting=1}
其中包含一个也具有 PSCustomObject 类型的成员。
$CookieExceptions.'stackexchange.com,*'
returns:
expiration last_modified model setting
---------- ------------- ----- -------
0 13287790939152770 0 1
使用 Get-Member cmdlet,您可以查看 PSCustomObject 有哪些成员:
$CookieExceptions.'whosebug.com,*' | Get-Member -MemberType NoteProperty
returns:
Name MemberType Definition
---- ---------- ----------
expiration NoteProperty string expiration=0
last_modified NoteProperty string last_modified=13287790939152770
model NoteProperty int model=0
setting NoteProperty int setting=1
所以要添加新站点,您可以创建一个类似的对象:
$SiteProperties = [PSCustomObject]@{
expiration = 0
last_modified = 13287790939152770
model = 0
setting = 1
}
然后使用正确的站点名称将其添加到 $CookiePreference:
$CookieExceptions | Add-Member -MemberType NoteProperty -Name "whosebug.com,*" -Value $SiteProperties
现在您有两个站点!
stackexchange.com,* whosebug.com,*
------------------- -------------------
@{expiration=0; last_modified=13287790939152770; model=0; setting=1} @{expiration=0; last_modified=13287790939152770; model=0; setting=1}
不要忘记将其保存到 JSON 首选项文件中。
Set-Content -Path "C:\Users\xxx\AppData\Local\Google\Chrome\User Data\default\Preferences" -Value ($Preferences | ConvertTo-Json -Depth 32)
TL;DR 我不知道所有站点属性的作用以及 Chrome 如何对外部更改首选项文件做出反应。我已经对此进行了简要测试,它似乎有效。下面是整个脚本。祝你好运!
$Preferences = Get-Content -Path $PathToPreferencesFile | ConvertFrom-Json
$CookieExceptions = $Preferences.profile.content_settings.exceptions.cookies
$SiteProperties = [PSCustomObject]@{
expiration = 0
last_modified = 13287793933254853 #WebKit timestamp?
model = 0
setting = 1
}
$CookieExceptions | Add-Member -MemberType NoteProperty -Name "whosebug.com,*" -Value $SiteProperties
Set-Content -Path $PathToPreferencesFile -Value ($Preferences | ConvertTo-Json -Depth 32)
我想知道是否有办法在设置中的“始终可以使用 cookie 的网站”下添加 URL 至 Chrome cookie 选项卡。我试图拉取 Json 首选项文件以查看是否可以将它添加到那里但没有看到它。想知道是否有人能指出我正确的方向。
这是我目前的情况:
$LocalAppData = [Environment]::GetFolderPath( [Environment+SpecialFolder]::LocalApplicationData )
$ChromeDefaults = Join-Path $LocalAppData "Google\Chrome\User Data\default"
$ChromePrefFile = Join-Path $ChromeDefaults "Preferences"
$Settings = Get-Content $ChromePrefFile | ConvertFrom-Json >> C:\Temp\Test1.txt
但这并没有给我我想的那样,并且搜索它似乎没有人问过在使用 powershell 之前向这个 section/list 添加一个 URL。
TL;DR 在底部。
美化首选项文件后,我发现这是正确的路径:
$Preferences = Get-Content -Path "C:\Users\xxx\AppData\Local\Google\Chrome\User Data\default\Preferences" | ConvertFrom-Json
$CookieExceptions = $Preferences.profile.content_settings.exceptions.cookies
$CookieExceptions
returns 一个 PSCustomObject:
stackexchange.com,*
-------------------
@{expiration=0; last_modified=13287790992647427; model=0; setting=1}
其中包含一个也具有 PSCustomObject 类型的成员。
$CookieExceptions.'stackexchange.com,*'
returns:
expiration last_modified model setting
---------- ------------- ----- -------
0 13287790939152770 0 1
使用 Get-Member cmdlet,您可以查看 PSCustomObject 有哪些成员:
$CookieExceptions.'whosebug.com,*' | Get-Member -MemberType NoteProperty
returns:
Name MemberType Definition
---- ---------- ----------
expiration NoteProperty string expiration=0
last_modified NoteProperty string last_modified=13287790939152770
model NoteProperty int model=0
setting NoteProperty int setting=1
所以要添加新站点,您可以创建一个类似的对象:
$SiteProperties = [PSCustomObject]@{
expiration = 0
last_modified = 13287790939152770
model = 0
setting = 1
}
然后使用正确的站点名称将其添加到 $CookiePreference:
$CookieExceptions | Add-Member -MemberType NoteProperty -Name "whosebug.com,*" -Value $SiteProperties
现在您有两个站点!
stackexchange.com,* whosebug.com,*
------------------- -------------------
@{expiration=0; last_modified=13287790939152770; model=0; setting=1} @{expiration=0; last_modified=13287790939152770; model=0; setting=1}
不要忘记将其保存到 JSON 首选项文件中。
Set-Content -Path "C:\Users\xxx\AppData\Local\Google\Chrome\User Data\default\Preferences" -Value ($Preferences | ConvertTo-Json -Depth 32)
TL;DR 我不知道所有站点属性的作用以及 Chrome 如何对外部更改首选项文件做出反应。我已经对此进行了简要测试,它似乎有效。下面是整个脚本。祝你好运!
$Preferences = Get-Content -Path $PathToPreferencesFile | ConvertFrom-Json
$CookieExceptions = $Preferences.profile.content_settings.exceptions.cookies
$SiteProperties = [PSCustomObject]@{
expiration = 0
last_modified = 13287793933254853 #WebKit timestamp?
model = 0
setting = 1
}
$CookieExceptions | Add-Member -MemberType NoteProperty -Name "whosebug.com,*" -Value $SiteProperties
Set-Content -Path $PathToPreferencesFile -Value ($Preferences | ConvertTo-Json -Depth 32)