ものすごく長いタイトルになってしまいましたが、今回は管理者権限を持たないユーザーにどのように管理者権限を持たせるか、というお話です。
実際の案件の中では以下のような状況が頻繁にあります。
- エンドユーザーの端末にソフトウェアをインストールさせたい、あるいは管理者権限が無いとできない設定変更をさせたい - でも、エンドユーザーのアカウントには管理者権限がない - エンドユーザーに操作をしてもらうことは可能だけど、管理者のID、パスワードは教えたくない(セキュリティ上の問題) やりたいことは簡単なんですけど、「エンドユーザーには教えずに」ということを実現させようと思うと中々大変です。
理想の状況 このようなことは頻繁にあるものなので、これらを簡単に実現するツールが全端末に仕込まれている状況が理想的です。これを実現する製品は多数存在しています。有名なところだと以下のようなものでしょうか。(私が仕事でよく扱っているものなので、偏ってるかもしれません。)
- [System Center Configuration Manager : ホーム](http://www.microsoft.com/japan/systemcenter/configmgr/default.mspx) - [IT資産管理 ツール QND Plus | クオリティ](http://www.quality.co.jp/products/QND/) - [LanScope Cat6 トップページ](http://www.motex.co.jp/cat6/index.html) - [BigFix, Inc. | Faster, Smarter Systems Management](http://www.bigfix.com/) もっとも、これらの製品は総合的な管理ツールになっているので、今回話題にしていることだけをしたいような時に導入するようなものでもないです。お値段も結構しますし…、ということでこういった製品が導入されていない企業も数多くあります。特に日本企業には多い印象です。話で聞くところによると米国企業はほとんどなにかしら導入しているらしいですけれども。
Active Directoryのグループポリシーを使う方法 製品が導入されていない状況でこれを実現する方法として、まずADのGPOを使う方法があります。
ソフトウェアインストール 例えばソフトウェア配布なら「ソフトウェアインストール」を使うことができます。
ただ、これがなかなか曲者でして、以下の制限事項があります。
- インストールできるのはmsiパッケージのみ(setup.exeなどは無理) - 「コンピューターの構成」-「ソフトウェアインストール」で構成した場合ローカルのSYSTEM権限で実行される - 「ユーザーの構成」-「ソフトウェアインストール」で構成した場合ログオンユーザーの権限で実行される(今回の場合使えない) - インストールに成功したのか、失敗したのか、どの程度の進捗なのか等を管理者が把握できない 1.の制限により、そもそもこの機能では配布できないことが結構あります。2.の制限があるのでパッケージの置き場所はドメインユーザー以外もアクセス可能にしなくてはいけませんし、都合の悪いことにそもそもSYSTEM権限ではインストールが成功しないソフトウェアが結構存在します。そして、4の制限があるので、トラッキングができません。
というわけで、やってみてうまく動けばそれでいいのですが、結構なケースでこの方法が取れないことがあります。
スタートアップスクリプト 「ソフトウェアインストール」が使えない場合、あるいはそもそもソフトウェアインストールではない場合にはスタートアップスクリプトを使うこともできます。
これであれば自分でロジックを作り込めるのでsetup.exe等の実行ファイルであってもキックすることができます。また、成功、失敗等の把握はどうにでもできます。簡単にやるなら、例えばインストールログを共有フォルダに保存させるようなロジックにしてしまえばいいでしょう。
ですが、以下の制限事項は同じです。
- 「コンピューターの構成」-「ソフトウェアインストール」で構成した場合ローカルのSYSTEM権限で実行される - 「ユーザーの構成」-「ソフトウェアインストール」で構成した場合ログオンユーザーの権限で実行される(今回の場合使えない)コンピューターの構成に仕込んでみて、ローカルのSYSTEM権限のみでうまく行くことを祈ることになります。 このようにADを使う方法はどのパターンでも確実に成功するわけではありません。そして、そもそも論としてはADに参加しているクライアントでなければこの方法は取れないわけです。
その他の方法 他の方法としては以下のようなものがあります。どれも完全なソリューションではないですが・・・。
...