2011-02-17 2 views
3

Мне было поручено написать сценарий, который будет включать протоколы TCP и именованных каналов для экземпляра SQL Server 2008 Express R2. Я узнал, как включить эти протоколы для самого экземпляра SQL Server, но я не нашел способа управлять собственным Native Client из powershell.Как настроить собственный клиент SQL с помощью powershell?

Мой сценарий является частью установщика, и код, который я устанавливаю, ожидает, что эти протоколы будут включены.

Благодаря

ответ

1

я, наконец, нашел решение. Протоколы могут быть включены путем установки ключа реестра:

в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0, установите ключ ProtocolOrder содержит протоколы, которые должны быть включены:

sm = Shared memory 
np = Named pipes 
tcp = TCP (he) 
via = Via 

протоколы, не перечисленные в этом ключе будет отключен.

5
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") 
$wmi = new-object ("Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer") "$env:computername" 
$wmi.ServerInstances["SQLEXPRESS"].ServerProtocols["Tcp"].IsEnabled = $true 
$wmi.ServerInstances["SQLEXPRESS"].ServerProtocols["Np"].IsEnabled = $true 
$wmi.ClientProtocols["tcp"].IsEnabled = $true 
$wmi.ClientProtocols["np"].IsEnabled = $true 
+0

Спасибо за ответ! У меня уже есть скрипт, который выполняет эту часть операции. Мне нужно включить те же протоколы для собственного клиента SQL. – Eric

+0

Я считаю, что это под ClientProtocols. Я редактировал код и добавлял настройки клиентских протоколов. –

+0

Хорошо. Единственное, что нужно дополнительно - это вызов «Alter()» после изменения конфигурации. –

Смежные вопросы