0

私は vb.net 2010 の新しいプログラマーです。管理者として (UAC を通過せずに) 実行する必要があるアプリケーションを作成しました。これは、管理者権限でインストールされるマルウェア保護ソフトウェアです。

システムの起動時に自動的に実行される Windows サービスを作成しています。私が作成したサービスは Local System Service です。

アプリケーションの実行後、ローカル システム サービスがメイン アプリケーション ウィンドウを表示しません。この問題から抜け出すために、このサービスで別のアプリケーションを実行しようとしました。この別のアプリケーションがメイン アプリケーションを実行します。しかし、私はエラーが発生しています。

今私の質問は、ローカルシステムサービスで管理者として実行してアプリケーションを実行するにはどうすればよいですか?

サービス(1番目のexe)とアプリスターターexe(2番目の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 アカウントで実行されています。

ユーザー アカウントのパスワードを渡さずに、ローカル システム サービスからユーザー アカウントのアクセス許可を使用してメイン アプリケーションを実行するにはどうすればよいですか?

私に最高のものを提案してください。

ありがとうございます。それでは、お元気で、

4

1 に答える 1

0

ローカル システム サービスは、スケジュール タスクを作成できます。xml ファイルをインポートし、スケジュール タスクを作成して完了しました。

于 2013-11-16T12:58:13.147 に答える