使用VB.net我们假设要更改Sql Express和Sql Browser的LogonMode(Not LoginMode)和StartMode。
我们的意思是:
如果(Sql Express的StartMode<> Automatic)则
自动化
结束如果
如果(Sql Browser的StartMode<> Automatic)那么
自动化
结束如果
如果(Sql Express的LogonMode<> NetworkService)那么
使它成为NetworkService
结束如果
如果(Sql Browser的LogonMode<> NetworkService)那么
使它成为NetworkService
结束如果
如果可以通过更改RegEdit中的任何键值来完成,那将更容易。
有什么方法可以使用vb.net吗?
答案 0 :(得分:0)
在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