加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

group-policy – 以编程方式或通过脚本“触摸”软件部署组策略

发布时间:2020-12-13 23:58:26 所属栏目:Windows 来源:网络整理
导读:我有一个使用 Windows Installer的内部应用程序.对此应用程序的每次更新都是“主要升级”(不同的产品代码,相同的升级代码),并且它调用RemoveExistingProducts. (实际上,这意味着无论何时创建新构建,只需单击MSI文件即可安装它,因为它将卸载旧版本,然后安装新
我有一个使用 Windows Installer的内部应用程序.对此应用程序的每次更新都是“主要升级”(不同的产品代码,相同的升级代码),并且它调用RemoveExistingProducts. (实际上,这意味着无论何时创建新构建,只需单击MSI文件即可安装它,因为它将卸载旧版本,然后安装新版本.)

它目前通过组策略中的计算机配置进行部署.任何链接的GPO都会在下次启动时安装该软件,这非常有用.

我还有一个持续集成服务器(TeamCity),每当我们提交源代码控制并“部署”它时,就会为这个软件构建和运行测试.我甚至可以将新构建的MSI文件复制到网络共享以准备部署.

不幸的是,作为集成过程的一部分,我没有看到实际告诉GPO以编程方式重新部署新更新的MSI文件的方法.

如果我只是覆盖现有的MSI文件并且不接触GPO,那么安装了旧版MSI的机器就不会注意到这一变化,而当新的机器找不到包含产品代码的MSI文件时,它们会变得很糟糕.组策略管理编辑器生成的脚本.很好,很有意义.

如果我只是覆盖现有的MSI文件并在GPME中单击“重新部署应用程序”,则会出现相同的行为.同样,我们似乎不满意我们正在尝试使用MSI文件重新部署,该文件的包代码与GPME生成的脚本中的包不匹配.很好,很有意义.

什么工作是右键单击GPME中的安装包,点击“立即删除”,然后右后方添加安装包 – 这将创建一个新的* .aas脚本并删除旧包并在下一个安装新包开机.有没有办法通过批处理脚本执行此操作,我可以将其添加到集成服务器的构建过程中?

谢谢!

后续更新

在回顾了Evan的评论I ended up just writing a small batch script that runs at Startup之后.我还写了一个名为msicheck的小工具,它确定是否安装了给定的MSI包.这足以满足我的需求,并且比浏览LDAP规范的页面要好得多! =)

我曾经有过做类似事情的愿望,并且过去曾对这个话题做过一些研究.

没有暴露的API,我已经能够找到组织策略编辑器正在做的事情来创建这些应用程序广告脚本(.aas)文件和AD中的相应记录. PowerShell组策略API允许您配置基于注册表的设置,但不能配置其他组策略扩展的设置.

现在有一个对Group Policy Software Installation Protocol Extension的引用(感谢欧盟的反垄断解决方案!),我想你可以试着自己动作引擎来执行任务.执行添加包和.aas文件格式所需的LDAP事务就在那里.它看起来有点令人生畏(尽管很有趣)……

坦率地说,您对细节的关注:部署测试值得赞扬.我希望你写的是我的客户使用的软件.您单独使用Windows Installer这一事实使您处于领先地位.您了解组策略软件部署并且实际上正在测试它让我头晕目眩!我希望一些可测量的开发人员能够像你明确表达的那样关心.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读