ホームページ  >  記事  >  バックエンド開発  >  Windows で Go アプリケーションを管理者権限に昇格させる方法は?

Windows で Go アプリケーションを管理者権限に昇格させる方法は?

DDD
DDDオリジナル
2024-11-09 05:13:02432ブラウズ

How to Elevate Go Applications to Administrator Privileges on Windows?

Go を使用して Windows で管理者権限に昇格する

問題: Windows アプリケーションを実行するには管理者権限が必要になることが多く、ユーザーは右クリックして選択するよう求められます。 「管理者として実行します。」 Go アプリケーションでこの手動ステップを回避するにはどうすればよいですか?

解決策:

権限昇格を自動化するために、現在のユーザーが管理者アクセス権を持っているかどうかを検出する手法を紹介します。 。そうでない場合は、ユーザー アカウント制御 (UAC) プロンプトでアプリケーションが再起動され、ユーザーが管理者権限を付与できるようになります。

実装例は次のとおりです:

package main

import (
    "fmt"
    "golang.org/x/sys/windows"
    "os"
    "syscall"
    "strings"
    "time"
)

func main() {
    // Check if we are running as administrator
    if !amAdmin() {
        runMeElevated()
        return
    }

    fmt.Println("Admin rights granted, proceed with your application")
    // ... Your administrator-privileged code here ...

    // This will wait 10 seconds to allow the program to execute and then exit.
    time.Sleep(10 * time.Second)
}

説明:

  • amAdmin(): チェック現在のプロセスが管理者として予約されたデバイス ドライブを開こうとしている場合。
  • runMeElevated(): 管理者でない場合は、「ru​​nas」動詞を使用して現在の実行可能ファイルを起動します。 、UAC 昇格を要求します。
  • 動詞とパラメータ: "runas" は動詞です別のユーザーとしてプログラムを実行します。他のパラメータは、実行可能ファイル、引数、および現在の作業ディレクトリを指定します。

追加メモ:

  • このメソッドでは、マニフェスト ファイルが必要ありません。 .
  • 特定のコマンドに管理者権限が必要なほとんどのコマンドライン ツールで機能します。
  • 詳細と代替方法については、次の要点を参照してください: https://gist.github.com/jerblack/d0eb182cc5a1c1d92d92a4c4fcc416c6

以上がWindows で Go アプリケーションを管理者権限に昇格させる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。