• Thread Author
Updating Chrome from the command line with Winget on Windows 11 turns a repetitive, GUI-driven maintenance task into a single, scriptable operation—saving time for power users and administrators while giving clear, auditable control over browser updates. The how-to that follows summarizes the common steps (open an elevated terminal, confirm Chrome’s package ID, then run a Winget upgrade), explains the why and how in practical detail, flags known pitfalls (including real-world issues with the Google.Chrome manifest in the Winget repository), and shows hardened automation patterns for regular, unattended updates across one or many machines. The tutorial at its core mirrors the simple sequence many writers recommend: check with winget list Google.Chrome, then update with winget upgrade Google.Chrome or use winget upgrade --all to refresh everything at once—an approach documented in community tutorials and reproduced in the Windows Package Manager reference material. (learn.microsoft.com)

Background / Overview​

Windows Package Manager (winget) is Microsoft’s official command-line package manager built to bring Linux-style package management to Windows. It exposes a consistent, scriptable interface to search, install, upgrade, and remove applications from a curated set of manifests. The Winget client is delivered via the App Installer packaging and is actively developed as an open-source project; core command reference and options are maintained in Microsoft’s documentation. (learn.microsoft.com)
Winget’s value for updating a browser like Google Chrome is simple and immediate:
  • It centralizes the update process into a single command, avoiding individual GUI steps.
  • It’s script-friendly for automation with Task Scheduler, Intune, or other deployment tooling.
  • It can run silently and accept package/source agreements for unattended maintenance windows.
That said, Winget is not a perfect one-size-fits-all replacement for every vendor updater. For Chrome specifically, the community and Microsoft repositories have seen intermittent issues (manifest hash mismatches and installer behavior) that administrators must understand before fully automating updates. Evidence of these issues is publicly recorded in the Winget manifest repository’s issue tracker. (github.com)

Why update Chrome with Winget (and when not to)​

Using Winget to update Chrome is advantageous when you want:
  • Speed and repeatability — run a single command locally or remotely and get the latest packaged version.
  • Automation — embed updates in scripts and schedules for unattended maintenance.
  • Consistency — ensure the same command is used across many machines (no manual clicks, fewer user errors).
Situations where Winget might not be the ideal channel:
  • Environments that require the very latest Google-signed installer before a Winget manifest update is published can see delays; the community repository is curated and may lag official Google releases by minutes to days in rare cases. (learn.microsoft.com)
  • There have been documented manifest problems for the Google.Chrome package—hash mismatches and installer-related issues—so organizations that require fail-safe updates should have fallback processes. (github.com)

Quick summary of the single-command flow​

  • Open an elevated terminal (Windows Terminal, PowerShell, or Command Prompt).
  • Confirm Winget is present and recognized: winget --info.
  • Check Chrome’s presence in Winget: winget list Google.Chrome.
  • Update Chrome only: winget upgrade Google.Chrome.
  • Or update everything: winget upgrade --all.
These commands and options are supported by the official WinGet client; the upgrade command supports flags for silent installs and to accept package/source agreements for unattended runs. (learn.microsoft.com)

Step-by-step: update Chrome with Winget on Windows 11​

1. Verify Winget is available and current​

  • Open Windows Terminal as Administrator (right‑click Start → Terminal (Admin) or use Win+X → Terminal (Admin)).
  • Run:
  • winget --info
  • If Winget isn’t found, install or update App Installer from the Microsoft Store or retrieve the latest App Installer .msixbundle from the official repository releases. Winget requires the App Installer package to be present. (learn.microsoft.com, pureinfotech.com)

2. Confirm Chrome is installed and discover the package ID​

  • To see if Winget recognizes Chrome:
  • winget list Google.Chrome
  • If Winget returns a row for Google.Chrome you’ll see the installed version and the package ID used by Winget. If not found, Winget may not recognize an existing Chrome installation that was installed by other means (such as an enterprise MSI distribution or user-local installer). In that case, you can install or repair via Winget.

3. Upgrade Chrome (single-package)​

  • Standard interactive upgrade:
  • winget upgrade Google.Chrome
  • For quiet, unattended upgrade (commonly used in scripts), add acceptance and silent flags:
  • winget upgrade Google.Chrome --silent --accept-package-agreements --accept-source-agreements
  • Note: --silent suppresses installer UI (if the installer supports it), and the --accept-* flags prevent prompts about package or source license agreements during automated execution. Both are documented Winget flags. (learn.microsoft.com)

4. Upgrade everything (all outdated Winget-managed apps)​

  • winget upgrade --all
  • This checks all Winget-managed packages and upgrades any that have newer manifests. It’s useful for maintenance windows but will update every known eligible package, so review logs or test before rolling it out broadly. (learn.microsoft.com)

5. Confirm the update completed​

  • Check Chrome’s reported version in the browser:
  • Open Chrome → Menu (⋮) → Help → About Google Chrome (or navigate to chrome://settings/help).
  • Alternatively confirm with Winget:
  • winget list Google.Chrome
  • Cross-checking both is recommended because there are known cases where a Winget-installed Chrome interacts differently with Chrome’s built-in updater (see Troubleshooting section). (google.com, github.com)

Advanced flags and practical examples​

  • Exact match by package ID (avoids ambiguity):
  • winget upgrade --id Google.Chrome -e
  • Restrict to Winget’s source (useful when multiple sources exist):
  • winget upgrade Google.Chrome --source winget
  • Silent unattended upgrade (suitable for Task Scheduler or Intune script):
  • winget upgrade Google.Chrome --silent --accept-package-agreements --accept-source-agreements
  • If you want to upgrade to a specific version (gating):
  • winget upgrade --id Google.Chrome --version 125.0.6425.0
All above flags are part of WinGet’s official command set; administrators should read the winget upgrade reference to plan precise behaviors in large-scale deployments. (learn.microsoft.com)

Automation patterns: scripting and Task Scheduler​

Automating Chrome updates via Winget is simple and robust if you handle logging, error reporting, and fallbacks.
Example PowerShell script (save as update-chrome.ps1):
Code:
# update-chrome.ps1
Start-Transcript -Path "C:\Logs\winget-update-chrome-$(Get-Date -Format yyyyMMdd-HHmmss).log"
winget upgrade Google.Chrome --silent --accept-package-agreements --accept-source-agreements
Stop-Transcript
  • Schedule via Task Scheduler:
  • Create a basic task → Run whether user is logged in or not → Run with highest privileges.
  • Action: Start a program: Program/script: powershell.exe
  • Add arguments: -ExecutionPolicy Bypass -File "C:\Scripts\update-chrome.ps1"
  • For enterprise scenarios, deploy via Intune/Group Policy startup scripts or integrate with configuration management tools.
Important automation notes:
  • Use logging (Start-Transcript or redirect stdout/stderr) so you can audit behavior and capture transient errors like manifest mismatches.
  • Run an initial dry run (winget upgrade without --all) and check return codes before widespread rollout. (learn.microsoft.com)

Common troubleshooting and known pitfalls​

1. Winget not recognized​

  • Symptom: winget command returns “not recognized”.
  • Fix: Install/update App Installer from the Microsoft Store or install the Winget client/MSIX bundle from the official releases. Verify winget --info after installation. (learn.microsoft.com, pureinfotech.com)

2. Winget doesn’t see Chrome (package absent)​

  • Reason: Chrome was installed by a method Winget didn’t register (user-specific installer, corporate MSI, or different publisher string).
  • Fix: Reinstall or repair Chrome via Winget:
  • winget install Google.Chrome
    This will download the manifest version and either install fresh or repair so Winget can manage the app moving forward.

3. Installer hash mismatch (manifest problems)​

  • Observed problem: Winget downloads the Chrome installer but aborts with “Installer hash does not match”.
  • Why it happens: Winget manifest entries include a SHA256 hash for the installer URL. If Chrome’s published installer changes (or Google rotates mirrors), the stored hash can become stale. This triggers safety checks and prevents potentially tampered installers from being installed. This is an issue tracked in the Winget manifests repository and has caused transient failures for the Google.Chrome package. (github.com)
  • Workaround:
  • Wait for the manifest to be updated in the community repo (Microsoft maintainers usually respond quickly).
  • As a temporary measure, download Chrome from Google directly and install, then re-run winget list to ensure Winget recognizes the package.
  • Avoid overriding or disabling hash validation in production; that undermines the security checks Winget enforces. (github.com)

4. Chrome’s internal updater breaks after Winget install​

  • Observed problem: After installing Chrome via Winget, Chrome’s own “About” page shows update checks fail.
  • Real reports: Multiple GitHub issues have recorded cases where Chrome’s version-checking/updater behaved differently when Chrome was installed through Winget manifests versus the standard Google web installers. This can be due to installer switch differences, machine scope (--scope machine vs user), or how Chrome’s updater service is configured. (github.com)
  • Mitigation:
  • Test a Winget install on a representative machine and confirm chrome://settings/help reports no errors.
  • If Chrome’s updater is critical in your environment, maintain a fallback plan (e.g., install via Google-provided MSI that aligns with enterprise policies).
  • Report reproducible failures back to the Winget manifests maintainers so maintainers can align manifest behavior with Chrome’s expectations. (github.com)

5. Multiple package sources / ambiguous matches​

  • If you see messages about multiple versions or sources, specify the source:
  • winget upgrade Google.Chrome --source winget
  • Or use the exact match flag:
  • winget upgrade --id Google.Chrome -e

Managing update policy: pinning and gating​

Winget supports pinning a package so it’s excluded from winget upgrade --all, or blocking upgrades until an admin explicitly removes the pin. Pinning is useful for compatibility windows and staged rollouts.
  • Add a blocking pin:
  • winget pin add --id Google.Chrome --blocking
  • Remove a pin:
  • winget pin remove --id Google.Chrome
  • Gating to a version range:
  • winget pin add --id Google.Chrome --version 123.*
These features let administrators control when Chrome is allowed to move to newer releases, protecting enterprise tools or plugins that depend on specific browser builds. (learn.microsoft.com)

Security, governance, and enterprise considerations​

  • Winget enforces SHA256 checks on downloaded installers in manifests; this is a strong security guardrail but can produce false positives when upstream vendors change packaging quickly. Always monitor the Winget repo issues for widely reported manifest failures and respond according to your operational policy (wait, escalate, or use vetted vendor MSI installers). (github.com)
  • Group Policy and Intune can be used together with Winget: Windows 11 includes Group Policy templates related to Windows Package Manager so administrators can control allowed sources, experimental features, and execution policies in managed environments. Plan Group Policy settings before broad automation. (learn.microsoft.com)
  • Logging and audit trails are essential. Maintain centralized logs from scheduled scripts and capture Winget’s exit codes for automation dashboards and alerting.

Best-practice checklist before automating Chrome updates with Winget​

  • [ ] Confirm Winget/App Installer is deployed and on supported versions across target machines. (learn.microsoft.com)
  • [ ] Test winget install Google.Chrome and winget upgrade Google.Chrome on a test image. Verify chrome://settings/help shows a healthy update status. (github.com)
  • [ ] Implement logging and capture Winget’s STDOUT/STDERR to centralized storage for failures and audit. (learn.microsoft.com)
  • [ ] Add a fallback update path (vendor MSI or manual process) in case manifest problems or hash mismatches occur. (github.com)
  • [ ] Use pinning to control broad rollouts or to freeze a specific version during validation windows. (learn.microsoft.com)
  • [ ] Keep a cadence to check the Winget manifests repo for high-profile package issues (Google.Chrome is actively tracked by the community). (github.com)

Example real-world automation workflow (illustrative)​

  • Daily scheduled PowerShell job at 03:00:
  • winget upgrade Google.Chrome --silent --accept-package-agreements --accept-source-agreements
  • If the command returns a non-zero exit code, the script:
  • Saves detailed logs.
  • Sends a short ticket to the admin queue with the log excerpt.
  • If manifest-related errors appear three days in a row, escalate to the vendor MSI fallback path (download from Google enterprise channel and install via signed MSI).
  • Monthly audit: run winget export on a sample machine to record installed package versions and compare against corporate baseline.
This hybrid approach blends Winget convenience with enterprise-grade robustness.

Conclusion​

Winget converts the repetitive task of keeping Google Chrome up to date into an automated, auditable command-line flow that benefits power users and administrators alike. Using winget list Google.Chrome and winget upgrade Google.Chrome (or winget upgrade --all) provides speed and reproducibility that GUI-only maintenance cannot match, and Winget’s flags let you run silent, unattended updates and accept package agreements programmatically. The official Winget documentation details the supported commands and flags you’ll use, and the community manifests repository hosts the Chrome package used by Winget clients. (learn.microsoft.com)
However, caution is required: the Google.Chrome manifest has shown transient problems—installer hash mismatches and occasional interactions with Chrome’s internal updater—that can disrupt a blind automation rollout. These real issues are tracked publicly in the Winget manifests project; administrators should test thoroughly, maintain fallback installers, and use logging and pinning to protect production systems. (github.com)
For most users and many organizations, Winget delivers a faster, more controllable Chrome-update process. When combined with basic safeguards—testing, logging, pinning, and a vendor MSI fallback—Winget becomes a reliable building block for a modern Windows update strategy that keeps browsers secure, current, and consistent across single devices or fleets of machines.

Source: H2S Media How to Update Chrome on Windows 11 using Winget Command Line