権限はプロセス毎に設定される

後輩との昼休み中の会話。
後:「Vistaはファイルコピーにもダイアログがバシバシ出てきてウザいですよねぇ。」
俺:「まあね。でも押せば動くんだしいいじゃん。」
後:「いや、そうでもないんじゃないんですか?」
俺:「ん?なぜ??」
後 :「たとえばファイルを100箇所にコピーする処理があったとしたらユーザーに100回ダイアログのボタンを押してもらわなきゃいけないんですよ。これはヤバいですよ。」
・・・お前のほうがヤバいよと思ったのは内緒として、確かに自分も最初はこういう印象があったのは事実でした。ま、結論からいうとこんな動作にはなりません。 動き出したプロセスは途中で権限の昇格はできません。管理者権限の欲しい処理をする場合、その処理の瞬間のみ昇格するなんてことは不可能なんですね。一般ユーザー権限で動かしたプログラムはその権限から昇格することは不可能で、ファイルコピー処理であればコピー先に設定されてる権限によってリダイレクトされるなりエラーが発生するなりします。もちろん一般ユーザー権限で書き込み可能な場所に関しては普通に書き込めます。
じゃあどうしても管理者権限が必要な処理があったらどうすんのよ、って話になりますね。方法は2つ。最初から管理者権限で起動する。いわゆる右クリックのメニューから「管理者権限で起動する」を選択するやつです。もしくは早い話がexeを分ける、と。管理者権限が欲しい処理を別個のexeにしてしまいそれに処理させる。 Microsoftが推奨するのは後者です。管理者権限が必要なexeを起動する場合にUACからのダイアログが出てそれ以降の処理は管理者権限で動作するので100個だろうが1000個だろうが処理できます。
冒頭のような動作になると思っている人は多いんじゃないかなぁ・・・あ、俺だけですか、そうですか。