Используя SQL-запрос или WMI, я хочу получить, включен ли протокол SQL, такой как Named Pipes, TCP/IP или нет.Получить статус протокола SQL
мне нужно сделать это для SQL Server 2000, 2005, 2008.
Спасибо.
Используя SQL-запрос или WMI, я хочу получить, включен ли протокол SQL, такой как Named Pipes, TCP/IP или нет.Получить статус протокола SQL
мне нужно сделать это для SQL Server 2000, 2005, 2008.
Спасибо.
The WMI Provider for Configuration Management Classes включает ServerNetworkProtocol
класса WMI, перечень протоколов, установленные на экземпляре Microsoft SQL Server, этот класс расположен в root\Microsoft\SqlServer\ComputerManagement10
пространства имен (для SQL Server 2008, в других версиях необходимо изменить пространство имен).
Проверить это C# образца
using System;
using System.Collections.Generic;
using System.Management;
using System.Text;
namespace GetWMI_Info
{
class Program
{
static void Main(string[] args)
{
try
{
string ComputerName = "localhost";
ManagementScope Scope;
if (!ComputerName.Equals("localhost", StringComparison.OrdinalIgnoreCase))
{
ConnectionOptions Conn = new ConnectionOptions();
Conn.Username = "";
Conn.Password = "";
Conn.Authority = "ntlmdomain:DOMAIN";
Scope = new ManagementScope(String.Format("\\\\{0}\\root\\Microsoft\\SqlServer\\ComputerManagement10", ComputerName), Conn);
}
else
Scope = new ManagementScope(String.Format("\\\\{0}\\root\\Microsoft\\SqlServer\\ComputerManagement10", ComputerName), null);
Scope.Connect();
ObjectQuery Query = new ObjectQuery("SELECT * FROM ServerNetworkProtocol");
ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope, Query);
foreach (ManagementObject WmiObject in Searcher.Get())
{
Console.WriteLine("{0,-35} {1,-40}","ProtocolDisplayName",WmiObject["ProtocolDisplayName"]);// String
Console.WriteLine("{0,-35} {1,-40}","Enabled",WmiObject["Enabled"]);// Boolean
Console.WriteLine("{0,-35} {1,-40}","InstanceName",WmiObject["InstanceName"]);// String
Console.WriteLine("{0,-35} {1,-40}","MultiIpConfigurationSupport",WmiObject["MultiIpConfigurationSupport"]);// Boolean
Console.WriteLine("{0,-35} {1,-40}","ProtocolName",WmiObject["ProtocolName"]);// String
Console.WriteLine();
}
}
catch (Exception e)
{
Console.WriteLine(String.Format("Exception {0} Trace {1}",e.Message,e.StackTrace));
}
Console.WriteLine("Press Enter to exit");
Console.Read();
}
}
}
Это вернет что-то вроде этого
ProtocolDisplayName Shared Memory
Enabled True
InstanceName MSSQLSERVER
MultiIpConfigurationSupport False
ProtocolName Sm
ProtocolDisplayName Named Pipes
Enabled False
InstanceName MSSQLSERVER
MultiIpConfigurationSupport False
ProtocolName Np
ProtocolDisplayName TCP/IP
Enabled True
InstanceName MSSQLSERVER
MultiIpConfigurationSupport True
ProtocolName Tcp
ProtocolDisplayName VIA
Enabled False
InstanceName MSSQLSERVER
MultiIpConfigurationSupport False
ProtocolName Via
Thanx для справки, но Над кода Throw Ошибка в моем Windows Server 2008 64 бит. – John
Какая ошибка вы получаете? – RRUZ
ошибка автоматизации, система не может найти указанный файл – John