お世話になります。
管理者権限で起動したアプリからそれ以下のユーザー権限で
別アプリを実行したいのですがうまくいきません。
runas のコマンドにより、別ユーザーや/trustlevel:0x20000 を適用して
実行したのですが管理者権限と同じ操作ができてしまいます。
管理者権限がない状態から管理者権限での方法の情報はたくさんあるのですが
上記の方法に関して情報が少なく、いろいろ試しましたがうまくいきませんでした。
この点、どなたかご教示いただけないでしょうか。
実行環境は、Windows8以上
開発環境
Windows8
Delphi XEもしくはD7
以上、よろしくお願い致します。
ここ(http://homepage3.nifty.com/k-takata/diary/2007-08.html 2007/08/28のVista, 権限の降格)によると、
Firefox のインストーラのソース(?)
ttp://mxr.mozilla.org/seamonkey/source/toolkit/xre/nsWindowsRestart.cpp
ここの、LaunchAsNormalUser を見ればいいそうですが、試されましたか?
うまくいったら、そのソースを書いてほしいという邪な気持ちがないとは言い切れません。
すいません、アドレスがつながってしまいました
http://homepage3.nifty.com/k-takata/diary/2007-08.html
おかぽんさん
ありがとうございます。
ヒントとなるような事でもアドバイスいただければ
助かります。
私のレベルで解読し、delphiに置き換えきれるかわかりませんが(^_^;)
遅くなりましたが、ヒントをいただき一応解決できましたので
下記に記載しておきます。
コード自体は、ネット上にあるものを利用し同じソースコードが
いろんなサイトにありましたが、そのうちの一つのサイトを下記に
記載致します。
http://stackoverflow.com/questions/514968/how-to-run-a-process-non-elevated-with-delphi2007
管理者権限の降格による実行を行えたのですが、実行するユーザー権限の
パスワードが必要となります。
パスワードなしにしたければ、Windows側で空のパスワードを有効に設定を変えれば
大丈夫かと思います。
ちなみに私が試したかった環境では、エンドユーザーがパスワードを設定して
いるかもしれない事を考え、管理者降格権限で実行する前に管理者権限にて
パスワード付の別ユーザーを作成し、そのユーザーで実行後にユーザーを
消す、もしくは作業用にそのまま残す?事でできました。
しかし、私の場合ネットワークの共有フォルダにログインする用に
利用したかったのでそのユーザーでログインするとプロファイルフォルダが
作成され、後で削除すればいいのですがゴミを作り出す事に納得いかなかったため
この方法は取りませんでした^^;
(Unixでは、ホームフォルダを作成しないようにできると思うのですがWindowsでの方法を見つけきれませんでした^^;)
ちなみにユーザーを削除してもプロファイルフォルダがそのままの場合、毎回同じユーザーアカウントを作成したつもりでもプロファイルフォルダは先頭名が同じユーザー名の別フォルダが毎回作成されていきます^^;
という事で今回、避けたかったのですが 結局スタートアップに
ショートカット作って再起動という事ですませました^^;
時間がある時にまたツッコんで調べたいと思います。
以上、ありがとうございました。
解決チェック忘れてました。
ツイート | ![]() |