I'm assuming that you are using a "sql server login" for the vendor's server, and you are using that when creating the linked server.
When you use a linked server, a query running on your server connects to the vendor's server. If a firewall blocks your local server from connecting to the vendor's server, your connection attempt will fail.
If connecting directly from your workstation to the vendor's server you go through a different firewall or no firewall, then the connection may succeed.
This scenario matches the behavior you describe. My usual tests would be:
1. Can I ping from my server to the vendor's server? Both by IP and by hostname? ping usually gets through firewalls.
2. Can I connect using SSMS from my server (using an RDP session) to the vendor's server? Both by IP and by hostname?
If you can ping OK but not connect with SSMS, this usually indicates that the ports for SQL Server probably need to be opened on the firewall.
In short, check all of the firewalls involved. That would include any software firewall on your server or on the vendor's server, or any hardware firewall between them.
In these situations, ping and traceroute are your friends. Ping and traceroute may help you locate the IP of the router that doesn't send your packets on to the vendor's server.
Best Answer
Just run the scripted out version (from 2005 servers) on the new sql 2008 server.
You need to manually key-in the passwords as when you script out linked servers, passwords are not scripted out - they are grabbled -
########
.You can check the linked server properties on old server and then match them on the new server using below t-sql :
Edit:
I know this is old question dated in 2013, but my edit will be useful for future readers ...
If you want to move all or selected Linked servers from one server to another, a better automated option would be to use
Copy-LinkedServer
(part of dbatools written by Chrissy LeMaire) can be very useful.e.g.
Remember to remove
-LinkedServers
parameter if you want to migrate all linked servers from one instance to another.