2008年7月18日金曜日

[TechDay]そろそろxpからvistaに移行 - UACは知っとこ

自分のOAマシンとして使っているNotePCのディスクも残り少なくなくなってきたのでVistaへの移行を決断しました。結構いろいろなものを入れていたのでできればそのまま使いたかったのですが。。IT製品ベンダーとしてはやはり新しいものは率先して使わなければという意識も働き重い腰を上げました。すでに率先してにはなっていませんが。(^^;

今回のBLOGではvistaへ移行した際に思ったことやちょっとハマったことを紹介します。

ユーザー アカウント制御( User Account Protection )には注意しよう


XPからVistaに移行するときの注意点は[ユーザー アカウント制御]についてですね。
UACの詳細は以下のページを参照しましょう。
http://www.microsoft.com/japan/msdn/windowsvista/security/
http://msdn.microsoft.com/ja-jp/magazine/cc163486.aspx

簡単にページの抜粋を紹介すると。。

User Account Controlとは。。
********************************************************************
Windows Vista は、従来の Windows の権限モデルを変更して、ユーザーの意図しない操作、または許可するつもりのない操作を実行しようとするプログラムの起動を防ぎます。そのため、User Account Control (UAC) によって、ユーザーは最低レベルに近い権限でアプリケーションを実行できます。また必要であれば、より高い権限を必要とするアプリケーションを容易に実行できます。
********************************************************************
ということです。

UACは煩わしい。。


UACの説明では、「ユーザーは最低レベルに近い権限でアプリケーションを実行できます。」とありますがこれは「・・実行します。」ですね。たとえAdministrators グループ(管理者権限)のユーザであっても最低レベルに近い権限で実行するようにして悪意のあるアプリケーションからシステムを防御する仕組みがUACだそうです。また管理者権限が必要な処理をしようとすると以下のような画面がポップアップされて確認のアクションを要求されます。管理者権限がないユーザの場合は、管理者ユーザのパスワード入力も要求されます。これがUAC説明の「容易に実行できる」という「容易」にあたる部分ですね。
確かに容易で安全だと思いますが、とりあえずセキュリティをわかっている人にとっては結構煩わしい。。実行を許可するかどうかの画面は頻繁に開く印象を持った。



#この画面はプロンプトなのでキャプチャができずにデジカメ写真でm(_ _)m

補足)
Vistaからはメニューでアプリケーションを右クリックすると「管理者として実行(A)...」というサブメニューが追加されています。実際にやってみると画面のタイトルに「管理者」という文字が入っているのがわかります。



変更したはずのファイルが書き変わっていない。。


UACが有効になっているとOSやアプリケーションが利用するファイルにもガードがかかっています。WindowsフォルダやProgram Filesフォルダなどが対象です。Windowsフォルダの配下は更新することはありませんが、Program Filesフォルダ配下のファイルはXPを利用しているときは更新することもありますね。
ところがVistaからはこれが普通にやると挙動が変わっています。

「管理者として実行...」というモードで行わないと以下のような挙動になります。
Program Filesフォルダ配下のファイルを標準ユーザで更新すると更新したファイルは実際にはC:\Users\ユーザID\AppData\Local\VirtualStore\Program Files\xxxx というように VirtualStore というフォルダの配下に Program Files のコピーができます。
以下の図はコピーされた状態をエクスプローラで見た画面です。



この挙動については以下のページがわかりやすく紹介しています。
http://itpro.nikkeibp.co.jp/article/Windows/20051208/225941/
ただし、上記のページは情報が古く実際のVirtualStoreフォルダの位置は変わっていることに注意しましょう。

UACによるこの挙動の変更は、既存のアプリケーション動作に影響を及ぼす可能性があるので注意が必要です。実際に私は結構ハマりました。(^^;
「あれJDBCドライバのパス通したはずなんだけどなぁ」みたいな。。(恥)

参考情報


ちなみにUACの有効化/無効化は
[コントロールパネル]->[ユーザ アカウント]->[ユーザー アカウント制御の有効化または無効化]
で行います。




現在の権限状態は、コマンドプロンプトで C:\Users\user1> whoami /all と実行して確認できます。以下は有効化しているときの権限状態です。



UACを無効化した時の権限状態は以下のとおりです。いろいろな権限が増えていますね。

0 件のコメント:

コメントを投稿