1

我正在尝试在 win10 上安装 UWP 应用程序。我想自动化整个安装过程(安装证书、依赖项等...)

所以我写了一个调用 2 个 Powershell 脚本的小批处理文件。一个安装依赖项(检查它们是否已经安装)。另一个安装证书并将应用程序添加到系统中。

我将证书添加到:

certutil -Enterprise -addstore "TrustedPublisher" .\cert.crt
certutil -Enterprise -addstore "Root" .\cert.crt
Import-Certificate -CertStoreLocation Cert:\LocalMachine\TrustedPublisher -FilePath .\cert.crt
Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root -FilePath .\cert.crt
Add-AppxPackage -Path .\app.appxbundle

现在事情是我的客户希望我在没有管理员权限的情况下这样做。

因此,我认为为 CurrentUser 安装它会起作用,因为在那里安装证书不需要管理员权限。

所以我像这样改变了我的脚本

certutil -addstore -user -f "TrustedPublisher" .\cert.crt
certutil -addstore -user -f "Root" .\cert.crt
Import-Certificate -CertStoreLocation Cert:\CurrentUser\TrustedPublisher -FilePath .\cert.crt
Import-Certificate -CertStoreLocation Cert:\CurrentUser\Root -FilePath .\cert.crt
Add-AppxPackage -Path .\app.appxbundle

还尝试添加到“受信任的人”和“我的”位置。

安装没有管理员权限的证书工作正常。但是安装应用程序本身失败并出现错误。

“Add-AppxPackage:部署失败,HRESULT:0x800B0109,已处理证书链,但在信任提供者不信任的根证书中终止”

所以证书有点被发现,但它不受信任。所以我的问题是:

  1. 为什么即使将证书安装在“CurrentUSer/TrutedPublisher”(与 LocalMachine/TrustedPublisher 不同)中,系统也不“信任”证书?
  2. 有没有办法在没有管理员权限的情况下将证书安装到 localMachine?
  3. 我可以通过将应用程序定向到 CurrentUser 中已安装的证书来安装应用程序吗?

我对 Windows 上的整个部署内容很陌生,所以我希望这些问题有意义:)

4

1 回答 1

1
  1. 如果应用程序安装到 -system-,那么它将针对 LocalMachine/TrustedPublisher 进行验证。这是一种基本的安全机制,可防止随机用户通过“信任”证书并在没有管理员权限的情况下安装随机恶意软件来绕过安全性;然后可以由另一个用户运行。
  2. “没有管理员权限”安装证书的正确方法是使用组策略安装证书,请参阅使用组策略将证书分发到客户端计算机
  3. 不,不要试图绕过安全措施。基本情况是,您需要管理员才能在 LocalMachine/TrustedPublisher 中安装证书或安装应用程序。最简单的方法是先使用 GPO 安装 Cert。
于 2019-04-26T15:17:36.883 回答