Group-Policy
使用組策略升級程序
我正在嘗試通過 GPO 安裝已安裝在某些機器上的程序的新版本。目前,如果沒有安裝以前版本的程序,該策略是基於使用者的,並且可以正常工作。如果安裝了舊版本的程序,則該策略不執行任何操作,但仍認為成功。舊版本的程序是在每台機器上手動安裝的,所以我無法進行升級。
有沒有一種簡單的方法可以替換或刪除舊版本?我想過讓另一個策略刪除舊版本,但這似乎有點草率。
如果該應用程序列在添加/刪除程序中,您可以確定要執行先前的 msi 命令以進行全新安裝。通常該條目位於HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall和特定的 UninstallString 上,例如 MsiExec.exe /I{23170F69-40C1-2702-0920-000001000000}。
因此,您可以執行 GPO 以在之前執行 CMD 執行該命令 con Computer 啟動,然後推送新應用程序。
這是使用 VBS 的最後一個版本重新安裝我的 Jabber 的一個範例:
On Error Resume Next DIM fso Dim version Set fso = CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") x86=wshShell.ExpandEnvironmentStrings("%PROGRAMFILES(x86)%")&"\Cisco Systems\Cisco Jabber\CiscoJabber.exe" x64=wshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")&"\Cisco Systems\Cisco Jabber\CiscoJabber.exe" If (fso.FileExists(x86) or fso.FileExists(x64)) Then version= CreateObject("Scripting.FileSystemObject").GetFileVersion(x86) if (strcomp(version,"",1)=0) then version= CreateObject("Scripting.FileSystemObject").GetFileVersion(x64) 'Wscript.echo "x64" end if 'Wscript.Echo version & " en x86" if (strcomp(version,"11.5.1.29337",1)=0) then 'Wscript.Echo "Tiene la ultima version" else 'Wscript.Echo "Updating" WshShell.Run "msiexec.exe /I ""\\server\sharefolder\CiscoJabberSetup.msi"" /quiet" end if Else 'WScript.Echo("Install as new app") 'WshShell.Run "msiexec.exe /I ""\\server\sharefolder\CiscoJabberSetup.msi"" /quiet" End If WScript.Quit()