Home › Technical articles

Đọc bằng tiếng Việt

OPC DA and DCOM errors after Windows updates: KB5004442, what to check and the path to OPC UA

TDL Industrial Automation · Last updated:

Since March 2023 Windows enforces DCOM hardening (KB5004442), so OPC DA between two PCs needs Packet Integrity authentication. The phases, events 10036 to 10038, error 0x80070005, an ordered checklist, and the routes that take DCOM off the network: one PC, a tunnel or OPC UA.

When OPC DA works on one computer but fails between two, or stopped working after Windows updates, the cause is usually DCOM authentication. Since Microsoft's update of 14 March 2023, Windows enforces DCOM hardening permanently: activation across machines must use at least the Packet Integrity authentication level, and OPC software that asks for less is refused. The short-term fix is current software and proper accounts at both ends; the lasting fix is to stop sending DCOM over the plant network.

Why OPC Classic depends on DCOM

The OPC Foundation groups OPC Data Access (DA), Alarms & Events (A&E) and Historical Data Access (HDA) under the name OPC Classic, built on Microsoft COM. A client and server on the same computer talk through local COM. On different computers the same calls travel as DCOM, which Microsoft describes as a protocol that exposes application objects through remote procedure calls (RPC).

  • Windows only. Inductive Automation notes that its OPC COM connection exists only on Windows gateways; other operating systems must use OPC UA.
  • Traffic in both directions. The same page explains that the OPC server calls back to the client with data. A client can connect and still show bad quality if the callback is blocked.
  • RPC ports. RPC clients ask the endpoint mapper on TCP 135 which dynamic port a service was given. Microsoft lists 49152–65535 as the default dynamic range from Windows Vista and Server 2008 onward, and gives DCOM as a random port in that range.

One of the reasons the OPC Foundation gives for creating OPC UA is that Microsoft has de-emphasised COM and DCOM in favour of cross-platform service-oriented architecture. It also describes OPC UA as firewall-friendly.

Three ways to connect an OPC DA client to a serverLane 1: client and server on two PCs, talking DCOM over RPC (TCP 135 and dynamic ports) in both directions; DCOM hardening applies here. Lane 2: client and server on one PC, local COM only, no DCOM on the network. Lane 3: a tunnel or gateway on each PC talks local COM to the OPC DA application, with OPC UA or TCP between the PCs and no DCOM on the network.Three ways to connect an OPC DA client to a server1 · Two PCs over DCOMDCOM hardening appliesPC 1 · OPC DA clientSCADA, historianPC 2 · OPC DA serverdriver to the PLCsDCOM over RPCTCP 135 + dynamic ports, both ways2 · One PCNo DCOM on the networkOPC DA clientOPC DA serverlocal COM3 · Tunnel or OPC UA gatewayNo DCOM on the networkOPC DAclientTunnel /gatewayTunnel /gatewayOPC DAservervia OPC UAor TCPPC 1PC 2Based on Microsoft KB5004442, the Matrikon and Softing notices on DCOM hardening, andInductive Automation's OPC COM and OPC COM Tunneller documentation. Figure: drawn by TDL.
Figure 1: Three ways to connect an OPC DA client to a server. On a phone, swipe sideways to see the whole figure.

What Microsoft changed: KB5004442

Microsoft's support article KB5004442 describes DCOM hardening made for the vulnerability CVE-2021-26414. With it enabled, a DCOM server requires activation requests at authentication level RPC_C_AUTHN_LEVEL_PKT_INTEGRITY (level 5, Packet Integrity in configuration tools) or higher. It came in three phases:

Update Phase Behaviour
8 June 2021 Phase 1 Hardening disabled by default; a registry value can enable it
14 June 2022 Phase 2 Hardening enabled by default; the registry value can still disable it
14 March 2023 Phase 3 Hardening enabled with no way to disable it

The registry value is RequireIntegrityActivationAuthenticationLevel under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\AppCompat. Microsoft describes it for the phases in which the hardening could be switched; Phase 3 removes the ability to disable it. Old advice to switch the hardening off through this value no longer works on a computer with current updates.

The same page adds two points:

  • Client auto-elevation. Updates from November 2022 to January 2023 raise non-anonymous activation requests from Windows DCOM clients to Packet Integrity automatically, so most Windows clients work unchanged once both ends have the January 2023 cumulative updates.
  • Anonymous activation is outside the hardening. A DCOM server that allows anonymous activation still allows it. This is not a fix: on the OPC Foundation forum, the administrator warns that a DA server running without security is exposed to attackers on the network.

The code side is explained in that forum post and in Matrikon's 2022 white paper. An OPC client that calls CoInitializeSecurity, or sets the level explicitly when it creates the server object, must request Packet Integrity itself, because its own setting overrides the Windows default. If it does not, only a new version from its vendor helps; Matrikon says Windows settings alone cannot work around it. Both documents date from 2022, before the auto-elevation updates. If event 10037 or 10038 still names the application on a fully updated client, Microsoft's event text also sends you to the application vendor.

The three phases of DCOM hardening in KB5004442Time axis drawn to scale from May 2021 to July 2023. Phase 1 on 8 June 2021: off by default, a registry value can enable it. Phase 2 on 14 June 2022: on by default, the registry value can still disable it. Phase 3 on 14 March 2023: always on, cannot be disabled. Events 10036 to 10038 arrive with updates from August to October 2021; client auto-elevation with updates from November 2022 to January 2023.The three phases of DCOM hardening in KB5004442Events 10036–10038 addedAug–Oct 2021Client auto-elevationNov 2022–Jan 20238 Jun 202114 Jun 202214 Mar 202320222023123Phase 1Off by default. A registryvalue can turn it on.Phase 2On by default. The registryvalue can still turn it off.Phase 3Always on. The registryvalue no longer turns it off.From Microsoft KB5004442: phase dates; events from the updates of 26 Aug 2021to 12 Oct 2021 (by Windows version); client auto-elevation from November 2022,complete with the January 2023 cumulative updates. Figure: drawn by TDL.
Figure 2: The three phases of DCOM hardening in KB5004442. On a phone, swipe sideways to see the whole figure.

Symptoms and what they point to

Microsoft added DCOM error events to the System log to find incompatible applications. They exist only on the Windows versions and updates listed in KB5004442, for example from the August 2021 update for Windows Server 2019 and the October 2021 update for Windows Server 2012 R2.

Symptom Where it appears What it points to
Event 10036 System log, server PC A user from a given IP address was refused because the activation level was below Packet Integrity
Event 10037 System log, client PC The named application set its level explicitly and too low; Microsoft refers you to its vendor
Event 10038 System log, client PC The named application uses the default level, which is too low; again the vendor
0x80070005 OPC client E_ACCESSDENIED: account, permission or authentication level
0x800706BA OPC client Windows error 1722, RPC server unavailable: no RPC path (network, firewall, name)
Connected, then bad quality OPC client Callbacks from server to client fail (Inductive Automation)
E_CLASSNOTREG, or no remote server listed OPC client OPC Core Components, which include the OPC Server Enumerator (OPCEnum), missing on one PC (Inductive Automation)

Both codes come from Microsoft's tables: 0x80070005 is E_ACCESSDENIED in the COM error list, and HRESULT_FROM_WIN32 places a Windows error in the 0x8007xxxx range, so error 1722 (hex 6BA) becomes 0x800706BA.

What to check, in order

  1. Confirm that DCOM is involved. Matrikon and Softing both state that OPC Classic communication on one computer is not affected. A local link that fails has a cause other than the hardening.
  2. Bring both PCs to current updates. Microsoft recommends the latest security updates. Rockwell's help warns that patched and unpatched computers cannot communicate reliably, because both ends need the same authentication level.
  3. Read the System log on both ends. Event 10036 on the server gives user and client IP; 10037 or 10038 on the client names the application.
  4. Check that the OPC software supports Packet Integrity. Rockwell's help says the minimum DCOM authentication level used by its products was raised to Packet Integrity, and points to notice PN1581 for the affected products. Softing's February 2023 notice lists products for which it strongly recommends a tunnel instead of DCOM, among them dataFEED OPC Suite 5.19 or older, and says it does not support problems with remote OPC Classic connections. Siemens' Desigo CC help states that every OPC component in the path must support the hardening. Ask each vendor which version you need.
  5. Check where the level is set. Matrikon's test procedure sets the default level, and the level of each OPC server in DCOM Config, to Packet Integrity; Softing names Packet Integrity or Packet Privacy. FactoryTalk software and RSLinx Classic instead keep their own DCOMAuthLevel (5 after upgrading the Rockwell software) and ignore the Component Services setting. Rockwell's help also lists backward-compatibility options for mixed systems, which remove the Microsoft update or lower the level, and states that levels below 5 are not supported once the Microsoft update is installed. Updating both ends is the route that keeps the protection.
  6. Check the accounts. Rockwell's help says that in a workgroup each user must exist on every computer in the connection with the same name and password, and blank passwords generally fail; in a domain, domain accounts are used. Give DCOM launch, activation and access rights to the accounts that run the OPC client and server, and to nobody else.
  7. Check OPC Core Components. Inductive Automation requires them on both machines for a remote connection, each in the 32-bit or 64-bit package that suits that machine.
  8. Check the firewall both ways. TCP 135 and the dynamic range must be open between the two hosts, including callbacks to the client, and only between them. The firewall article explains why the dynamic range should not be narrowed too far.

Some older vendor guides suggest granting Everyone and ANONYMOUS full rights or setting the default authentication level to None. That removes authentication: the hardening does not cover anonymous activation, so the server is open to anyone who can reach it. Grant DCOM rights only to the accounts that need them. If an old client cannot reach Packet Integrity, plan one of the routes below.

From symptom to fixFive rows of symptom, check and fix: events 10036 to 10038, error 0x80070005, error 0x800706BA, connected then bad quality, server not listed or E_CLASSNOTREG. If an old client cannot reach Packet Integrity: take DCOM off the network.From symptom to fixSYMPTOMCHECKFIXEvents 10036,10037, 10038Which application, whichauthentication levelVendor version thatsupports Packet Integrity0x80070005,access deniedWorkgroup: same accountand password on both PCs;or a domain accountRights only for the clientand server accounts0x800706BA,RPC server unavailableTCP 135 and dynamic portsopen; name resolvesOpen them onlybetween those two hostsConnects, then tagsshow bad qualityCallbacks to the client:firewall and rightsAllow callbacks forthe same accountsServer not listed,or E_CLASSNOTREGOPC Core Components(OPCEnum) on both PCsInstall the32-bit or 64-bit packagethat suits each PCOld client cannot reach Packet Integrity?Take DCOM off the network: one PC, a tunnel or OPC UA wrapper,or native OPC UA. Do not weaken security to make it work.Based on Microsoft (KB5004442, COM and system error code tables),Rockwell Automation, Matrikon, Softing and Inductive Automation. Figure: drawn by TDL.
Figure 3: From symptom to fix. On a phone, swipe sideways to see the whole figure.

Long-term routes: take DCOM off the network

Route DCOM on the network What changes Examples in vendor documents
Client and server on one PC None, local COM only OPC server installed on the SCADA or historian PC Local communication not affected (Matrikon, Softing)
Tunnel or OPC UA wrapper None; COM stays local Tunnel or gateway software on the PCs Matrikon OPC UA Tunneller, Softing dataFEED OPC Tunnel, Ignition OPC COM Tunneller
Native OPC UA None Client and server both speak OPC UA OPC UA server in the SCADA, historian, driver package or controller

One PC. If the OPC DA server can run on the SCADA or historian computer, the DCOM link disappears; that PC then needs its own route to the controllers.

Tunnel or wrapper. The OPC Foundation forum post suggests a proxy or wrapper using COM locally and OPC UA on the network. Matrikon's UA Tunneller connects locally to OPC Classic clients and servers and uses TCP/IP between its components, without changes to existing applications. Softing recommends its dataFEED OPC Tunnel instead of DCOM for remote links. Ignition's OPC COM Tunneller exposes local COM connections through Ignition's OPC UA server. PTC's Kepware tutorial shows a similar pattern: an OPC UA Client driver on one computer reads a Kepware server on another, and an OPC DA client reads the local instance.

Native OPC UA. OPC UA was released in 2008. It runs on Windows, Linux and other systems, from PCs and cloud servers to PLCs and microcontrollers, and its security includes X.509 application certificates, message signing, encryption, user authentication and auditing. OPC UA Part 6 gives opc.tcp port 4840 as the well-known address of the Local Discovery Server; each server's endpoint port is set in the product. PTC's tutorial says to note that port for the firewall exception and that the default endpoint accepts only signed and encrypted connections. Keep it that way: with the policy None, the tutorial notes, certificates are not validated.

How OPC UA fits into zones and conduits is covered in the IEC 62443 article, and the layers it connects in What is SCADA.

Applying it on a project

  • List every OPC Classic link: client PC, server PC, both software versions, DA, A&E or HDA, and whether it crosses machines. Historians can read through an OPC DA interface, as the historian article describes.
  • Ask vendors for the Packet Integrity version of each client and server, and test on patched machines before the plant applies updates.
  • Prefer OPC UA for new links and replace cross-machine DCOM links during upgrades.
  • Do not weaken security to make a link work: no broad accounts, no anonymous access, no authentication level of None, and firewall rules limited to the hosts involved.

TDL's page on connecting existing equipment to SCADA describes bringing BACnet/IP equipment into SCADA through gateways and KEPServerEX, and the SCADA and historian page describes historian data from PLCs and third-party systems over OPC UA, Kepware and Modbus. If a FactoryTalk View SE client is what fails, see FactoryTalk View SE client cannot connect.

Frequently asked questions

Why did OPC DA stop working between two computers after Windows updates?

Since the 14 March 2023 update, Windows enforces DCOM hardening permanently and accepts remote activation only at Packet Integrity or higher. OPC software that requests a lower level in its own code, or a mix of patched and unpatched computers, then fails, often with access denied.

Can the DCOM hardening still be turned off with the registry key?

No. Microsoft describes the RequireIntegrityActivationAuthenticationLevel value for the phases in which the hardening could be switched, and the March 2023 phase removes the ability to disable it. The fix is OPC software that supports Packet Integrity, or a route without DCOM between computers.

What do DCOM events 10036, 10037 and 10038 mean?

They are System log events Microsoft added to find applications that activate DCOM below Packet Integrity. Event 10036 appears on the server and names the user and client IP address; 10037 and 10038 appear on the client and name the application, with an explicitly set level or the default level.

Does the DCOM hardening affect OPC UA or OPC DA on one computer?

Matrikon states that local OPC Classic communication and OPC UA are not affected, and Softing says the same for a client and server on one computer. The hardening concerns DCOM between machines.

Which ports does OPC DA over DCOM need through a firewall?

TCP 135 for the RPC endpoint mapper and the dynamic range, by default 49152–65535 from Windows Vista and Server 2008 onward, in both directions because the server calls back to the client. Open them only between the hosts involved.

Sources

Read 2 November 2026. This article paraphrases the sources and does not quote them; read the original documents before designing or working on a system.

Related services:
SCADA & historian Connecting existing equipment to SCADA