Windows Server 2008 R2 を使用していて、 コマンドプロンプトを別のユーザーで起動し、同時に管理者として実行することが必要な場面がありました。その方法の覚書を記載します。

ちなみに、参考にさせてもらったのは次のページです。

「別のユーザーとして実行」して「管理者として実行」する。
http://scripting.cocolog-nifty.com/blog/2010/01/post-a567.html
コマンドプロンプトで open 以外の verb でプロセスを実行する
http://kayuitoko.blog129.fc2.com/blog-entry-19.html

やり方としては、 別のユーザとしてプログラム(powershell)を一度起動し、powershell 上で 管理者としてコマンドプロンプトを起動します。具体的には、run as コマンドでpowershell を起動します。 Start-Process を使用して 管理者としてプログラムを起動します。 Start-Process の -Verb コマンドで runas を指定します。

シンプルな手順は次の通り。

コマンドプロンプトを起動して、次のように入力します。(うまくいかない場合は コマンドプロンプトを管理者として起動しておいてください。)。ここで、Domain1\TestUser は別のユーザとして起動するユーザアカウントです。

runas /user:Domain1\TestUser powershell.exe

次に、 Start-Process コマンドを使用してコマンドプロンプトを起動します。-Verb に runas (管理者として起動) を指定します。UAC ダイアログが表示され、"はい"ボタンをクリックして 完了。

Start-Process cmd -Verb runas

説明は以上です。 冒頭で紹介したURLの1つで説明されていますが、コマンドプロンプト(cmd.exe) で指定できる verb で設定できる文字列はレジストリ(HKCR\batfile\shell )で定義されています。