通常は管理者権限を必要とするプログラムを、(UACを介して)管理者権限なしで実行させる方法はありますか?(つまり、UACプロンプトが表示されず、システム全体にアクセスできないようにすることができます。)
追記:実行ファイル自体に手を加えることなく、です。
James'の回答にもかかわらず、私はそれがほぼ*できる方法をいくつか見つけました。
1.1. 実行ファイルを変更することで、マニフェストから trustInfo
エントリを削除して (あるいはマニフェスト全体を削除して、外部のマニフェストを使用できるようにして)、UACなしでプログラムを起動することができます。残念ながら、これは実行ファイルを変更することになるので、内部チェックサムテストのためにすぐに終了してしまいます。
2.2. プロセスエクスプローラーを使用して、制限付きユーザーとして起動することができます。しかし、これは私が望むよりもかなり制限されているようです(保護モードのIEのように実行されるので、標準の昇格していないユーザーができることよりもかなり少ないアクセスしかできません)。
同じような質問を探していたのですが、ここでの回答を見ずに、Windowsに内蔵されているRunAs
コマンドが、管理者として実行された場合、/trustlevel
スイッチを使って実行できることを知りました。
RUNAS /trustlevel:<TrustLevel> program
/showtrustlevels displays the trust levels that can be used
as arguments to /trustlevel.
/trustlevel <Level> should be one of levels enumerated
in /showtrustlevels.
私の場合はこれでうまくいきました。 皮肉なことに、昇格せずに明示的にプログラムを起動すると、昇格したコマンドプロンプトが必要になります。 なるほどね :) お役に立てれば幸いです。
今日、MSのアプリケーションカスタマイズツールキットを使ってこの問題を解決しました。
テックリパブリックの記事](http://www.techrepublic.com/blog/window-on-windows/selectively-disable-uac-for-your-trusted-vista-applications/635)の指示に従いました。
基本的には
MSからツールキットを入手する ここ 。
「修正」をクリックします。
RunAsInvoker オプションを選択します。
修正プログラムを右クリックし、「インストール」を選択する
いいえ、プログラムがUACを要求する場合は、サンドボックスの外にあるものにアクセスしようとしています。昇格されたアクセスがなければ、プログラムは正しく実行されません。
単に通知をなくしたい場合は、UACを無効にしてください。
Windows VistaでUACを無効にする。スタート」を選択し、「"user"」と入力します。User Accounts" をクリックします。表示されたウィンドウで、「ユーザーアカウント制御の設定」をクリックし、「UACをオフにする」を選択します。
Windows 7でUACを無効にする場合:スタートメニューから「"user"」と入力します。続いて、「ユーザーアカウント制御の設定」をクリックします。選択バーを一番下までドラッグして、「通知しない」を選択します。