管理者としてcsriptを起動しようとしています(ログインしたアカウントには管理者権限があります)。 startinfo.verbをrunasに設定しても動作しません。C#管理者としてコマンドを起動
ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cscript";
p1.Arguments = "I:\\WPKG\\wpkg.js /synchronize /quiet /nonotify";
Process p = new Process();
p.StartInfo = p1;
p.Start();
私が特権で始めるために得ることができる唯一の方法は、ユーザー名とパスワードを手動で設定することです。しかし、私はその情報をハードコードしたり、設定に入れることはできません。ログイン情報なしでcmdを昇格させる方法はありますか?
上記のコードの周りに(System.Security.Principal.WindowsIdentity.GetCurrent()。Impersonate())を追加してみました。
注:私がbatファイルを直接実行すると、パスワードがハードコードされた状態で実行されても機能します。ログイン情報なしでC#からの起動を向上させることはできません。
明らかに、ログインには名前とパスワードが必要です。 "runas"を正しく実行するために文字列連結を使用できないのはなぜですか?管理者権限を取得する方法の説明は、こちらをご覧くださいhttp://stackoverflow.com/questions/3583501/c-net-acquire-administrator-rights – foowtf
私は現在ログインしているユーザー。右クリックして管理者として実行するのと同じ動作をさせる唯一の方法は、ログイン情報をコード化することです。一種の吸血鬼。 – JeremyK
これほど簡単ではありません。 「管理者として実行」をクリックすると、最初に確認する必要があります。これは便利なので、毎回(Linuxのように)パスワードを入力する必要はありません。そうしないと、小さなアプリケーションがadminとしてログインしている可能性があります。 – foowtf