We have ~30 servers that don't have Named Pipes enabled and I can't stop/start the services until the next Maintenance Window (30 days away). I need to query all the server for users and logins (Security Audit). I want to use SMO since working with its collections will save me a lot of coding. It seems that the default protocol for SMO is Named Pipes so I get connection failure for those servers that don't have NP enabled. Is there any way to have SMO use TCP instead of NP for connecting?
SMO uses the ConnectionManager class to create connections, this class assembles the connection string based on the passed variables. The connection will pick the protocol order the client has specified to connect to the server. If you want to force the connection to use Named Pipes, you might use:
Instead of just the servername use npervername
Jens K. Suessmeyer
http://www.sqlserver2005.de
|||Thanks - I'll give a try, but I need to TCP so I think it would tcpervername.|||
Yep, sure you are right, you should use (without smileys :-) )
Code Snippet
tcp:Servername
|||It didn't work. I probably haven't set the variables up correctly. I found the ConnectionContext last night and plugged it in this morning.That works but I'd like to see how your syntax should be put together if you don't mind.
note - the forum software put the Smileys in. I typed a colon as I'm sure you did (this one is intentional)
Try
svrname = Trim(svrname)
svrname = "tcpERVERNAME"
Dim svr As Server = New Server(svrname)
'svr.ConnectionContext.NetworkProtocol = NetworkProtocol.TcpIp
For Each db In svr.Databases
If db.Status = 1 Then
....
...
|||Mea Culpa - It seems there was a typo in the server name. It does work. Thank you for your help.
No comments:
Post a Comment