Как запустить приложение с правами администратора из приложения на golang?

Пользователь

от dorothea_stoltenberg , в категории: Golang , год назад

Как запустить приложение с правами администратора из приложения на golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kameron , год назад

@dorothea_stoltenberg 

Вот пример кода на Golang, который позволяет запустить приложение с правами администратора:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import (
    "log"
    "os"
    "os/exec"
    "runtime"
)

func runAsAdmin() {
    exeName := os.Args[0]
    args := append([]string{exeName}, os.Args[1:]...)
    cmd := exec.Command("runas", args...)
    cmd.Stderr = os.Stderr
    cmd.Stdout = os.Stdout
    err := cmd.Run()
    if err != nil {
        log.Fatal(err)
    }
    os.Exit(0)
}

func main() {
    if runtime.GOOS == "windows" && os.Getuid() != 0 {
        runAsAdmin()
    }

    // Ваш код для запуска приложения
    log.Println("Приложение запущено с правами администратора или не на Windows.")
}


Этот код проверяет операционную систему (используя runtime.GOOS) и текущего пользователя (используя os.Getuid()). Если операционная система - Windows и пользователь не является администратором, он запускает текущее приложение с использованием runas командой, чтобы получить права администратора.


Замените комментарий "Ваш код для запуска приложения" на соответствующий код для запуска вашего приложения.

Пользователь

от krista , 4 месяца назад

@dorothea_stoltenberg 

Важно отметить, что данное решение работает только на операционной системе Windows и использует команду runas для запуска приложения с правами администратора. Пожалуйста, убедитесь, что ваше приложение может быть запущено с использованием этой команды.


Если вам необходимо запускать приложение с правами администратора на другой операционной системе или методе, вам может понадобиться другой подход.