2014-11-22 36 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