如何使用 Chocolatey 自动更新免费软件

您的计算机上有应用程序,例如SpotifyAdobe ReaderChromeFirefox7-ZipVLC 媒体播放器……(VLC Media Player…the list)不胜枚举,而且它们都是免费的。没有免费软件(freeware)我们该怎么办?然而,这些应用程序需要经常更新以修复安全漏洞并引入新的有用功能。更新永远不会在方便的时候发生。

这就是Chocolatey发挥作用的地方。使用免费应用程序Chocolatey使您的软件保持最新。它简单、快速、简单,而且我们提到过免费吗?看起来(Seems)好得令人难以置信,但事实就是如此。但什么是巧克力(Chocolatey)

什么是巧克力味?

如果您还没有在Windows 命令行(Windows command line)PowerShellLinux 命令行(Linux command line)中做过任何事情, Chocolatey的概念可能会有点奇怪。Chocolatey是一个机器级程序,可帮助您管理软件(manage software)

机器级意味着没有图形用户界面(user interface)可以帮助您做事。必须键入所有命令。不要让(t let)那把你吓跑(Don)!如果你会写字,你就能掌握这个。

如何安装 Chocolatey?

Chocolatey需要做几件事。当一个程序需要其他Windows功能的程序才能工作时,这些需要的程序称为依赖项。Chocolatey的依赖项是您必须至少使用:

  • Windows 7 或更新版本
  • PowerShell 版本 2 或更高版本
  • .NET Framework 4 或更高版本
  • 另外,您必须在计算机上具有管理员访问权限(administrator access)

如果您拥有Windows 7或更高版本,则您已经拥有 PowerShell 版本 2(PowerShell version 2)或更高版本。如果您不确定您是否拥有 .NET Framework 4,请不要担心。安装Chocolatey时,如果您没有 .NET 4,Chocolatey 将为您安装它。

通过在“开始”菜单(Start Menu)的搜索框PowerShell中键入来打开PowerShell 。您应该会看到一个名为Windows PowerShell App的结果。

右键单击它并选择Run as Administrator。这样做称为在提升的实例中运行(elevated instance)PowerShell。它被提升为管理员权限。PowerShell 窗口(PowerShell window)将打开。

PowerShell 窗口(PowerShell window)中,键入或复制(type or copy)并粘贴以下命令:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))

Set-ExecutionPolicy Bypass -Scope Process -Force部分 告诉PowerShell,您不想为接下来的事情强制执行受限执行策略。默认情况下, PowerShell(PowerShell)只允许签名进程运行。这是最高的安全设置(security setting)。但是我们需要运行这个未签名的安装Chocolatey的过程。

该命令的iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’)) 部分告诉PowerShellChocolatey 网站(Chocolatey website),下载安装.ps1 脚本,然后运行它。那是真正安装 Chocolatey的部分。

你会看到一堆文字飞过(text fly)随时(Feel)回去阅读它,以便您知道刚刚发生了什么。最后,它建议您运行命令choco /? 查看功能列表。这是确保您的安装正常工作的好方法。继续运行该命令。

又是一堆文字飞掠而过,也很好读懂。最后,如果您的Chocolatey安装成功,您将看到类似以下内容,其中绿色部分列出了您刚刚安装的版本。

用 Chocolatey 安装软件

在我们开始使用 Chocolatey 更新软件之前,让我们快速浏览一下使用 Chocolatey安装软件。(Chocolatey)

转到页面https://chocolatey.org/packages浏览可通过Chocolatey获得的软件。您会看到它们被称为包。

找到您想要安装的软件包。对于此示例,我们将使用Malwarebytes Anti-Malware。在您的计算机上安装 Malwarebytes 总是好的。

在提升的PowerShell实例中,使用命令choco installmalwarebytes。就是这样。安装将开始。它将以以下文本停止:

如果您愿意让Chocolatey管理您的软件,那么在安装完成后,我们应该使用choco feature enable -n allowGlobalConfirmation命令,以便我们以后可以自动安装和更新。现在,让我们使用A来完成安装。

您会看到Malwarebytes正在下载,然后开始安装。

大约一分钟后,Malwarebytes将被下载并安装,无需您进行任何进一步的工作。

用 Chocolatey 更新软件

现在我们已经安装了一些软件,我们可以尝试使用Chocolatey更新它。同样(Again),您需要以管理员(Administrator)身份打开PowerShell。然后你可以运行命令choco upgrademalwarebytes

这将使Chocolatey出去看看是否有更新,然后更新它。我们刚刚安装了 Malwarebytes,因此它会显示零一包已更新。没关系。

如果您已经使用Chocolatey(Chocolatey)安装了多个软件包,则可以使用一行命令将它们全部更新:choco upgrade all -y

这很难。现在我们必须用Chocolatey自动更新软件,以某种方式使该命令按计划运行。

使用Chocolatey自动更新软件(Update Software)

下一步您可以使用 wither Notepad或 PowerShell ISE(集成脚本环境(Integrated Scripting Environment))。我们将使用记事本(Notepad)执行此示例,因为并非所有Windows版本都具有PowerShell ISE

打开记事本。将命令choco upgrade all -y复制到记事本中。

通过将其命名为upgrade-ChocoPackages.ps1将其保存为PowerShell 脚本(PowerShell script)。.ps1 扩展名告诉 Windows 这是一个 ? PowerShell 脚本(PowerShell script)

将文件类型从Text Documents (*.txt)更改为All Files (*.*).如果您不这样做,Windows将使其升级-ChocoPackages.ps1.txt(upgrade-ChocoPackages.ps1.txt)并认为它只是一个记事本文件(Notepad file)

Windows 带有一个很棒的功能,称为任务计划程序(Task Scheduler)。普通家庭用户(home user)可能不知道它,但任务计划程序(Task Scheduler)这个功能已经让很多事情定期运行。

任务计划程序(Task Scheduler)开始菜单中搜索(Start Menu search)结果出现时单击(Click)它。

任务计划程序(Task Scheduler)打开时,单击窗口左上角的任务计划程序库。(Task Scheduler Library)这将向您显示当前在您的计算机上设置的所有计划任务。

在右上角区域的“操作”窗格中,单击“(Actions)创建任务(Create Task…)”…… 。Create Basic Task(Create Basic Task isn)不适合这种情况,因为我们稍后将使用参数语句。

在打开的窗口中,在General选项卡中,为任务命名,如Choco Upgrade All描述(Description ),如Updates all software installed by Chocolatey。如果您当前的用户帐户(user account)不是计算机上的管理员帐户(administrator account),请使用更改用户或组(Change User or Group)按钮选择管理员帐户(Administrator account)

您还需要知道管理员帐户(Administrator account)的密码。确保(Make)无论用户是否登录(Run whether the user is logged on or not)都选择运行。即使您不在计算机上,这也将允许脚本运行,并且它将拥有完成工作所需的所有权限。

触发器(Triggers)选项卡是您告诉任务何时运行的地方。为此,每周一次就足够了。在我们的示例中,它设置为每周(Sunday)凌晨 1:00 运行 选择一个您不太可能使用计算机的时间,以获得最佳性能。

如果任务运行时间超过:(Stop the task if it runs longer than:) ,建议同时选中停止任务,并将持续时间更改为 2 小时。您可以根据需要进行调整。要允许应用触发器,您必须选中底部的启用框。(Enabled)

转到Actions选项卡,我们将告诉任务我们想要它做什么。Action将默认为Start a program。这就是我们想要的,所以就离开吧。在Program/script字段中,键入 powershell.exe。这让 Windows 知道您将要运行 PowerShell 脚本(PowerShell script)

添加参数(Add arguments)字段中,输入以下参数。

-noprofile -这会阻止PowerShell 配置文件(PowerShell profile)脚本运行,并告诉它只运行您想要的脚本。

-ExecutionPolicy Bypass –如果您不确定是否启用了脚本执行,最好将其包含在参数中。它将确保脚本运行。

-file - 这是告诉任务计划程序接下来是我们希望 PowerShell运行的文件的路径的参数。在我们的示例中,脚本被保存到C:\Scripts\upgrade-ChocoPackages.ps1。在您的计算机上可能会有所不同,因此请进行相应调整。如果文件的路径名称中包含空格,则需要将整个路径放在引号内。

完整的参数看起来像-noprofile -executionpolicy bypass -file C:\Scripts\upgrade-ChocoPackages.ps1

条件(Conditions )选项卡上,我们可以设置更多关于脚本运行方式的选项。看看他们,看看你想申请哪些。对于此示例,它设置为仅在计算机使用交流电源时启动任务,(Start the task only if the computer is on AC power)在计算机切换到电池电源时停止(Stop if the computer switches to battery power )以确保我们不会耗尽电池。

选择唤醒计算机运行此任务(Wake the computer to run this task)以确保任务运行,无论计算机是否处于睡眠模式。

Settings选项卡中,建议选中Allow task to be run on demand框,以便我们可以在完成后手动测试任务。其余部分的默认选择很好。

单击“确定(OK)”完成定时任务的创建。应弹出一个窗口,其中包含您在“常规”选项卡上选择的用户名。您必须输入用户密码并单击(user and click) OK。这告诉 Windows 您确实有权运行该任务。

现在您回到主任务计划程序窗口(Task Scheduler window)。找到你的新任务。右键单击任务并选择(task and select) 运行(Run )以对其进行测试。

您不会看到任何重要的事情发生,除了任务的状态将更改为Running。大约一分钟后,您应该会看到Last Run Time也更改为您开始运行任务时的时间戳。

如果您没有收到任何错误消息,则该任务应该没问题。关闭任务计划程序窗口(Task Scheduler window),不必担心必须再次手动更新您使用Chocolatey安装的任何软件。

全做完了!

设置它似乎需要做很多工作。考虑一下:设置它需要 10 到 30 分钟。如果您使用它来更新 10 个程序,并且每个程序每个月需要大约 6 分钟来完成更新过程,那么您已经为自己节省了 30 到 50 分钟。

您已经在节省时间方面领先了。在一年的时间里,这可能会节省 6 到 10 个小时的时间。这还不包括知道如何使用Chocolatey在一两分钟内而不是 10 或 15 分钟内安装程序所节省的时间。



About the author

拥有超过 10 年经验的发烧友工程师和音频产品专家。我专注于从头到尾创造优质的音乐扬声器和耳机。我是解决音频问题以及设计新扬声器和耳机系统的专家。我的经验不仅仅是制造好产品。我也热衷于帮助他人成为最好的自己,无论是通过教育还是社区服务。



Related posts