Overview of the Siemens Automation License Manager
The Automation License Manager (ALM) is a Siemens AG utility that administers license keys for the SIMATIC, STEP 7, TIA Portal, and SINAMICS Startdrive product families. The license key is the technical representation of a software license and is bound to a specific dongle, hard-disk volume, or ALM server. ALM runs as a Windows service (almsrv64.exe / almsrv.exe depending on ALM release) plus a user interface (ALM.exe) and exchanges license data between engineering PCs and license servers using TCP.
The official application manual is published by Siemens as Automation License Manager (PDF). The companion Siemens Industry Online Support entry that lists the runtime ports required to operate the license management unit (LMU) is Required ports to operate LMU.
When ALM is used purely on a single workstation, no firewall configuration is required. The moment a license is transferred between two PCs, transferred to a license server, or borrowed over the network, the Windows Firewall or any corporate firewall in the path must allow the relevant TCP ports. This reference documents which ports must be opened, why each one is required, and how to configure Windows Firewall without disabling it entirely.
License Transfer Architecture
ALM license transfer over TCP uses two distinct communication layers:
-
ALM Remote Protocol (port 4410/tcp) – Used by the ALM client to discover a remote license server and to issue license-management commands (transfer, borrow, return, check-in). This port is owned by
almsrv*.exe. -
SMB / CIFS file-share (ports 139/tcp and 445/tcp) – Used by Windows file sharing to copy the binary
*.LICkey file from the source PC into a writable shared folder on the target PC. ALM cannot drop the license file via a proprietary mechanism; it relies on a standard Windows share.
.LIC file to the target through the SMB share.
Required TCP Ports
| Port / Protocol | Direction | Service / Process | Purpose |
|---|---|---|---|
| 4410 / TCP | Inbound (target) / Outbound (source) |
almsrv64.exe / almsrv.exe
|
ALM remote-management channel: connect, list, transfer, borrow, return licenses |
| 139 / TCP | Inbound (target) / Outbound (source) |
svchost.exe (LanmanServer) |
SMB over NetBIOS session service – legacy file-share transport |
| 445 / TCP | Inbound (target) / Outbound (source) |
svchost.exe (LanmanServer) |
SMB over TCP – direct host SMB transport used by modern Windows clients |
| 137 / UDP, 138 / UDP | Inbound / Outbound |
svchost.exe (LanmanServer) |
NetBIOS name and datagram service – required for computer-browser resolution on legacy networks |
\IP-address UNC paths with direct-hosted SMB, UDP 137/138 are not strictly required, but TCP 139 and 445 always are. Open UDP 137/138 only if computer-browser resolution fails.
How to Disable the ALM Remote Port (4410)
Sites that use ALM exclusively for local license management and do not need remote license transfer can reduce the attack surface by closing port 4410. According to the Siemens Required ports to operate LMU article, this is done from inside the ALM client:
- Start Automation License Manager on the PC where the LMU is installed.
- Open File → Settings.
- In the dialog, clear the option that allows accessibility of port 4410 for remote connections.
- Click OK and restart the
almsrv*service (sc stop almsrv64 && sc start almsrv64from an elevated command prompt) so the change takes effect.
Prerequisites for Network License Transfer
Before opening firewall ports, prepare the target PC so that ALM can drop a license file into it.
-
Shared folder with write permission. On the target PC, open Explorer, right-click the destination drive or folder (commonly
C:\or a dedicatedD:\Licenses), choose Properties → Sharing, enable Share this folder on the network, and tick Allow network users to change my files. AddEveryonewith Read/Write for a quick engineering setup, or restrict to a specific ALM service account for production. - Matching ALM version. Source and target ALM should be the same major release (for example, ALM V6.0 SPx paired with ALM V6.0 SPx). Mismatched versions can reject transferred keys. Siemens bundles ALM with STEP 7 / TIA Portal media; the latest is also available on the Siemens Industry Online Support portal.
-
Service account permissions. The Windows user that runs
almsrv*on the source PC must be able to authenticate against the target share. Using a domain account is recommended so that Kerberos/NTLM credentials are accepted by both endpoints. - Firewall disabled / ports open. This is the main subject of the article – see the next section.
-
Network reachability. Validate basic IP connectivity before troubleshooting ALM:
ping <target>,net view \\<target>, andTest-NetConnection -Port 4410from PowerShell.
Windows Firewall Configuration
The recommended approach is to create inbound rules for ports 139, 445, and 4410 on the target PC, plus matching outbound allow rules on the source PC. Adding an exception for the executable (almsrv64.exe) is not sufficient because SMB is mediated by svchost.exe hosting the LanmanServer service group.
Inbound rules on the target PC
- Open Windows Defender Firewall with Advanced Security (
wf.msc). - Right-click Inbound Rules → New Rule.
- Select Port → TCP → enter
4410. Name the ruleALM Remote (TCP 4410). - Repeat for TCP
139(rule name:SMB NetBIOS Session) and TCP445(rule name:SMB Direct Host). - For each rule set Action to Allow the connection, Profile to Domain, Private (avoid Public), and Scope to the IP range of your engineering subnet.
Outbound rules on the source PC
If the source PC uses a host-based firewall with default-deny outbound policy, mirror the inbound rules as outbound allow rules for TCP 139, 445, and 4410 to the target IP address.
PowerShell one-liner
For quick deployment on a single target:
New-NetFirewallRule -DisplayName "ALM Remote 4410" -Direction Inbound -Protocol TCP -LocalPort 4410 -Action Allow -Profile Domain,Private
New-NetFirewallRule -DisplayName "SMB 445" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow -Profile Domain,Private
New-NetFirewallRule -DisplayName "SMB 139" -Direction Inbound -Protocol TCP -LocalPort 139 -Action Allow -Profile Domain,Private
UNC Path and ALM Transfer Procedure
- On the source PC, start ALM and select the license you want to transfer.
- Right-click and choose Transfer → Network.
- Enter the target PC name (for example
\ENG-PC-02) or IP address (\192.168.10.42). - When prompted, choose the shared target drive / folder created in the prerequisites step.
- Confirm the transfer. ALM writes the
.LICfile to the share and registers it on the target license server.
Test-NetConnection -ComputerName <target> -Port 445 and net use \\<target>\share /user:<domain\user> before re-attempting in ALM.
Service and Process Reference
| Component | Binary | Default Path | Notes |
|---|---|---|---|
| ALM Service (64-bit) | almsrv64.exe |
%ProgramFiles%\Siemens\AutomationLicenseManager\bin\almsrv64.exe |
Listens on TCP 4410 when remote access is enabled. Runs as Local System. |
| ALM Service (32-bit, legacy) | almsrv.exe |
%ProgramFiles(x86)%\Siemens\AutomationLicenseManager\bin\almsrv.exe |
Used by older TIA / STEP 7 releases bundled with 32-bit ALM. |
| ALM UI | ALM.exe |
Same install root as the service | User front-end. Calls the service via local RPC and remote TCP 4410. |
| SMB Server |
svchost.exe (LanmanServer group) |
%SystemRoot%\System32\svchost.exe |
Hosts the file-share service, listens on TCP 139/445 and UDP 137/138. |
Verification Checklist
- Confirm the ALM service is running:
sc query almsrv64→ stateRUNNING. - Confirm TCP 4410 is listening:
netstat -ano | findstr :4410. PID should matchalmsrv64.exe. - From the source PC, run
Test-NetConnection -ComputerName <target> -Port 4410.TcpTestSucceeded : Trueis required. - From the source PC, run
Test-NetConnection -ComputerName <target> -Port 445.TcpTestSucceeded : Trueis required. - Open
\\<target>\sharein Explorer; create a small test file from the source PC to confirm write access. - Perform a test license transfer of a low-value trial license in ALM and verify it appears in the target ALM.
- Review the Windows Firewall log (
%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log) for dropped packets on ports 139, 445, or 4410.
Troubleshooting Matrix
| Symptom | Likely Cause | Resolution |
|---|---|---|
| ALM fails to find the target host | Port 4410 blocked or ALM remote access disabled in File → Settings | Open TCP 4410 inbound on target; verify ALM remote-access toggle is enabled. |
| "Network path not found" when entering target name | NetBIOS resolution failing (UDP 137/138 blocked) or hostname not resolvable | Use \<IP-address> UNC path; add DNS/WINS entry for target host; open UDP 137/138 if name resolution is needed. |
| "Access is denied" on shared folder | SMB write permission missing or wrong credentials | Grant Change permission on the share and NTFS level; verify with net use; align the user running almsrv64. |
| Transfer starts but hangs at 0% | TCP 445 blocked – SMB session cannot be established | Open TCP 445 inbound on target; allow outbound TCP 445 from source. |
| License transferred but target ALM does not list it | License written to a folder the ALM service is not monitoring; or mismatched ALM version | Drop .LIC into a path the ALM service scans (default: drive root of the license server); align ALM versions. |
| Works with firewall disabled, fails with firewall on | Host-based or corporate firewall blocking one of the required TCP ports | Re-enable firewall and add explicit inbound rules for 139/445/4410; never disable the firewall in production. |
| Error “Connection to the license server failed” from TIA Portal | TIA Portal cannot reach ALM service over TCP 4410 | Verify ALM service is started; open 4410 on the license server; check Use license server setting in TIA Portal. |
Security Hardening Notes
- Restrict the inbound rules to the engineering VLAN / IP range; never expose SMB (139/445) or ALM (4410) on a Public profile.
- Disable SMBv1 on both PCs; ALM does not require it and SMBv1 is a known attack vector. Use
Set-SmbServerConfiguration -EnableSMB1Protocol $false. - If ALM is not used remotely, follow the File → Settings procedure to disable port 4410 as documented by Siemens.
- Avoid sharing the entire
C:\drive in production; create a dedicatedLicenses$hidden share with NTFS ACLs. - Restrict source PCs to authorized engineering accounts by combining Windows Defender Firewall rules with IPsec or NPS policies where required.
Field-Proven Caveats
- When Windows Firewall is enabled with default rules, adding an exception for the
ALM.exeexecutable alone is not enough – the SMB file copy is performed bysvchost.exehosting the LanmanServer service, so a process-based rule does not cover the share write. - Domain-joined PCs on a corporate network often have firewall policy pushed by Group Policy; locally created rules may be overridden. Confirm the rules survive a
gpupdate /force. - VPN tunnels that drop SMB (NetBIOS) traffic will block port 139 but may still pass 445; if the remote office cannot reach the license server, use TCP 445 only or set up an SMB-over-quic / VPN profile that explicitly allows file-sharing.
- On virtualized engineering workstations with checkpoint firewalls, the checkpoint driver can block SMB even when Windows Firewall shows rules as active; verify with
netsh advfirewall show allprofiles.
Which TCP ports does Siemens Automation License Manager use for network license transfer?
ALM uses TCP 4410 for its own remote-management protocol (almsrv64.exe) and relies on Windows SMB for the actual file copy, which requires TCP 139 and TCP 445 (and optionally UDP 137/138 for NetBIOS name resolution) inbound on the target PC.
Can I keep Windows Firewall enabled and still transfer licenses with ALM?
Yes. Create inbound allow rules for TCP 139, 445, and 4410 on the target PC and matching outbound allow rules on the source PC. Adding an exception only for ALM.exe is not sufficient because the license file is moved through Windows file sharing.
How do I disable remote access to ALM and close port 4410?
In the ALM client, open File → Settings and deactivate the option that allows accessibility of port 4410 for remote connections, then restart the almsrv64 service. Local license management continues to work, but remote transfers will fail.
Why does ALM report "Network path not found" even though the share exists?
The cause is usually name resolution or a blocked NetBIOS/SMB port. Test with an IP-based UNC path such as \192.168.x.x\share and verify Test-NetConnection -Port 445 succeeds before troubleshooting ALM itself.
Where can I find the official list of ALM ports from Siemens?
The official application manual is the Automation License Manager (PDF) and the companion Siemens Support entry Required ports to operate LMU lists the runtime ports and the toggle to disable port 4410.