Deploying the NPS agent
The NPS agent extends the Network Policy Server (NPS) service to enforce UserLock access policies and MFA during RADIUS authentication (VPN, Wi-Fi, etc.).
Useful resources
The UserLock NPS agent is a DLL registered in the Network Policy Server (NPS) service.
It is triggered when a user authenticates through RADIUS and during session start or end events (RADIUS accounting).
This integration allows UserLock to apply access policies and multi-factor authentication (MFA) for users connecting via VPN or Wi-Fi.
Note
NPS supports multiple administrative DLLs. The UserLock agent can coexist with others without conflict.
The registry supports multiple DLL locations (REG_MULTI_SZ value type).
NPS loads DLLs in the order they appear in the registry.
You can install the NPS agent automatically from the UserLock console or manually on your NPS server.
💡️ The simplest way is to deploy the NPS agent directly from the UserLock console.
If you cannot deploy the NPS agent from the console, you can install it manually on your NPS server.
Copy and registrer the module
Copy the corresponding DLL file from the UserLock installation folder %windir%\System32\ on the server (for example,
C:\Program Files\UserLock IIS Agent).Open an elevated Command Prompt (Run as Administrator).
Run the registration command matching your IIS server architecture:
Server architecture
File to copy
Command to register
32-bit
ULIasAgent.dllregsvr32 C:\Windows\System32\ULIasAgent.dll64-bit
ULIasAgent_x64.dll
(rename toULIasAgent.dll)regsvr32 C:\Windows\System32\ULIasAgent.dll
Register communication settings
Create the following registry key to allow the IIS agent to communicate with the UserLock servers:
Registry path:
HKEY_LOCAL_MACHINE\SOFTWARE\ISDecisions\UserLock\IASKeys:
Value name
Type
Description
UserLockServer
REG_SZ
Name of the Primary UserLock server
UserLockServerBackup
REG_SZ
Name of the Backup UserLock server
After the NPS Agent is installed/uninstalled (through the console, or manually), its status in the Environment ▸ Machines page will be Installing/Uninstalling.
To make it effective:
Stop the Routing and Remote Access (RemoteAccess) service.
Note: will close all VPN connections.
Stop the Network Policy Server (IAS) service.
Start the Routing and Remote Access (RemoteAccess) service.
Start the Network Policy Server (IAS) service.
Here are PowerShell commands to do that:
# Stop the "Routing and Remote Access" (RemoteAccess) service:
Stop-Service RemoteAccess
# Note: will close all VPN connections.
# Stop the "Network Policy Server" (IAS) service:
Stop-Service IAS
# Start the "Routing and Remote Access" (RemoteAccess) service:
Start-Service RemoteAccess
# Start the "Network Policy Server" (IAS) service:
Start-Service IASUninstall the agent directly from the UserLock console.
The agent status will appear as Uninstalling . Restart the services as described in the Step 2 section to complete the process.
Unregister the DLL:
regsvr32 /u C:\Windows\System32\ULIasAgent.dllThe agent will be disabled but still loaded in memory.
Restart the services as described in the Step 2 section to complete the process.
Some Wi-Fi Access Points (WAP) do not fully comply with RADIUS standards and may not send disconnection notifications.
As a result, the same session (same user account, same device, possibly the same Wi-Fi Access Point) may appear multiple times in UserLock.
To prevent these duplicates, the NPS agent provides two optional DWORD (32-bit) registry settings in: HKEY_LOCAL_MACHINE\SOFTWARE\ISDecisions\UserLock\IA
Setting | Description |
|---|---|
| When enabled ( |
| When enabled ( |
The behavior depends on how both keys are configured.
Mixing the values of these two options lets you control how UserLock handles reconnecting users on the same or different Wi-Fi Access Points.
AutoReset | AutoReset | Same user, device, and WAP | Same user and device, different WAP |
|---|---|---|---|
1 | 1 | ✅ Automatically closed | ⚠️ Remains active |
1 | 0 | ✅ Automatically closed | ✅ Automatically closed |
0 | 0 | ⚠️ Remains active | ⚠️ Remains active |
Note
✅ Automatically closed means UserLock automatically ends any existing session matching the new RADIUS connection, preventing duplicates.
⚠️ Remains active means the previous session stays open, which can result in duplicate sessions.