Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to create a linked server object via SQL Server Management Studio, and I am getting the following errors:

SQL Network Interfaces: Error getting enabled protocols list from registry [xFFFFFFFF]. 
OLE DB provider "SQLNCLI" for linked server "Foo" returned message "Login timeout expired".
OLE DB provider "SQLNCLI" for linked server "Foo" returned message "An error has occurred while establishing
 a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that
 under the default settings SQL Server does not allow remote connections.".

This is using "SQL Server" type, but I get it even if I create it via SQL statement. I can connect to the target server "Foo" from other machines without problem. How can I fix this?

share|improve this question
up vote 1 down vote accepted

First (just in case...) make sure you have a protocol enabled for the SQL Native Client. Go into SQL Server Configuration Manager, expand SQL Native Client Configuration, click Client Protocols and check that there is at least one protocol enabled (preferably TCP/IP and/or named pipes).

If this is the case, then have a look in your registry for this key:


and look at the 2 values there (ProtocolOrder and ProtocolsSupported), there might be something messed up with them.

These should be REG_MULTI_SZ values. ProtocolsSupported should be sm tcp np via. ProtocolOrder should have on entry for each protocol you have enabled, in the order from right to left that you want them to be.

sm = Shared Memory tcp = TCP/IP np = Named Pipes via = VIA

So, if you have TCP/IP enabled and listed first, then Named Pipes, then Shared Memory, and VIA is disabled your value for ProtocolOrder would be


share|improve this answer
Only Shared Memory was Enabled. All I had to do was to enable TCP/IP and Named Pipes. – Eugene Yokota Aug 13 '09 at 19:49
Im also getting the same error and as per above answer, when I checked the registry then for ProtocolOrder I have "sm tcp np" and for ProtocolsSupported I have "sm tcp np via". Are these correct, do I have to change anything. because, there are 4 enabled and only 3 are in order list, is this correct ? – Harsha Mar 22 '15 at 4:55

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.