【发布时间】:2021-01-06 08:14:33
【问题描述】:
我有一个通过 WiX 安装程序运行的简单 PowerShell 脚本。如您所见,它会从 PFX 文件中获取指纹,然后循环遍历证书存储区,如果找到,则将其删除。
$ConfirmPreference = 'None'
# server certificate path
$serverCertFilePath = "$dataTransferCertificatePath\server.pfx"
# get thumbprint from server cert info
$serverCertInfo = Get-PfxCertificate -FilePath $serverCertFilePath
$serverThumbprint = $serverCertInfo.Thumbprint
Get-ChildItem -Path Cert:\*$serverThumbprint -Recurse | Remove-Item -Force
我已经用-Force 尝试了$ConfirmPreference = 'None' 和Remove-Item
当我从提升的 PowerShell 运行上述两行时它可以工作!
之后我使用 WiX 安装程序运行相同的脚本:
powershell.exe -NoLogo -NonInteractive –ExecutionPolicy Unrestricted -File "Remove-Certificate.ps1"
然后我得到以下信息:
该操作是在用户根存储上进行的,并且不允许使用 UI。
WiX 自定义操作调用如下:
<CustomAction Id="CA_RemoveCertificate_set"
Property="CA_RemoveCertificate"
Execute="immediate"
HideTarget="yes"
Value='"!(wix.PowerShell)" -NoLogo -NonInteractive –ExecutionPolicy Unrestricted -File "Remove-Certificate.ps1"' />
<CustomAction Id="CA_RemoveCertificate"
BinaryKey="WixCA"
DllEntry="CAQuietExec64"
Execute="deferred"
Return="check"
Impersonate="yes" />
任何帮助将不胜感激。
【问题讨论】:
标签: powershell wix certificate custom-action