我有一个脚本可以安装软件并记录正在发生的事情。在安装结束时,我使用命令来检查软件是否通过注册表安装。以下是该脚本的一部分:
#Install Adobre Reader
Write-Verbose "$(Get-Date): Installing Adobe Reader"
$AdobeInstaller = "\\server\AcroRead.msi"
$AdobeArgs = 'TRANSFORMS="\\server\AcroRead.mst" /qn /norestart'
Start-Process $AdobeInstaller $AdobeArgs -Wait
#Check Adobe Reader Install
$InstalledProgs2 = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select-Object DisplayName
$CheckProg2 = $InstalledProgs -like "*Adobe Acrobat Reader DC*"
if ( $CheckProg2 ) {
Write-Verbose "$(Get-Date): Adober Reader install finished successfully"
} else {
Write-Verbose "$(Get-Date): Adobe Reader install failed"
}
脚本等待安装程序完成,但应始终报告为" Adobe Reader安装失败"即使它已安装。如果我跑"检查"初始脚本完成后,脚本的一部分工作正常。在我看来,PowerShell在PowerShell的开头缓存当前的注册表,但没有看到新的安装。是否有命令刷新这个或者我的想法不正确?