【问题标题】:Vb.Net : LogonMode and StartMode of SQLEXPRESS and SQLBROWSERVb.Net:SQLEXPRESS 和 SQLBROWSER 的 LogonMode 和 StartMode
【发布时间】:2014-11-22 16:09:36
【问题描述】:
我们假设使用 VB.net 更改 Sql Express 和 Sql Browser 的 LogonMode(Not LoginMode) 和 StartMode。
我们的意思是:
If(Sql Express的启动模式自动)那么
使其自动化
如果结束
If(Sql Browser的StartMode Automatic)Then
使其自动化
如果结束
If(Sql Express NetworkService的LogonMode)Then
使其成为 NetworkService
如果结束
If(Sql Browser NetworkService的LogonMode)Then
使其成为 NetworkService
如果结束
如果这可以通过更改 RegEdit 中的任何键值来完成,那将更容易。
有没有办法使用 vb.net 做到这一点?
【问题讨论】:
标签:
sql-server
vb.net
regedit
sqlbrowser
logonserver
【解决方案1】:
在 RegEdit 中,我们终于可以找到 Sql Express 和 Sql Browser Service 的值。
链接:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SQLBrowser\
登录模式为:ObjectName
启动模式为:启动(1:ChangePending, 2:Automatic, 3: Manual, 4: Disabled)
使用下面的 Vb.net 代码我们可以解决这个问题。
Imports Microsoft.Win32
Private Sub ChangeSettings()
Dim RegKey As RegistryKey
'Changes for SQL Browser.'
RegKey = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\SQLBrowser", True)
If (RegKey.GetValue("ObjectName") <> "NT AUTHORITY\NetworkService") Then
RegKey.SetValue("ObjectName", "NT AUTHORITY\NetworkService", RegistryValueKind.String)
End If
If (RegKey.GetValue("Start") <> 2) Then
RegKey.SetValue("Start", 2, RegistryValueKind.DWord)
End If
'Changes for SQL Express.'
RegKey = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\MSSQL$SQLEXPRESS", True)
If (RegKey.GetValue("ObjectName") <> "NT AUTHORITY\NetworkService") Then
RegKey.SetValue("ObjectName", "NT AUTHORITY\NetworkService", RegistryValueKind.String)
End If
If (RegKey.GetValue("Start") <> 2) Then
RegKey.SetValue("Start", 2, RegistryValueKind.DWord)
End If
End Sub