Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 服务本地系统以管理员身份运行应用程序_Vb.net - Fatal编程技术网

Vb.net 服务本地系统以管理员身份运行应用程序

Vb.net 服务本地系统以管理员身份运行应用程序,vb.net,Vb.net,我是vb.NET2010的新程序员。 我已经创建了一个需要以管理员身份运行的应用程序(无需通过UAC)。这是一个恶意软件保护软件,将安装管理员权限 我正在创建一个windows服务,让它在系统启动时自动运行。 我创建的服务是本地系统服务 本地系统服务在执行应用程序后未显示主应用程序窗口。 为了解决这个问题,我尝试使用这个服务执行另一个应用程序。另一个应用程序将执行主应用程序。但我犯了个错误 现在我的问题是如何通过本地系统服务以管理员身份运行应用程序 以下是我在服务(1st exe)和应用程序启动

我是vb.NET2010的新程序员。 我已经创建了一个需要以管理员身份运行的应用程序(无需通过UAC)。这是一个恶意软件保护软件,将安装管理员权限

我正在创建一个windows服务,让它在系统启动时自动运行。 我创建的服务是本地系统服务

本地系统服务在执行应用程序后未显示主应用程序窗口。 为了解决这个问题,我尝试使用这个服务执行另一个应用程序。另一个应用程序将执行主应用程序。但我犯了个错误

现在我的问题是如何通过本地系统服务以管理员身份运行应用程序

以下是我在服务(1st exe)和应用程序启动程序(2nd 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时没有出现错误。但是主应用程序窗口是隐藏的,并且使用系统帐户运行

在不传递用户帐户密码的情况下,如何从本地系统服务运行具有用户帐户权限的主应用程序

请给我推荐最好的

谢谢
关于,本地系统服务可以创建计划任务。我已导入xml文件并创建了计划任务及其完成。

Windows服务本身通常没有GUI。通常有一个单独的GUI应用程序,作为正常进程(而不是服务)运行,它通过进程间通信(例如共享内存)与服务交互。“使用此服务执行另一个应用程序”是什么意思?服务由服务控制管理器按需或在系统启动时启动。您遇到了什么错误?我有3个exe文件。第一个文件将作为本地系统服务运行(无任何GUI),并将执行第二个exe文件(尽管此第二个exe文件已由服务执行,但不会显示任何GUI)。。因此,第二个exe文件将执行第三个主exe文件。现在我希望这个第三个exe文件以管理员身份运行,而不需要UAC。可能吗?或者在系统启动时以管理员身份运行应用程序而无需询问UAC?谢谢你,我已经在我的帖子上添加了代码。请看一看。感谢问题是,在任何特定时间点,登录用户可能会有零个、一个或多个活动会话。如果没有人登录,就没有桌面可以安装GUI应用程序。如果有多个用户登录,它将显示在哪个桌面上?在非管理员用户会话中突然出现一个在管理帐户下运行的应用程序,这听起来也像是一个巨大的安全漏洞。