2014-11-22 31 views
0

使用VB.net,我们假设更改Sql Express和Sql Browser的LogonMode(Not LoginMode)和StartMode。

我们的意思是:
如果然后
让它自动
结束如果

如果(SQL浏览器<>自动的STARTMODE)然后
让它(SQL Express的<>自动的STARTMODE)自动
结束如果

如果(的SQL Express LogonMode <>网络服务),然后
让它网络服务
结束如果

如果(SQL浏览器<>网络服务的LogonMode)然后
使它成为网络服务
结束如果

如果这可以通过更改注册表编辑器的任何键值来实现,这将去容易。
有什么办法可以使用vb.net来做到这一点?Vb.Net:SQLEXPRESS和SQLBROWSER的LogonMode和StartMode

回答

0

在RegEdit中,我们终于可以找到Sql Express和Sql Browser Service的值。
链接:HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\ SQLBrowser \
登录模式为:的ObjectName
启动模式是:开始(1:ChangePending,2:自动,3:说明书,4:禁用)

使用下面的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