是否可以使用脚本安装chrome扩展

问题描述 投票:0回答:1

我有一个测试版 Chrome 扩展,我不会在 Chrome 商店上发布。
我有几个原因不在 chrome 上发布它,所以请不要建议需要发布它的解决方案...

我已经有 60 个免费用户和 2 个付费用户,尽管我的扩展尚未发布,但获取用户的过程非常复杂,因为要安装任何未托管在 chrome 商店上的扩展,谷歌会变得极其复杂,因此一般电脑用户做不到。

考虑到我的用户信任我并且愿意在他的 Windows 计算机上运行 .exe .bat 或 .ps1。有没有办法通过可执行文件安装chrome扩展?

我尝试过但没有成功:

  • 在 chrome 文件夹内的
    external_extensions.json
    文件夹内的
    default_apps
    添加扩展程序信息 [没有任何反应]
  • 在 chrome 文件夹内的
    external_extensions.json
    文件夹内的
    Extensions
    添加扩展程序信息 [没有任何反应]
  • 双击扩展程序(错误 CRX_REQUIRED_PROOF_MISSING)
  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Google\Chrome\Extensions\EXTENSION_ID
    添加 Windows 注册表项 [没有任何反应]

如果您知道有什么方法可以实现这一目标,请告诉我......
如果有人知道

--remote-debugging-port
标志并且它是否允许执行任何技巧

google-chrome google-chrome-extension
1个回答
0
投票
  1. 找到扩展程序的 CRX 文件 $extensionPath = "C:\Path\To\Your\Extension.crx" # 替换为实际路径

  2. 获取分机的ID(可选,但建议用于管理) $extensionID = (Get-ItemProperty $extensionPath).VersionInfo.ProductVersion

  3. 启动 Chrome 并启用远程调试 启动进程-FilePath“chrome.exe”` -ArgumentList“--远程调试端口=9222”

  4. 连接远程调试口 $chrome = 新对象 System.Net.Sockets.TcpClient("127.0.0.1", 9222)

  5. 发送扩展安装命令 $bytes = [System.Text.Encoding]::ASCII.GetBytes("POST /json/extensions HTTP/1.1

    r
    n" + “主机:127.0.0.1:9222
    r
    n”+ “内容类型:application/json
    r
    n
    r
    n”+ "{""file"":""$extensionPath""}
    r
    n") $chrome.GetStream().Write($bytes, 0, $bytes.Length)

  6. 等待扩展安装(检查成功消息) $response = $chrome.GetStream().ReadToEnd()

  7. (可选)将扩展 ID 添加到注册表中进行管理 如果 ($扩展ID) { $chromeRegPath = "HKCU:\Software\Google\Chrome\NativeMessagingHosts$extensionID" 新项目 $chromeRegPath -Force }

  8. 关闭连接 $chrome.Close()

© www.soinside.com 2019 - 2024. All rights reserved.