DOBON.NET DOBON.NETプログラミング掲示板過去ログ

別ユーザで管理者実行

環境/言語:[Windows7]
分類:[.NET]

別ユーザで管理者実行するプログラムをVB2008で作成中です。

まず、管理者として実行するために、以下のコードを作成しました。
Dim proc As New Process()
proc.StartInfo.UseShellExecute = True
proc.StartInfo.FileName = sApl1
proc.StartInfo.Verb = "RunAs"
proc.Start()

次に別ユーザで管理者実行したいため、コードを以下のようにしました。
Dim proc As New Process()
proc.StartInfo.UseShellExecute = True
proc.StartInfo.FileName = sApl1
proc.StartInfo.Verb = "RunAsproc.StartInfo.Domain = domain
proc.StartInfo.UserName = userName
proc.StartInfo.Password = password
proc.Start()

するとproc.StartInfo.UseShellExecute = Falseでないと実行できませんでした。
そして、proc.StartInfo.UseShellExecute = Falseにすると、別ユーザとしては実行できているようですが、管理者実行できません。

別ユーザで管理者実行するには、どうしたらいいでしょうか?
> 別ユーザで管理者実行するには、どうしたらいいでしょうか?

  自身の権限で、そういうことが可能な状態でなけれな実行
  できません。(当たり前でしょう?)

  簡単に行いたいのであれば、タスクマネージャに登録して
  それをキックするくらいでしょうか・・・

※ タスクマネージャにプログラム的に書き込むには管理者権限
  が必要ですが、起動には必要ないみたい・・・

※ スタンドアロンPCと、ドメイン加入しているPCとでは、
  またまた話が異なるので、ご注意ください。

以上。参考まで
  • 題名: Re[1]: 別ユーザで管理者実行
  • 著者: Azulean
  • 日時: 2013/02/10 22:54:44
  • ID: 31325
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
MSDN Blog にも挙がっていますが、まずは別ユーザーとしてダミーの exe を実行し、その exe から runas で管理者権限で実行することになるはずです。

http://blogs.msdn.com/b/cjacks/archive/2010/02/01/why-can-t-i-elevate-my-application-to-run-as-administrator-while-using-createprocesswithlogonw.aspx

// 一撃で別ユーザーかつ管理者権限で直接実行する道はないということ。
Azulean様、オショウ様、ご回答ありがとうございました。

希望通りの動作となり、解決いたしました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板