• 締切済み

制限ユーザでインストールする方法

WindowsXP/2000での話です。 制限ユーザの環境にアプリケーションをインストールしたいのですが、管理者権限が必要なので、一時的に管理者権限を与えて・・・。 は、いいのですが、いちいち管理者権限のユーザでログインしなおして、Administratorsに所属させてから再ログインし、インストールが終わったら、Administratorsから除去して・・・、ってのが面倒です。 そこで、管理者権限でインストールができる方法として、runasコマンドを使う方法や、「別のユーザとして実行」などがありますが、これが曲者で、あくまでも「別のユーザとして」実行する状態になる、つまりHKEY_CURRENT_USERの内容までもが指定したユーザのレジストリの内容に切り替わった状態で実行されるので、本来のユーザの環境にインストールされないのです。 VISTAでは「管理者として実行」というのがあって、希望通り対象のユーザが一時的に管理者権限をもってインストールが行えるのですが、これと同じように、WindowsXP/2000でも、管理者権限(だけ)を一時的に所有してインストールする方法はないでしょうか? 方法はコマンドでもWindowsAPIでも構いません。

みんなの回答

  • Chary_spy
  • ベストアンサー率40% (75/183)
回答No.3

そう言えば、そもそも >制限ユーザの環境にアプリケーションをインストールしたいのですが これ意味ありますか?  W2KもXPもマルチユーザーで使用できますので管理者でインストールして制限ユーザーでソフトを使用することで、マシンを守っているんですけどね。これで入れないとだめなソフトなんて(ユーザーの思い通りにならないなんて)、未熟者が作ったソフトなんじゃないですかね。 私はそんなソフト社長に言われても首にされても使いません。 それと、インストールする所をどうのこうのじゃなくて、 >管理者権限のユーザでログインしなおして、Administratorsに所属 こっちの方を自動化すれば、一回のログインでインストールを実行できるような気がします(コマンドでAdminに入れて、終わったらはずせばいい)。

krkatsu
質問者

お礼

制限ユーザの環境にインストールするのは常にあります。 ですが、XPなどの「別のユーザとして実行」では、本当に別のユーザ(管理者そのもの)として実行されるため、本来のユーザが見えるはずのHKEY_CURRENT_USERが見えず、別に指定されたユーザの領域が見えてしまうため、制限ユーザ固有の情報としてインストール時にHKEY_CURRENT_USERに登録する方法が無いのが現象です。 #(コマンドでAdminに入れて・・・ まさに上記のような事ができれば、いいだけの事なのですが、調べてみたところ、WindowsAPIにLogonuserやCreateProcessAsUserなるものがありましたので、こちらの方法で試してみたいと思います。

  • Chary_spy
  • ベストアンサー率40% (75/183)
回答No.2

No1の続きです。 最初のリンクが、あまり関係ないところでした。 http://msdn.microsoft.com/en-us/library/aa393719(VS.85).aspx が「WbemScripting.SWbemLocator」クラスの所ですね。このツリーのリファレンスをたどれば、だいたいはできます。 言い忘れましたが、「WMI」をスクリプトから使っています。C++やVB、VBAからもアクセスでるものです。C++などは別にこれでなくてもできます(用意されている)

krkatsu
質問者

お礼

ありがとうございます。 参考にさせていただきます。

  • Chary_spy
  • ベストアンサー率40% (75/183)
回答No.1

何の言語をお使いかわかりませんが、 取りあえず、JScriptで例を示します。 http://msdn.microsoft.com/en-us/library/aa393257(VS.85).aspx http://msdn.microsoft.com/en-us/library/aa393981(VS.85).aspx を見ればわかるかと思いますが、いずれにせよ偽造します。 例: var WMIobj = new ActiveXObject("WbemScripting.SWbemLocator"); WMIobj.Security_.ImpersonationLevel = 3; WMIobj.Security_.Privileges.Add(1, true); と言う感じですね。一時的に権限を付与します。最後の" Add(1 " でWMIobjに権限を追加しています.この引数のとりうる値は、 http://msdn.microsoft.com/en-us/library/aa393983(VS.85).aspx に有ります。 var MyConectServer = WMIobj.ConnectServer(hostName,"root\\cimv2", userName, passwardStr, "MS_409", "ntlmdomain:" + hostName); var os = MyConectServer.ExecQuery("Select * from Win32_OperatingSystem Where Primary=true"); などとコネクションして実行すればいいわけです。この方法を使えばリモートもできます。ただし、リモート実行に対してdcomcfg.exeやgpedit.mscで変更する必要がある。 これをやろうとしたあなたなら、この程度でおわかりになるはず。

関連するQ&A

  • コマンドプロンプトで別ユーザで実行するとき記述

    Windows2000コマンドプロンプトで管理者権限でソフトを起動させようと考え RUNAS /USER:administrator "実行ファイル名" とバッチファイルに記述したのですが実行時にユーザーのパスワードを聞かれてしまいます。 何かユーザ名を聞かれなくする方法があれば教えてください。

  • ユーザdosプロンプトの環境変数の編集

    ユーザとしてログオンしたときのコマンドプロンプトの環境変数のpathを、あらかじめ設定しておく(コマンドプロンプトを起動したときそれが設定されている)方法についてです。 スタートからコンピュータを右クリックのプロパティの環境変数の編集では、管理者権限でないので編集できません。 ならば管理者権限でログオンまたは、一時的に管理者権限でコマンドプロンプトを実行(コマンドプロンプトのショートカットを右クリックから管理者として実行)後に、前記環境変数の編集では管理者としてのコマンドプロンプトの編集であって、ユーザとして使う環境変数の編集にならず使えません。 どうすれば、ユーザで立ち上げたときのコマンドプロンプトの環境変数を編集できるでしょうか。 アプリのインストール時には任意に設定されるので、そのような設定機能のwindows関数が多分あるのでしょうが、ディスクトップからやりたいのです。レジストリ操作でもよいです。

  • ユーザー権限でドライバなどのインストール方法

    WindowsXP SP2 Proを利用しています。 ある時点までユーザ(管理者権限なし)でログインしても、USBメモリなどのドライバをインストールできたのですが どこかのタイミングで、USBメモリをインストールする際に、 「インストールを行うには管理者権限が必要です」とのエラー表示が出ます。 どうしたらユーザでもインストール可能になるでしょうか。 ソフトのインストール時に管理者がふさわしいのはわかっております。 またエラーが出るようになってから、エラーが出なかったころの状態に戻していろいろしてみたのですが、エラーが出るようになりません。 何が原因でエラーが出るようになったのか教えていただけにでしょうか。

  • 制限ユーザー(ゲスト)でプログラムをインストールする方法

     都合により、制限ユーザー(ゲスト)で、プログラムをインストールしなきゃいけなくなりました。  そのプログラムはPCの管理者のみインストール可能なんですが・・・自分に与えられた権限はゲストしかなく・・・・・できないのです。  ですけれど、自分の力でどうにかしたいので、制限ユーザー(ゲスト)で管理者権限でしかできないプログラムをインストールする方法を教えてください。

  • Cygwinユーザの権限をrootに修正可能?

    Windowd7インストールの時に管理IDはaaに設定してCygwinもインストールしました。その後Windows7にユーザーbbを追加して、権限(グループ)をAdministratorsにしました。基本としてはbbでCygwin上作業をしています。 ところで、Cygwinに関する管理の時に、bbは修正できない警告が出ます。 ここでお聞きしたのですが、Cygwin上、ユーザーbbからrootに切り替え、或いはsudoコマンドの形で管理権限の実行はできるでしょうか。ご存知の方、教えて頂きたいのです。 どうぞよろしくお願いします。

  • 管理者権限をもつユーザーがいなくなったパソコンがセーフモードで起動できません

    vistaのパソコンのユーザーの管理者(administrator)権限を間違えて削除してしまったために、Administrator アカウントがアクセス拒否されて有効にできません。 [コンピュータの管理]からadministratorのプロパティで、有効のチェックをはずして「OK」を押すと、アクセスが拒否されてしまいます。 また、「コマンドプロンプト」をadministrator権限で実行もできなく、「net user administrator /active:yes」コマンドもエラー5で有効にできない状況です。 管理者権限復活の最後の方法として、セーフモードで起動しても、Administratorsで立ち上がらず、しばらくして、再起動になって、通常モードで管理者権限をもたないまま状態でしか立ち上がりません。 どうしたらよろしいのでしょうか? vistaの再インストールしかないのでしょうか?

  • runasで起動したコマンドプロンプトについて

    Windows7において 1.runas /user:Administarator cmd で起動したコマンドプロンプト 2.Administratorユーザでログインして管理者権限で実行で起動したコマンドプロンプト 上記に違いはありますか? 1.でレジストリを書き換えるコマンドを実行するとアクセスが拒否されますが 2.では成功します。 1.でのコマンドプロンプトの起動に問題があるのかと思ったのですが 調べた限りでは分かりませんでした。 宜しくお願いします。

  • 現在のユーザーの権限を調べる方法は?

    Windows2000にログオンしているユーザーが、どの権限のグループ(Administrators,PowerUsers,Users等)に属しているかを調べる方法はあるでしょうか?  ・画面から  ・コマンドプロンプトからのコマンド入力 どちらでもかまいませんのでご存知の方いましたら教えて下さい。

  • WinXPの管理者の名前が知らないユーザー名

    人に一時的に借りているパソコンを使っているのですが 管理者権限がないのでソフトのインストールができないなどの不具合がでます。 ◆環境はWindowsXP HomeEditionのSP3です。 ◆マシンはDELLのノートPCのINSPIRON 630mです。 解決方法は今使っているユーザーを グループユーザーにするという事で良いと思いますが セーフモードなどで色々試しましたが Administratorでログインしようとしても入れません。 このPCの持ち主は特殊な作業ができる方では ないライトユーザーなのでAdminにパスワードが 掛けられている事はないと思っていました。 そこで疑問がわき管理者権限を持ってる ユーザーをコマンドプロンプトでさらしたところ 以下のようなユーザー名のアカウントがAdministratorとしてでてきました。 SUPPORT_000000a0 ※0の部分は、ある数値です。 ※aの部分は、ある英数字です。 このようなユーザーアカウントはどのようなときに作られるのか ご存知な方はおられますか? また誰に問い合わせればこのユーザー権限のパスワードを入手できますか? ご教授ください。

  • SQLの管理権限のあるユーザーを調べたい

    【理想】 既にSQLServerExpress2005以降(以下SQL)が入っているPCに対して、 SQLの管理者権限がないユーザーがインストーラーを実行した際、 ・このユーザーは管理権限がないこと ・管理権限があるユーザーは○○というユーザーなので、○○というユーザーで ログインし直してからインストールして欲しい というメッセージを出したい 【現状】 SQLをデータベースとして開発したソフトウェアがあり、 インストーラーを実行すると、SQLと開発したソフトウェアが自動インストールされるようになっています。(既にSQLがインストールされている場合はSQLはインストールしない) インストーラーは、Inno Setupを利用しています。 ここで問題になっているのが、 既にSQLがインストールされているPCにインストールしてもらった際に、 SQLの管理者ではないユーザーでインストールしようとするとエラーになることです。 ユーザーに上記を伝えて、権限のあるユーザーでやり直してもらって(もしくは一旦SQLをアンインストールして)、再度上記インストーラーを実行してもらう必要があるのですが、権限のあるユーザーが誰か答えられるユーザーがほどんどいません。 今は、インストーラーを実行した際、既にインストールされていれば、 仮のデータベースを作るテストをしてみて、出来ればOK、出来なければ、「インストール出来ないから管理権限のあるユーザーでログインしてほしい」のようなメッセージを出してセットアップを中止するようにしています。 インストーラーを実行した際、管理権限のあるユーザーが誰なのかが分かる方法はないでしょうか。色々試してみたのですが、「管理者権限がない」という応答しか返って来ません。 同様の悩み(対応)は他のソフトでも同様だと思いますが、 どのように解決しているのかを教えて頂ければ助かります。 分かる方ご教授お願い致します。

専門家に質問してみよう