2006年09月25日

管理者権限取得命令?

去る8月17日になでしこの「version 1.4010」がリリースされ「管理者権限取得」と言う素敵そうな命令が追加されました。

名前から

「きっとこの関数はPowerUserとかだったら秘密のコードを入れることで管理者権限に一時的に慣れたりとかするすごい関数じゃないか?」

と期待していたんですが、早速最新版を落として「管理者権限取得」とだけ入れたソースを実行してもうんともすんとも言わず・・・

なんとなく気になってバージョン情報を見てみると「version 1.4009」とか書いて居たので
「ははーん、きっとファイルのアップロードミスだなぁ」と思い放置

そうしていると9月2日に「version 1.4011」がリリースされていたようで、今度こそと最新版をダウンロードしてまた試してもうんともすんとも言わず。

「???」と思い、命令検索から「管理者権限取得」を探しても見つからず「まだ実装されて無いの?」と

管理者権限取得は「あああ」
などとしてみると
「(関数)管理者権限取得には代入できません」
などと起こられる始末。

で、今度は

管理者権限取得をいう
としてみるとパワーユーザー環境で「0」が帰ってきたので、もしやと思い下のようなコードを組んで試してみました。

もし、管理者権限取得ならば  「現在のログインユーザは管理者権限を持っています」という 違えば  「現在のログインユーザには管理者権限ありません」という おわり
・・ビンゴ(;´д`)ノ

それって「管理者権限状況取得」とか「管理者権限判定」などと言うのが日本語的に正しいんじゃないんでしょうかねぇ・・・

と言うか、どうも↓がこの関数を実装するきっかけになった模様

葵が忙しいのも解りますが、名称が激しく紛らわしいのですからリファレンスはしっかり組み込んでほしいものです。

・・・とは言いつつも、実は管理者権限が必要なバッチを良く組んだりするので、この命令はありがたかったりします(笑)

これまではこの命令がなかったので、

レジハンドルは「HKEY_LOCAL_MACHINE\HARDWARE」のレジストリ開く
キー一覧はレジハンドルでレジストリキー列挙
レジハンドルのレジストリ閉じる
もし、キー一覧が「」ならば
 「管理者権限で実行してください」と言う。
 おわり

「管理者権限です」と言う
おわり

とやってみたり
「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList」の「ProfilesDirectory」からレジストリ値取得を環境変数展開
「{それ}\Administrator」のフォルダ列挙
もし、それが「」ならば
 「管理者権限で実行してください」と言う。
 おわり

「管理者権限です」と言う
おわり

とかやって実現していたので、判定がうまくできないことがあったりと、いまいち定量的じゃなくてぐんにょりしていたんですが、今後はもっと手軽で厳密にできそうで活用したいと思います。

っていうか、本当はマニュアルのWiki?を弄って追加してくればいいんでしょうけど、なでしこフォーラムは荒らしのせいでクローズド気味なんでちょっとなぁ。

とりあえずちょっと見てきましたけど、本体の命令番号とリンクさせないといけない感じだし、要登録なので今回は見送りっと・・・

Posted by Takuchan at 2006年09月25日 21:10 | トラックバック(0)