我是 vb.net 2010 的新程序员。我创建了一个需要以管理员身份运行的应用程序(不通过 UAC)。这是一个恶意软件保护软件,将以管理员权限安装。
我正在创建一个 Windows 服务,让它在系统启动时自动运行。我创建的服务是本地系统服务。
执行应用程序后,本地系统服务未显示主应用程序窗口。为了解决这个问题,我尝试使用此服务执行另一个应用程序。这个另一个应用程序将执行主应用程序。但我遇到了错误。
现在我的问题是如何通过本地系统服务以管理员身份运行应用程序?
这是我在服务(第一个 exe)和应用程序启动器 exe(第二个 exe)上使用的代码
服务代码:
Protected Overrides Sub OnStart(ByVal args() As String)
Dim procStartInfo As New ProcessStartInfo
Dim procExecuting As New Process
If File.Exists(OwnDirPath & "appstarter.exe") Then 'realtime
With procStartInfo
.UseShellExecute = True
.FileName = OwnDirPath & "appstarter.exe"
.WindowStyle = ProcessWindowStyle.Normal
.Verb = "runas"
End With
procExecuting = Process.Start(procStartInfo)
End If
End Sub
App Starter code:
Sub main()
Dim procStartInfo As New ProcessStartInfo
Dim procExecuting As New Process
If File.Exists(My.Application.Info.DirectoryPath & "mfirewall.exe") Then With procStartInfo
.UseShellExecute = True
.FileName = "mfirewall.exe"
.WindowStyle = ProcessWindowStyle.Normal
.Verb = "runas"
End With
procExecuting = Process.Start(procStartInfo)
End If
End Sub
编辑: 现在我在从服务 exe 执行主应用程序 exe 时没有收到错误。但是主应用程序窗口是隐藏的,并且使用 SYSTEM 帐户运行。
如何在不传递用户帐户密码的情况下使用本地系统服务的用户帐户权限运行主应用程序?
请给我最好的建议。
感谢和问候,