;
The LANforge InterOp solution of Candela Technologies is used to support real clients for testing access points. InterOp provides the test engineer with automation for testing mobile devices. In this cookbook we will deploy the LANforge-Server solution from a Domain Controller. This cookbook requires LANforge-Server version 5.5.2 and above.
Starting with a basic Domain Controller, described in Appendix A.
This requires LANforge version 5.5.2 or newer.
LANforge-Server is incompatible with devices running Windows S. If your device is running in S mode, refer to this KB article on switching out of "S" mode.
To keep terminology brief, some abbreviations:





Uncheck User must change password at next logon. Click Next, then Finish, as shown in the pictures below.




If not, below the listed security roles. Click Add..., and in the description box shown below, search for any missing items from the list above. Click Check Names, if it exists it will be underlined. Click OK.

Once the security permissions match everything in steps 8 and 9, click OK and Apply, then close out of this window.



In this new folder, right click and select Create a GPO in this domain, and Link it here.... Name it.
Click on the newly created GPO and the right side of the GPM tool will populate.

The right panel will contain information about linked GPOs to the currently selected OU as well as details on security filtering and WMI filtering.
Under the Links table, it should look like this:

To add new items to the Security Filter, click Add... and type in the description box exactly what is suggested above, i.e., Domain Users. Click Check Names and it should underline if it exists, then click OK.


Now, on the panel to the left where the folders are displayed and the OU and GPO can be viewed, right click on the GPO, ensure that "Enforced" and "Link Enabled" are checked, then click Edit....
Follow this path: Computer Configuration → Preferences → Control Panel Settings → Local Users and Groups.
Right click → New → Local User. Action, drop down and select Update. For Group name copy and paste this "Administrators (built-in)" exactly.
Under the Members box at the bottom, ensure that Domain Users, User (from ADUC) and Domain Computers are in the box. Should look similar to this:

Left side of the GPM editor again, from Local Users and Groups, move to Scheduled Tasks.
Right click → New task (At least Windows 7). Name: Software Deployment Script. Description can be whatever you would like. Security options, When running the task, use the following user account: NT AUTHORITY\System. Select "Run whether the user is logged on or not". Check run with highest privileges.
Next tab, at the top, Triggers. Click New... at the bottom, and from the dropdown at the top of the new pop-up window, select "At startup". Click OK.
Next tab, at the top, Actions. Click New..., action will be Start a program. Program/script: powershell.exe. Add arguments: -ExecutionPolicy Bypass -NoProfile -File "C:\LANforge-Install\windows_lf_setup.ps1". Please include quotes for the -File parameter.
Next tab, Settings. The only box that should be selected should be "Run task as soon as possible after scheduled start is missed".
Next tab, Common. One box here should be checked, "apply once and do not reapply".
Click OK to finish the "Software Deployment Script" properties window.
Follow this path: Computer Configuration → Preferences → Windows Settings → Registry. This is where we will be giving the arguments to the installation script.
Right click → New → Registry Item (this will apply for the next 8 settings). Follow these steps for each bullet point below. For each Registry Item, the Action, Hive and Key Path will be the same. Value name, Value type and Value data will differ.
Action → Update
Hive → HKEY_LOCAL_MACHINE
Key Path → SOFTWARE\CandelaTechnologies\LANforge-Server
Value name → mode
Value name → clusterid
Value name → realm
Value name → lfver
Value name → password
Value name → username
Value name → FQDN
Value name → Installed
Once all 8 registry items have been made, go to Computer Configuration → Preferences → Windows Settings → Files.
Right click → New → File. Action: Replace. Source File: \\SERVER-HOSTNAME\DeploymentScripts\windows_lf_setup.ps1. Destination: C:\LANforge-Install\windows_lf_setup.ps1. Attributes: Archive. Click OK. Close out of the GPM editor.
Go to File Explorer, usually at the bottom of task bar. On the left hand side, go to Local Disk (C:\). Right click → New → Folder. Name it DeploymentScripts. Click Share.... Next to the Add button, there will be a drop down arrow, click this arrow and choose find people....
Search for DOMAIN\Administrator (i.e. CT96\Administrator), as well as BUILTIN\Administrator. Add both of these, if they were not already added. Search for Domain Computers and Domain Users, add both. An example is shown below of who this folder should be shared with.

Click share, ensure that DeploymentScripts is the name of the folder shared, as well as the file path, which should be DOMAIN\DeploymentScripts. Close out of these windows, and close File Explorer.
In the search bar, open PowerShell, and navigate to C:\DeploymentScripts, via cd ..\..\DeploymentScripts\.
Run this command to get the installation script: wget http://www.candelatech.com/windows_lf_setup.ps1 -o windows_lf_setup.ps1. Close out of PowerShell.
On a Windows client, if booting the computer for the first time, create a User named exactly the same as the User defined previously in this guide on step 6. Perform all nessecary Windows updates and installs through Windows update.
While the computer is updating, open a PowerShell terminal and type: ipconfig. Ensure that the default gateway for this client's IP address is the IP address of the Domain Controller.
In the Windows settings, search for "Access work or school". This requires Windows 10 or Windows 11 pro, and click Connect. Under Alternate Actions, click Join this device to a local Active Directory Domain. Type in the FQDN of the domain, i.e. ct96.candelatech.com.
If successful, a dialog box will pop up asking for username and password. This is the User as outlined in step 6. Enter username and password then click Next.
The next window will ask if an account should be added. It will be prepopulated with the username from step 43, and "Standard User", these defaults are fine. Click Next.
On the domain controller, go to Tools → ADUC, and on the left side click computers, drag newly listed computer to OU we created in step 5, on left side.
On client, click restart now.
After client reboots, logs from the install will be stored in C:\LANforge-Install\Logs\.
To list the files in descending order:
cd C:\LANforge-Install\Logs\.ls | sort LastWriteTime -Descending.deployment-log-YYYYMMDD-HHMMSS.txt.To follow the logs, use the commands below:
cd C:\LANforge-Install\Logs\.Get-Content deployment-log-YYYYMMDD-HHMMSS.txt -Wait.deployment-log-20260116-133645.txt, i.e., January 16th 2026 at 13:36:45.To add additional Windows clients, repeat steps 40 - 46.
Setting up a basic domain controller requires Windows Server 2022 or greater.
Install Windows Server 2022 on your server of choice.
Hostname can be anything, however in our experience setting hostname in relation to the domain name (e.g. ct96.candelatech.com), hostname being ct96-ad1 (active directory #1) was descriptive enough.
Workgroup, similar to hostname i.e. ct96.
Set a static IP for the domain controller. This static IP will be the DNS server for the windows clients. Ensure that the static IP is on the same subnet as the default gateway in step 2.
Starting at the Server Manager dashboard, in the upper right hand corner next to Tools, click Manage. Click Add Roles and Features.
Installation Type should be Role-based.
Server Selection should show the server. If no server is being shown, use the Add Servers command from the Manage menu in the upper right of the Server Manager Dashboard. Then click Next.
Server roles will include (image shown below as example):

Features will include:
Reboot for settings in step 8 and 9 to apply.
Upper right hand corner next to Manage and Tools there will be a notification flag, prompting the post deployment configuration. This will pull up the Active Directory Domain Services Configuration Wizard. Example image shown below.

Add a new forest, customize your domain name here. Functional level: Server 2012.
Directory Services Restore Mode (DSRM) password: customize here.
In case the Prerequisites Check fails, example image shown below, go to Remove Roles and Features in the upper right hand corner, where Add Roles and Features lives. Remove the roles and services shown in the second image shown below.



Next, go to Server Manager → Tools → Active Directory Users and Computers. Add User username/password. This is the exact same User as step 6 from the guide above. Set the password to never expire. Add this User to the group Administrators.
Open a PowerShell terminal as an Administrator and type: Install-WindowsFeature DHCP -IncludeManagementTools. Hit Enter.
Type: Add-DhcpServerInDC -DnsName HOSTNAME.DOMAIN_NAME -IPAddress STATIC IP OF HOSTNAME. Where hostname is the name of the Domain Controller Server, and domain name is the name of the domain chosen in step 12 of Appendix A. Hit Enter
Type: Add-DhcpServer4Scope -Name “NETWORK_NAME” -StartRange IP_START -EndRange IP_END -SubnetMask 255.255.255.0, where network name is the name of the network you want to create. IP start and IP end are the ranges of DHCP yo uwant to serve, with the corresponding proper subnet mask.
For more information, please visit this Microsoft Learn article on the subject.