Deploy with Active Directory
You need:
- The NVM for Windows MSI and the MST1 from the customer portal.
- Administrative access to the domain controller to create group policies.
Prepare the file server
Group Policy reads the MSI and the MST from a network share. Domain Computers must reach that share when the policy applies.
- Copy the MSI and the MST from the deployment pack to a file server.
- Make the share available to Domain Computers and to users in the GPO scope.
- Grant those accounts read access.
1. Open the Group Policy Management Console
Use one of these methods:
- Run: Press Windows Key + R, type
gpmc.msc, and select OK. - Start menu: Select Start, type Group Policy Management, and open the top result.
- Server Manager: Open Server Manager, select Tools, and select Group Policy Management.
2. Create Group Policy
- Right-click the organizational unit that contains the target computers where NVM for Windows will be installed.
- Select Create a GPO in this domain, and link it here.
- Select the GPO.
- In the right pane, select the Scope tab.
- Under Security Filtering, select Add.
- In Enter the object name to select, add
Domain Computers. - Add security groups if you must limit the NVM for Windows install.
- Select Check Names.
- Confirm that every name resolves.
- Select OK.
- If Authenticated Users is under Security Filtering, remove it.
- Select the Delegation tab.
- Confirm that
Domain Computersand your groups are in the list.
Removing Authenticated Users from Security Filtering prvents NVM for Windows installations from running on every device in the domain. It also removes the GPO Read permission. On the Delegation tab, add Authenticated Users with Read only. Without that Read permission, the GPO can fail to apply.
3. Configure Group Policy Installation Package
- Right-click the GPO and select Edit.
- Go to Computer Configuration > Policies > Software Settings > Software installation. Select Computer Configuration. Do not select User Configuration. Certified Builds install at machine level2. The Community Build does not.
- Right-click Software installation.
- Select New > Package. A file dialog opens.
In the file dialog, open \\server\share\....
Do not open a mapped drive.
The computer account applies this policy at startup.
A mapped drive is not available to that account.
- Open the file-server folder that holds the NVM for Windows media.
- Select the
.msifile. - Select Open. The Deploy Software dialog opens.
- Select Advanced.
- Select OK.
- Select the Deployment tab.
- Set the deployment type to Assigned.
- Select Uninstall this application when it falls out of the scope of management only if you want removal when the computer leaves the scope.
Automatic uninstall runs when a computer leaves the management scope. That uninstall can remove Node.js for a user that you remove by mistake.
The MSI deletes %LOCALAPPDATA%\Author Software\nvm for the user who runs the uninstall.
That folder holds that user's Node.js versions and global modules.
Other user profiles on the same computer can keep their own folders.
Copy that user's storage directory before you remove the product.
You can restore that folder if you install NVM for Windows again.
Default storage directory: %LOCALAPPDATA%\Author Software\nvm\installs
- Select the Modifications tab.
- Select Add.
- Open the file server and select the
.mstfile1. You then accept the EULA on behalf of every user who receives the install. This step is required. - Select OK.
The GPO now installs NVM for Windows on the target computers.
- The MSI registers NVM for Windows as a Event Tracing for Windows event provider.
- Legacy SYSTEM
NVM_HOME,NVM_SYMLINK, and Community BuildPATHentries are removed.
Do not add these scripts to this GPO:
Remediation/machine-startup.ps1Register-EventLogSource.ps1Remove-LegacySystemEnv.ps1
Use these scripts only when the MSI did not register the event provider or did not remove the legacy entries. Use them for that failed step, or for an offline retry. The v2 installer already registers the event provider and removes the legacy entries.
4. License the fleet
The MSI does not write the organization access token or private key.
- Certified Build. The access token is the license.
Set-NvmWindowsAccessToken.ps1writesAccessTokenandJwksCose. It does not writeAccessKey. - Governance.
Set-NvmWindowsLicensing.ps1writesAccessToken,AccessKey, andJwksCose.AccessKeysigns a short-lived JWT for requests to the Author Node.js mirror. See Node.js mirror.
- Certified Build
- Governance
The Certified Build pack includes Set-NvmWindowsAccessToken.ps1.
Add a Computer Configuration startup script. Do not put secret files on the software share.
Pass the access token on the command line:
powershell.exe ^
-ExecutionPolicy Bypass ^
-File \\fileserver\software\nvm-windows\<version>\Licensing\Set-NvmWindowsAccessToken.ps1 ^
-AccessToken "<jwt-from-portal>" ^
-JwksCoseUrl "https://assets.nvm-windows.com/nvm-jwks.cose"
See the license secret notes.
The Governance pack includes Set-NvmWindowsLicensing.ps1.
Create a private key:
- Open portal.author.io.
- Go to NVM for Windows → Private Keys.
- Create a key with a memorable name. This represents a group of users.
- Save the secret that the portal shows. Author does not show the secret again.
Add a Computer Configuration startup script. Do not put secret files on the software share.
Pass the access token and the private key on the command line:
powershell.exe ^
-ExecutionPolicy Bypass ^
-File \\fileserver\software\nvm-windows\<version>\Licensing\Set-NvmWindowsLicensing.ps1 ^
-AccessToken "<jwt-from-portal>" ^
-AccessKey "<private-key>" ^
-JwksCoseUrl "https://assets.nvm-windows.com/nvm-jwks.cose"
See the license secret notes.
A computer-assigned package installs when the computer starts.
gpupdate /force refreshes policy. It does not install the MSI.
Restart the computer after the refresh.
Or run gpupdate /force /boot.
That command refreshes policy, then restarts the computer so Software Installation can run.
A computer-assigned package has no supported install path that skips the restart.
You can put the package under User Configuration and raise privileges for the install.
The install then runs at the next logon. Sign out and sign in on the client. A restart is not required for this path. Active Directory temporarily bypasses user limits so the MSI runs with administrative rights.
- Create or edit a GPO. Link it to the OU that contains the target users.
- Add the MSI under User Configuration > Policies > Software Settings > Software Installation.
- Select Advanced.
- Select Install this application at logon.
- Raise installer privileges:
- Go to Computer Configuration > Policies > Administrative Templates > Windows Components > Windows Installer.
- Double-click Always install with elevated privileges.
- Set it to Enabled.
- Select Apply, then OK.
- Go to User Configuration > Policies > Administrative Templates > Windows Components > Windows Installer.
- Double-click Always install with elevated privileges.
- Set it to Enabled.
- Turn on loopback processing so this user policy applies on the target computers:
- Go to Computer Configuration > Policies > Administrative Templates > System > Group Policy.
- Double-click Configure user Group Policy loopback processing mode.
- Select Enabled.
- Select Merge or Replace.
- Select OK.

Always install with elevated privileges lets a standard user run any Windows Installer package with elevated rights. An attacker can use that setting.