0

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

我们的意思是:
If(Sql Express的StartMode <> Automatic)Then
Make it Automatic
End If

(Sql Browser的StartMode <> Automatic)Then
Make it Automatic
End If

(Sql Express的LogonMode <> NetworkService)Then
Make it NetworkService
End If

(LogonMode of Sql Browser <> NetworkService)Then
Make it NetworkService
End If

如果这可以通过更改 RegEdit 中的任何键值来完成,那将更容易。
有没有办法使用 vb.net 做到这一点?

4

1 回答 1

0

在 RegEdit 中,我们终于可以找到 Sql Express 和 Sql Browser Service 的值。
Link : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SQLBrowser\
Logon Mode is : ObjectName
Start Mode is : Start(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
于 2014-11-23T16:31:13.250 回答