2013年10月2日水曜日

◆昇格した管理者権限で実行されているか確認する

スクリプトが「昇格した管理者権限」を要求するような場合、最初にチェックしたほうが親切かもしれない。

以下にそのサンプルがあったのでメモしておく。
Testing Administrator Privileges - Power Tips - PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources

image

非常に短いコーディングでチェックできるので便利そう。

若干トリッキーなので仕掛けを解析しておくと、
まずネイティブなコマンドの「whoami /groups」を使って現在のユーザーが所属するグループを表示すると以下のような感じで返ってくる。
image

ここで、「昇格した管理者権限」に属する場合は以下のグループが存在するようだ。

image

これは、対話ログオンすると「INTERACTIVE」グループに動的に所属するのと同じパターンかな。

あとは「match」演算子を使って「昇格した管理者権限」の「SID」が含まれるか判定している。

配列に「match」演算子を使うとマッチした要素だけが抽出される。

PS>"ma","mb","mc" -match "b"
mb

あとはマッチしなければ何も返ってこない(null)しマッチすればマッチした文字列が返ってくるのを、「bool」にキャストしている。

0 件のコメント:

コメントを投稿