禁用自动更新安装开关?
Disabling auto updates install switch?
在我当前的环境中,VsCode 正在通过 SCCM 部署给用户,因此他们能够在没有管理员权限的情况下安装应用程序。当前安装支持 /Silent 等开关,但似乎没有任何其他开关可以在安装应用程序时将自动更新定义为默认关闭。这样做的原因我相信你们都知道 VSCode 会提示用户让他们知道有更新可用。已经进行了一些深入的挖掘,并且非常详细,您可以更改 settings.Json 文件以禁用更新,如果这是 'system wide' 即(C:\Program Files\Microsoft VS Code),那就太好了设置文件,但详细 Here 它指向 %appdata%(用户设置)。
因此,从理论上讲,您可以在安装时查询用户,然后只需执行一些 powershelly 魔术,将所需的 json 数据放入该设置文件中,用户就会离开,而不必手动关闭自动更新 但是 SCCM 安装是作为提升帐户(系统)而不是个人用户 运行 安装的,因此以这种方式进行管理似乎不可行。
所以从根本上说,如果有一个 way/switch 允许在安装时或作为 post 安装步骤禁用自动更新功能,我将非常感谢您提供有关如何禁用的任何线索做到这一点。
谢谢!
要使用 SCCM 实现此目的,您可以执行以下操作(我将针对 package\program 进行描述,但也可以通过应用程序实现,选项非常相似):
- 如果您不想部署设置(类似于 VSCodeSetup.exe /VERYSILENT /MERGETASKS=!runcode 作为您的命令行并在程序 "Environment" 选项卡中,请按照与您相同的方式创建安装程序select "Run with administrative rights")
- 创建第二个程序,以您希望的方式将设置文件复制(或创建)到 %appdata%
- 在第二个程序中 "Environment" 中的选项将 "Program can run:" 设置为 "Only when a user is logged on" 并将 "Run mode" 设置为 "Run with user's rights"
- 在 "Advanced" 选项卡上将 "When this program is assigned to a computer:" 设置为 "Run once for every user who logs on"
- 将这两个程序部署到您的集合中
有了这个设置,SCCM 基本上可以将您想要的分成两个不同的设置,以获得各自所需的权限。程序安装和设置尚未应用的时间会很短(可以通过将配置设置中的 "Run another program first:" 设置为基本设置来缩短,但这会使事情变得有点复杂,但如果是新用户在 windows 更新作业期间的某个时间登录会有延迟,直到部署设置)但是保证永远不会有不应用设置的唯一方法是将默认程序替换为设置选项的脚本。
设置 JSON(可能是使用 SCCM 部署的设置)只需要此条目:
"update.mode": "none"
虽然默认情况下它启用了自动更新频道:
"update.mode": "default"
一个 post-install 脚本可以做到这一点 - 但是当它位于 %appdata%
中时,用户仍然可以更改它。
在我当前的环境中,VsCode 正在通过 SCCM 部署给用户,因此他们能够在没有管理员权限的情况下安装应用程序。当前安装支持 /Silent 等开关,但似乎没有任何其他开关可以在安装应用程序时将自动更新定义为默认关闭。这样做的原因我相信你们都知道 VSCode 会提示用户让他们知道有更新可用。已经进行了一些深入的挖掘,并且非常详细,您可以更改 settings.Json 文件以禁用更新,如果这是 'system wide' 即(C:\Program Files\Microsoft VS Code),那就太好了设置文件,但详细 Here 它指向 %appdata%(用户设置)。
因此,从理论上讲,您可以在安装时查询用户,然后只需执行一些 powershelly 魔术,将所需的 json 数据放入该设置文件中,用户就会离开,而不必手动关闭自动更新 但是 SCCM 安装是作为提升帐户(系统)而不是个人用户 运行 安装的,因此以这种方式进行管理似乎不可行。
所以从根本上说,如果有一个 way/switch 允许在安装时或作为 post 安装步骤禁用自动更新功能,我将非常感谢您提供有关如何禁用的任何线索做到这一点。
谢谢!
要使用 SCCM 实现此目的,您可以执行以下操作(我将针对 package\program 进行描述,但也可以通过应用程序实现,选项非常相似):
- 如果您不想部署设置(类似于 VSCodeSetup.exe /VERYSILENT /MERGETASKS=!runcode 作为您的命令行并在程序 "Environment" 选项卡中,请按照与您相同的方式创建安装程序select "Run with administrative rights")
- 创建第二个程序,以您希望的方式将设置文件复制(或创建)到 %appdata%
- 在第二个程序中 "Environment" 中的选项将 "Program can run:" 设置为 "Only when a user is logged on" 并将 "Run mode" 设置为 "Run with user's rights"
- 在 "Advanced" 选项卡上将 "When this program is assigned to a computer:" 设置为 "Run once for every user who logs on"
- 将这两个程序部署到您的集合中
有了这个设置,SCCM 基本上可以将您想要的分成两个不同的设置,以获得各自所需的权限。程序安装和设置尚未应用的时间会很短(可以通过将配置设置中的 "Run another program first:" 设置为基本设置来缩短,但这会使事情变得有点复杂,但如果是新用户在 windows 更新作业期间的某个时间登录会有延迟,直到部署设置)但是保证永远不会有不应用设置的唯一方法是将默认程序替换为设置选项的脚本。
设置 JSON(可能是使用 SCCM 部署的设置)只需要此条目:
"update.mode": "none"
虽然默认情况下它启用了自动更新频道:
"update.mode": "default"
一个 post-install 脚本可以做到这一点 - 但是当它位于 %appdata%
中时,用户仍然可以更改它。