我正在尝试在 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,已处理证书链,但在信任提供者不信任的根证书中终止”
所以证书有点被发现,但它不受信任。所以我的问题是:
- 为什么即使将证书安装在“CurrentUSer/TrutedPublisher”(与 LocalMachine/TrustedPublisher 不同)中,系统也不“信任”证书?
- 有没有办法在没有管理员权限的情况下将证书安装到 localMachine?
- 我可以通过将应用程序定向到 CurrentUser 中已安装的证书来安装应用程序吗?
我对 Windows 上的整个部署内容很陌生,所以我希望这些问题有意义:)