DCOM: use target IP (not FQDN) for COSERVERINFO.pwszName on RemoteCreateInstance#12
DCOM: use target IP (not FQDN) for COSERVERINFO.pwszName on RemoteCreateInstance#12chemrid wants to merge 1 commit into
Conversation
…ateInstance When DcomClient.ConnectTo addresses a target by FQDN, the SCM activation (IRemoteSCMActivator::RemoteCreateInstance) fails with E_FAIL (0x80004005): the FQDN passed through ScmActivatorClient -> COSERVERINFO.pwszName is treated as a foreign/remote server. Passing null/empty instead yields E_INVALIDARG. Resolve the host to its IP for the activation server name; the RPC bind/SPN keep using the FQDN endpoint, so Kerberos still works. Verified end-to-end (WMI query + full inventory) over both NTLM and Kerberos against a DC and a member server addressed by FQDN. Refs trustedsec#11
|
Have you tried this with the latest pre-release build? Titanis was encoding one of the fields documented as being ignored with a token value, which appeared to actually be a buffer size hint, and I think this imposed a limitation on the length of the host name at around 16 characters, which coincidently seemed to match up with all host/IP vs. FQDN scenarios, depending on the length of the FQDN. I'm curious if this would also fix your FQDN scenario. |
|
Correction to the description: I removed the claim that this was verified over Kerberos. This fix is verified only for the NTLM-by-FQDN activation path. A controlled test (SPNEGO offering Kerberos only, no NTLM) shows the Kerberos DCOM bind fails with |
Fixes the SCM activation failure described in #11.
When
DcomClient.ConnectToaddresses a target by FQDN,IRemoteSCMActivator::RemoteCreateInstancefails withE_FAIL (0x80004005): the FQDN flows throughScmActivatorClientintoCOSERVERINFO.pwszNameand the SCM treats it as a foreign/remote server. Passingnull/empty instead yieldsE_INVALIDARG (0x80070057).This change resolves the host to its IP for the activation server name (the RPC bind/endpoint is unchanged):
Verified with NTLM end-to-end (WMI query + full software inventory) against a DC and a member server addressed by FQDN; the IP-addressed path is unchanged.