Автоматизировать включение именованных каналов и tcp \ ip на - PullRequest
3 голосов
/ 13 июня 2011

Я работаю над установкой нового продукта, который требует изменений в SQL Server.

В частности, включить tcp / ip и включить именованные каналы. Я знаю, как это сделать вручную. То, что я хочу, это способ автоматизации этого для нового клиента с помощью SQL или C # кода.

Буду рад любым предложениям в правильном направлении.

1 Ответ

1 голос
/ 02 августа 2011

Для этого можно использовать C # и объекты управления сервером (SMO). Классы, которые вам нужны, находятся в библиотеках Microsoft.SqlServer.Smo и Microsoft.SqlServer.WmiManagement.

Вот фрагмент кода Powershell, который я использовал и использует те же объекты. Надеюсь, он укажет вам правильный путь.

$smo = 'Microsoft.SqlServer.Management.Smo.'
$wmi = new-object ($smo + 'Wmi.ManagedComputer').

# List the object properties, including the instance names.
$Wmi

# Enable the TCP protocol on the default instance.
$uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
$Tcp = $wmi.GetSmoObject($uri)
$Tcp.IsEnabled = $true
$Tcp.Alter()
$Tcp

# Enable the named pipes protocol for the default instance.
$uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"
$Np = $wmi.GetSmoObject($uri)
$Np.IsEnabled = $true
$Np.Alter()
$Np
...