Problem Overview
Engineers and integrators installing SIMATIC TIA Portal V16 (including V16 Update 1) on Windows 10/11 workstations frequently encounter a circular installation failure when running the setup under an account that does not have native Administrator rights. The Siemens Installer Assistant (SIA), which is the bootstrap process behind every TIA Portal, WinCC, STEP 7, and Startdrive install, requires elevated privileges to write to C:\Program Files (x86)\Common Files\Siemens and to update system services such as S7Help, ALM (Automation License Manager), and the Siemens PLM License Server.
When the SIA detects that a file replacement cannot be performed while the OS is running, it requests a reboot to complete the pending operation. The boot cycle, however, drops the elevated (UAC) token that the user obtained when launching the original installer. After the restart, the SIA starts under the standard user context, fails its privilege check, and the engineer is left with a dialog that again demands a reboot, or with a setup that silently rolls back. Re-running the assistant from an elevated shell with the documented start.exe parameters often re-arms the pending-file-rename list and produces the same loop.
This article documents the root cause, the exact registry mechanism that drives the loop, and the field-proven procedure to break the cycle and complete the install. It applies to TIA Portal V16.0, V16 Update 1, V16 Update 2, and similar SIA-based installation packages (build 407 of the SIA is referenced throughout the examples because it is the bootstrap version shipped with the TIA V16 media).
\407\, \408\) changes.Symptoms and Error Behavior
The following reproducible symptoms characterize the elevation/reboot loop on TIA Portal V16 setup:
- The SIA starts, extracts the bundle, and displays a setup window that requests a Windows restart with the message "A system restart is required before continuing the installation."
- After the PC reboots, no SIA window opens automatically. The user has to launch the assistant manually.
- Launching the assistant by double-clicking
start.exeinC:\Program Files (x86)\Common Files\Siemens\Automation\Siemens Installer Assistant\407\fails silently or displays "You do not have sufficient privileges to start the service." - Launching the same
start.exewith Run as administrator and the original/afterreboot /bundlepath=parameters, for example:C:\Program Files (x86)\Common Files\Siemens\Automation\Siemens Installer Assistant\407\start.exe /I1033 /afterreboot /bundlepath="C:\Temp\SIMATIC_TIA_V16.0_Upd1\InstData"
either re-arms the pending reboot, or returns immediately with another restart request, producing the infinite loop. - Removing the
/afterrebootswitch from the command line has no effect because the SIA detects the still-pendingPendingFileRenameOperationslist in the Windows registry and re-inserts the request. - Event Viewer » Application shows MSI Installer warnings with event ID 1004 or 1001 and source MsiInstaller indicating that a file could not be replaced because it was in use.
Root Cause Analysis
The TIA Portal bootstrap is a two-stage process. The SIA extracts the install bundle to a temporary path (commonly %TEMP%\Siemens\SIA or the path passed via /bundlepath) and then schedules a number of MoveFileEx calls with the MOVEFILE_DELAY_UNTIL_REBOOT flag. The MoveFileEx API causes the Win32 subsystem (specifically the Session Manager, smss.exe) to add entries to the multi-string registry value PendingFileRenameOperations located at:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperationsWhen the user reboots, the Session Manager consumes that value during boot and renames/deletes the files. If the rename succeeds, the SIA normally resumes after the reboot and finishes the setup.
The loop is triggered by two independent issues that compound each other:
- UAC token is not persisted across reboot. Even when a user is a member of the local Administrators group, the elevated token produced by consent.exe is not retained across a sign-out or restart. After the reboot, the SIA starts in the standard-integrity context and cannot perform the file replacement that the previous elevated run scheduled. The Session Manager then re-marks the rename as pending.
-
The
PendingFileRenameOperationsvalue is never cleared by the SIA itself. If the SIA cannot complete the rename (for example, because another process that holds the file has been respawned automatically, such as the ALM service, the S7DOS service, or an anti-virus product), the registry value remains in place. On the next SIA launch, the bootstrap reads the value, sees the operation is still pending, and re-issues the reboot request. This is why removing/afterrebootdoes not help: the SIA consults the registry, not the command line.
The correct resolution is therefore to clear the orphaned registry value while the SIA and all related services are stopped, then re-launch the bootstrap from a fully elevated shell. The SIA then runs through the install without re-arming the pending list, because the prerequisite file operations are no longer in the registry.
PendingFileRenameOperations value (right-click » Export) before deleting it. Although the value is normally safe to clear when it only contains Siemens-owned paths, other installers (Windows Update, Office, .NET cumulative updates) may also have entries in this value. Deleting entries that belong to a third-party installer is unsupported and can corrupt those products.Affected Products and Versions
| Product | Version | SIA Build | Installer Path |
|---|---|---|---|
| SIMATIC STEP 7 Professional | V16.0 / V16 Update 1 | 407 | %CommonProgramFiles(x86)%\Siemens\Automation\Siemens Installer Assistant\407\ |
| SIMATIC WinCC Professional / Comfort / Advanced | V16.0 / V16 Update 1 | 407 | Same as above |
| SIMATIC Startdrive | V16.0 / V16 Update 1 | 407 | Same as above |
| SIMATIC TIA Portal (combined media) | V16.0 / V16 Update 1 | 407 | Same as above |
| PLCSIM | V16.0 / V16 Update 1 | 407 | Same as above |
| SINAMICS Startdrive | V16.0 / V16 Update 1 | 407 | Same as above |
The same root cause applies to TIA Portal V15.1 (SIA 405/406), V17 (SIA 412), and V18 (SIA 415). The build number in the path increments with each major release.
Prerequisites
Before applying the resolution, confirm that the following prerequisites are met. Skipping these is the most common reason the loop re-occurs even after the registry has been cleared.
- The installing user must be a member of the local Administrators group. Verify with:
net localgroup administrators | findstr /i "%USERNAME%" - User Account Control (UAC) must not be set to the lowest notification level ("Never notify"). If it is, the SIA may launch with the standard integrity token and silently fail the privilege check. Use the default level 3 (notify on changes to the desktop) or level 2 (notify on program installs).
- All Siemens services must be stopped before clearing the registry. Open an elevated
cmd.exeand run:net stop "S7Help" /ynet stop "ALM" /ynet stop "s7oiehsx" /ynet stop "SimaticRackService" /ynet stop "StartdriveService" /y(only present on Startdrive installs)net stop "Siemens PLM License Server" /y - All Siemens processes must be ended. Open Task Manager » Details and terminate
SIA407.exe,start.exe,Siemens.Automation.Portal.exe,S7WEBSRV.exe,almsrv64.exe, and any instance ofMSBuild.exestarted by the SIA. - Real-time anti-virus scanning must be temporarily disabled for
C:\Program Files (x86)\SiemensandC:\Program Files\Siemens. McAfee, Trend Micro, and Sophos products are known to hold DLLs locked even when the OS reports the file as closed. - A full, restorable image of the workstation or a working Veeam/Acronis snapshot is recommended. Although clearing the registry is reversible, an interrupted install followed by an unwanted reboot can leave the TIA install in a partially registered state that is more time-consuming to repair than to roll back.
Step-by-Step Resolution
Apply the following sequence exactly. Each step has a verification check that must pass before continuing.
Step 1 - Stop all Siemens services and processes
- Open Start, type
cmd, right-click Command Prompt and select Run as administrator. - Run the following batch:
net stop "S7Help" /y
net stop "ALM" /y
net stop "s7oiehsx" /y
net stop "SimaticRackService" /y
net stop "StartdriveService" /y
net stop "Siemens PLM License Server" /y
taskkill /F /IM SIA*.exe /T
taskkill /F /IM start.exe /T
taskkill /F /IM Siemens.Automation.Portal.exe /T
taskkill /F /IM almsrv64.exe /T
taskkill /F /IM S7WEBSRV.exe /T - Verify with
sc query state= stopped | findstr /i "SERVICE_NAME: S7 SERVICE_NAME: ALM SERVICE_NAME: Simatic". The list must be empty.
Step 2 - Back up and clear the PendingFileRenameOperations value
- Open Start, type
regedit, right-click and select Run as administrator. The Registry Editor must run elevated; otherwise the SIA will later fail to read this exact value at startup and the loop will persist. - Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager - Right-click the value
PendingFileRenameOperationsand select Export. Save the.regfile to a path outside%ProgramFiles%, for exampleD:\Backups\PendingFileRenameOperations_<date>.reg. - Open the exported file in Notepad and inspect its content. Each line is a pair of paths:
\??\C:\old\path.dllfollowed by\??\C:\new\path.dll. Files prefixed with!\??\are scheduled for deletion. Confirm that all entries are paths underC:\Program Files\Siemens,C:\Program Files (x86)\Siemens, or the bundle path. If you see entries for Windows, Office, .NET, or non-Siemens products, do not delete the whole value. Instead, edit the value as a REG_MULTI_SZ and remove only the Siemens lines. The two extra empty lines that delimit a multi-string value must remain. - Right-click the value and select Delete. Confirm the prompt.
- Refresh (F5) and verify the value is gone. The Session Manager will rebuild it on the next MoveFileEx call, so an empty value here is the expected state.
Step 3 - Re-launch the Siemens Installer Assistant as Administrator
- Reopen the elevated
cmd.exefrom Step 1. - Run the assistant using the same command line the SIA originally produced, but with the
/afterrebootswitch kept (it is required so the SIA knows the bundle has already been extracted):"C:\Program Files (x86)\Common Files\Siemens\Automation\Siemens Installer Assistant\407\start.exe" /I1033 /afterreboot /bundlepath="C:\Temp\SIMATIC_TIA_V16.0_Upd1\InstData" - The SIA detects that the pending list is empty, skips the restart prompt, and resumes the install at the next setup dialog.
- Complete the wizard. Do not cancel; if you cancel partway, repeat Steps 1 to 3 before launching it again.
Step 4 - Verification
After the setup finishes, verify that the install is healthy:
- The setup window displays "Setup was completed successfully." and writes a log to
%ProgramData%\Siemens\Automation\Logfiles\Siemens.Automation.Portal.Install.log. The last entry of that log should beResult: Installation succeeded. - The Start menu contains Siemens Automation » TIA Portal V16.
- The TIA Portal opens without the error "A default license could not be found." when no license is installed, or it accepts an existing license from the ALM.
- The following services are set to Automatic and are in the Running state:
S7Help,ALM,SimaticRackService,Siemens PLM License Server, andStartdriveServiceon systems with Startdrive. - The registry value
PendingFileRenameOperationseither does not exist or contains only empty lines (the default state).
Why Removing /afterreboot Does Not Help
The /afterreboot switch is a hint to the SIA, not a control switch. It tells the bootstrap "I am being resumed after a reboot that the previous run requested", which the SIA uses to skip the language/destination dialogs and to log into the same install session. The SIA still consults the Session Manager to verify that the prerequisite file replacements have been performed. If the value at PendingFileRenameOperations is non-empty, the SIA ignores the hint and re-arms the reboot. Removing the switch forces the SIA to treat the launch as a fresh run, which extracts a new bundle and overwrites the cached setup state, but it does not change the underlying file-rename backlog. The loop therefore persists.
Command-Line Reference for the SIA start.exe
| Switch | Purpose | Value / Example |
|---|---|---|
/I |
Language identifier (LCID). 1033 = English (US), 1031 = German, 1036 = French, 1040 = Italian, 1034 = Spanish. | /I1033 |
/afterreboot |
Tells the SIA that the OS has just rebooted and the install must be resumed. Required when re-launching manually. | /afterreboot |
/bundlepath |
Path to the extracted install bundle. The bundle is normally located in %TEMP%\<random> unless the SIA was launched with this switch. |
/bundlepath="C:\Temp\SIMATIC_TIA_V16.0_Upd1\InstData" |
/silent |
Runs the SIA in unattended mode. Useful for SCCM/MDT deployment; not recommended when troubleshooting the reboot loop. | /silent |
/log |
Enables verbose MSI logging to the specified path. Required when opening a Siemens Support Request. | /log="C:\Logs\TIA_V16.log" |
Registry Key Reference
| Key / Value | Type | Default Content | Used For |
|---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations |
REG_MULTI_SZ | Empty (two empty lines) | List of file paths the Session Manager must rename or delete at next boot. Both the SIA and Windows Update use this value. |
HKLM\SOFTWARE\WOW6432Node\Siemens\Automation\InstalledSoftware\TIA_V16\SetupPath |
REG_SZ | Empty (set by setup) | Absolute path of the installed TIA Portal. Must be checked for the file Siemens.Automation.Portal.exe after install. |
HKLM\SYSTEM\CurrentControlSet\Services\ALM\Start |
REG_DWORD | 2 (Automatic) | Startup type of the Automation License Manager. The setup changes this to 2; on a failed install it may remain at 4 (Disabled). |
HKCU\Software\Siemens\Automation\TIA\V16\Settings\LastInstallResult |
REG_DWORD | 0 | 0 = success, 1603 = fatal MSI error, 3010 = success with reboot required. The SIA reads this on the next launch to decide whether to prompt for a reboot. |
Alternative Approaches
If the registry-based fix cannot be applied (for example, the workstation is locked down by group policy and the user cannot edit HKLM), consider the following alternatives.
Use a dedicated Administrator account for the install
Create a local account named tiaadmin that is a member only of the Administrators group, sign out of the original user, and sign in as tiaadmin. Run the install from that account. Because tiaadmin has no standard-user session components that the UAC must elevate, the post-reboot context remains in the Administrators group and the SIA can complete the install. After the install, the tiaadmin account can be disabled or removed.
Use the TIA Administrator on EPM systems
On workstations managed by Ivanti / BeyondTrust / CyberArk EPM, the Siemens install is blocked because the EPM agent strips the elevated token at session start. Siemens documents a separate workflow for these systems in which the TIA Administrator V3 is installed first and the install is performed by a privileged account that the EPM has whitelisted. See the official Siemens support entry What do you need to consider when installing the TIA Administrator on Endpoint Privilege Management active systems? for the precise whitelist keys and account-creation steps.
Use Sysinternals PsExec to launch a System-level shell
As a last resort, launch the SIA from a SYSTEM-level shell using PsExec. This bypasses UAC entirely. The command line is:PsExec64.exe -s -i -d "C:\Program Files (x86)\Common Files\Siemens\Automation\Siemens Installer Assistant\407\start.exe" /I1033 /afterreboot /bundlepath="C:\Temp\SIMATIC_TIA_V16.0_Upd1\InstData"
This approach is unsupported by Siemens and is only recommended when the workstation is destined for disposal after the install.
Preventing the Loop in Future Installs
- Always launch the TIA setup with a right-click » Run as administrator from the original user session, even if UAC is configured to auto-elevate members of the Administrators group. Some Windows 10 builds (especially 21H2) fail to auto-elevate the SIA because its manifest does not declare
requestedExecutionLevelasrequireAdministrator. - Disable anti-virus real-time scanning for the duration of the install. Re-enable it after the setup completes.
- Make sure no other setup (Windows Update, .NET cumulative, Office C2R) is running concurrently. Concurrent setups can each write to
PendingFileRenameOperationsand interfere with each other. - Free at least 25 GB on the system drive before the install. TIA V16 requires up to 22 GB of working disk space for the bundle, the install, and the cached MSIs.
- Use a clean user profile (no roaming profile, no mandatory profile) for the first install. Profile redirection can prevent the SIA from writing the
LastInstallResultvalue toHKCU, which causes the next launch to re-evaluate the pending list. - After the install, lock the workstation instead of signing out or restarting. The standard-integrity session is preserved across the lock and the install can be completed in the next run.
Troubleshooting Matrix
| Observed Symptom | Most Likely Cause | Recommended Action |
|---|---|---|
Setup dialog re-appears with reboot request after manual start.exe launch |
PendingFileRenameOperations value still populated | Apply Steps 1-3 of the resolution above |
| Setup window opens then closes silently | UAC token was not elevated, SIA cannot write to Program Files | Right-click start.exe » Run as administrator
|
| Event ID 1004, source MsiInstaller, "file in use" | Anti-virus or background service is holding a Siemens DLL | Stop anti-virus temporarily, kill almsrv64.exe and S7WEBSRV.exe
|
| Error 1920, "Service S7Help failed to start" | Service set to Disabled by failed install |
sc config S7Help start= auto, then net start S7Help
|
| Error 1719, "Windows Installer service could not be accessed" | Windows Installer service is stopped |
net start msiserver, set to Manual
|
| SIA does not start at all after reboot | Task Scheduler entry for the SIA was deleted by anti-virus | Recreate the task with schtasks /create /tn "SIA407 Resume" /tr "...\start.exe" /sc once /st 00:00
|
Frequently Asked Questions
Why does the TIA Portal V16 installer request a reboot in the middle of the setup?
Files in C:\Program Files (x86)\Siemens are in use by running services such as ALM, S7Help, or the Siemens PLM License Server. The Siemens Installer Assistant schedules those files to be replaced at the next boot using the Windows PendingFileRenameOperations registry value, which is why a reboot is requested.
Is it safe to delete the PendingFileRenameOperations registry value?
It is safe when the value contains only Siemens-related paths. Export the value to a .reg file first, inspect the contents with Notepad, and only delete the value if every line begins with a path under Siemens. If non-Siemens entries (Windows Update, Office, .NET) are present, edit the value as a REG_MULTI_SZ and remove only the Siemens lines.
What is the difference between /I, /afterreboot, and /bundlepath in the SIA command line?
/I sets the language (1033 for English), /afterreboot tells the SIA it is being resumed after a reboot and skips the language/destination dialogs, and /bundlepath points to the extracted install bundle. Re-launching the SIA manually after a reboot requires all three switches to be present and the command to be executed from an elevated shell.
Can I install TIA Portal V16 from a non-Administrator account?
No. The SIA must run in the Administrators group with a fully elevated UAC token. Use a dedicated local account such as tiaadmin for the install, or, on EPM-managed workstations, follow the TIA Administrator V3 workflow documented in Siemens support entry 110001028.
How do I confirm the install completed after applying the fix?
Check the log at %ProgramData%\Siemens\Automation\Logfiles\Siemens.Automation.Portal.Install.log for the final line Result: Installation succeeded, confirm that the Start menu contains Siemens Automation » TIA Portal V16, and verify that the S7Help and ALM services are in the Running state with startup type Automatic.