【Management】UACの WMIへの影響について

4月2日 「スクリプトによるWindows Server 管理の自動化」では、Vista 以降で実装された UAC(User Account Control)によるWMIへの影響について触れておりませんでした。 この点については、MSDNに英語でまとめられているのですが、前回の投稿とも関連しますので、このBLOGでも触れておきたいと思います。 UACに関する基本情報ついては以下を参考にしてください。 ユーザーアカウント制御のご紹介(動画) http://www.microsoft.com/japan/seminar/technet/vista/function/part4/play.aspx セキュリティ対策の要点解説 第 15 回 Windows Vista のセキュリティ機能 ~ User Access Control ~ http://technet.microsoft.com/ja-jp/library/dd362924.aspx UACの環境下では、ローカル管理者に所属しているユーザーアカウントは2つのアクセストークンを持っています。1つが一般ユーザーレベルの権限、もう1つが管理者の権限です。通常はスクリプトを実行する際には一般ユーザー権限で実行されます。これは、スクリプトを実行するコマンドプロンプト(cmd.exe)を「管理者として実行」しないかぎり変わることはありません。また、必ずしも「管理者として実行」する必要もありません。 スクリプトは、その実行にどのような権限が必要かを判断する手段を持っていません。そのため、管理者特権モードに昇格するためのダイアログボックスを表示させることができず、アクセス拒否エラーが発生することがあります。 もしスクリプトに管理者権限が必要であれば、コマンドシェル自身を「管理者として実行」する必要があります。 ところで、1点注意しなければならないことがあります。それは、このUACによる管理者特権とWMIのネームスペースへのアクセス権は別のものだということです。つまり、管理者特権を持っていてもWMIネームスペースへのアクセス権によっては実行できない操作がありますし、逆に言えば管理者特権を持っていなくてもWMIの操作に成功することもある、ということです。 以下に示すWMI関連コマンドは、実行時にユーザーが管理者グループに所属しており、かつUACによる管理者特権モードで動作させる必要があります。 mofcomp wmic WMICコマンドは常に管理者特権が必要というわけではありません。OSのインストールにはじめてWMICコマンドを使用する場合には、初期設定が行われるため管理者特権が必須です。その後は使用される操作によって異なります。 winmgmt wmiadap さて、ここからが重要です。 リモートコンピュータに対するWMIの操作はどうでしょう。 UACは、「リモートコンピュータのローカル管理者グループ」に所属しているドメインアカウントの場合には影響を及ぼしません。つまり、操作対象の全てのコンピュータがドメインに参加しており、ドメインの管理者でアクセスすればUACのフィルタリングにかかることは無いということです。逆に言えば、非ドメインアカウントである場合には、たとえ管理者グループに所属していようとUACのフィルタリング対象となります。 参考までに、UCAによる管理者特権モードで実行しないと正しい値を返さないWin32クラスの一覧を以下に示します。 ■ インスタンス自体を返さないクラス Win32_Bus Win32_Printer Win32_ComponentCategory Win32_LogicalProgramGroupItem Win32_LogicalProgramGroup Win32_NetworkConnection Win32_UserAccount Win32_PrinterDriver Win32_PortResource Win32_DeviceMemoryAddress ■ プロパティの一部を返さないクラス Win32_NetworkAdapterConfiguration Win32_DCOMApplicationSetting…

0

【Management】WMI Tools – CIM Studioでアクセス拒否エラーが出る場合の対処

CIM Studioってなに?って方はこちらをご覧ください。 要は、WMI のネームスペースやクラス構造を把握したり、インスタンスを確認するのに大変よいツールです。 2002年にリリースされた古いツールなのですが、「WMI 使い」には今でも必須ですので、是非ともダウンロードしてお使いください。 Winows 7 Beta や 2008 R2 Beta でも使えます。 ただ、残念ながら英語版しかないんですよね。それでも有用であることに変わりはありません。 さて、Windows Vista、Windows Server 2008 以降のOSで使用していると、ときどき以下のエラーが表示されることがあります。 「WMI アクセスは拒否されました」   たとえば、インスタンスを CIM Studio を使用して変更したり、インスタンスを削除したり..といった場合などに表示されます。 この現象を回避するには..ご想像とおりですが、「管理者モード」で実行します。 ただし、プログラムを実行するときのように単に右クリックしただけでは「管理者として実行」が表示されません。CIM Studio の実態はHTMLファイルだからです。 そこで、Shiftキーを押しながら右クリックしてみてください。以下のように「管理者として実行」が表示されます。 管理者としてCIM Studioを実行することで、アクセス拒否を回避することができます。

2