2017-01-17 4 views
0

GoLang 1.7.4を使用して、私のアプリケーションのバイナリをwindows/amd64でビルドしました。このバイナリはうまく構築され、実行時にUAC特権の昇格のために表示されるように促す。32ビットGoバイナリは特権エスカレーションが必要です、64ビットはありません

私はWindows/386用のバイナリの作成に切り替えましたが、バイナリがビルドされると、別の名前を使用してバイナリをビルドすると、それは見知らぬものにするために権限の昇格が必要になります。エスカレートされた特権が必要ですが、名前をバイナリの名前に変更するとすぐに(名前がWindowsエクスプローラで行われます)、突然エスカレートされた権限が再度必要になります。

これはWindows 10の64ビットマシンで行われていましたが、正確には何が起こっているのでしょうか?

+0

プログラムのあるディレクトリに外部マニフェストファイルがありませんか?問題の名前は何ですか(秘密でない場合)? – kostix

+0

[このスレッド](https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/9ff819d4-f31f-4f7f-a523-da87007bb254/external-manifest-file-doesnt-invoke-uac-prompt? forum = windowscompatibility)を試してみてください(外部マニフェストとそのインデックス/キャッシュ問題)。 – kostix

+1

返信Kostixありがとう。最終的にそれがWindowsのものであることが判明しましたhttp://stackoverflow.com/a/41727595/3552752 – Alan

答えて

1

Windowsが自動的に起動するには、ファイル名に応じてアプリケーションの昇格された権限が必要です。ファイル名を確認してインストーラがあるかどうかを確認するので、 "Setup"や "Update"などの名前のファイルは32ビットアプリケーションで昇格された特権を持つ必要があります。

関連する問題