Checks for a new version of the NVIDIA Driver, downloads and installs it. Windows 10+ only and PowerShell 6+ recommended.
Fork of lord-carlos/nvidia-update.
optional-components.cfg
is optionaloptional-components.cfg
to specify what optional components to include (e.g., PhysX; works like NVSlimmer)
nvidia-update.ps1
and select Run with PowerShell
(or run with optional parameters via a terminal; see below)-Silent
- Run the script in the background; use default choice for any prompts-LogFilePath <string>
- Append output to a text file-Force
- Install the driver even if the latest driver is already installed-Clean
- Remove any existing driver and its configuration data-Msi
- Enable message-signalled interrupts (MSI) after driver installation (must be enabled every time); requires elevation-Schedule
- Register a scheduled task to run this script weekly; arguments passed alongside this will be appended to the scheduled task action-GpuId <string/int>
- Manually specify product family (GPU) ID rather than determine automatically-OsId <string/int>
- Manually specify operating system ID rather than determine automatically-Desktop
- Override the desktop/notebook check and download the desktop driver; useful when using an external GPU or unable to find a driver-Notebook
- Override the desktop/notebook check and download the notebook driver-DownloadDirectory <string>
- Override the directory where the script will download and extract the driver package-KeepDownload
- Don't delete the downloaded driver package after installation (or if an error occurred)-GpuDataFileUrl <string>
- Override the GPU data JSON file URL/path for determining product family (GPU) ID-OsDataFileUrl <string>
- Override the OS data JSON file URL/path for determining operating system ID-AjaxDriverServiceUrl <string>
- Override the AjaxDriverService URL; e.g., replace ".com" in the default value ("https://gfwsl.geforce.com/services_toolkit/services/com/nvidia/services/AjaxDriverService.php") with ".cn" to solve connectivity issues⇧ Shift
, right-click in the folder with the scriptOpen PowerShell window here
.\nvidia-update.ps1 <parameters>
(e.g., .\nvidia-update.ps1 -Clean -DownloadDirectory "C:\NVIDIA"
) and hit ↵ Return
Run the following PowerShell command to download the latest release files and create a scheduled task to run the script weekly with no optional parameters:
Invoke-Expression (Invoke-WebRequest -Uri "https://github.com/ZenitH-AT/nvidia-update/raw/main/schedule.ps1")
To specify optional parameters for the scheduled task action, run a command similar to the following example, instead:
Invoke-Command ([ScriptBlock]::Create(".{$(Invoke-WebRequest -Uri "https://github.com/ZenitH-AT/nvidia-update/raw/main/schedule.ps1")} -Force -DownloadDir `"'C:\Users\user\NVIDIA download'`""))
Surrounding an argument with `"'
and '`"
is required if it has spaces.
A supported archiver (7-Zip or WinRAR) is required to extract driver files.
It uses the NVIDIA AjaxDriverService.
Example:
https://gfwsl.geforce.com/services_toolkit/services/com/nvidia/services/AjaxDriverService.php?func=DriverManualLookup&pfid=877&osID=57&dch=1
The pfid and osID are determined by reading files in the ZenitH-AT/nvidia-data repository, which queries the NVIDIA Download API (lookupValueSearch).
-Msi
optional parameter.$osBits
) check and driver version comparison.Get-GpuData
).Get-WebFile
).
Start-BitsTransfer
, which occasionally caused issues..nvi
files