![无需注销即可更新组策略安装的软件](https://linux22.com/image/484942/%E6%97%A0%E9%9C%80%E6%B3%A8%E9%94%80%E5%8D%B3%E5%8F%AF%E6%9B%B4%E6%96%B0%E7%BB%84%E7%AD%96%E7%95%A5%E5%AE%89%E8%A3%85%E7%9A%84%E8%BD%AF%E4%BB%B6.png)
我们的 IT 支持部门发布了我通过组策略编写的内部软件产品。
是否可以强制更新特定的组策略软件安装,而无需要求用户注销并重新登录他们的计算机?
答案1
除非用户重新启动计算机(在用户登录之前,GPO 中的计算机对象会被应用),否则软件无法安装/升级。也许 Vista 可以做到这一点,我不确定 - 但对于 XP,您确实必须重新启动。
答案2
在命令 shell 中你可以运行
gpupdate /force
这将(正如命令所暗示的那样)强制更新组策略。它还可以定制为使用以下开关更新用户或计算机策略
/目标:计算机
或者
/目标:用户
答案3
对于Win 2003:
gpupdate /force /target:computer
对于 Win 2000:
secedit /refreshpolicy machine_policy /enforce
不确定 XP,但你可以尝试两者
答案4
也许为用户创建一个计划任务,该任务运行 vbscript 或其他程序来更新应用程序。该脚本必须验证可执行文件的版本,然后替换或运行更新任务。
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\sharedfolder\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()