RunAs VisualStudioでデバッグするときの別のユーザー


80

デバッグしているプログラムを別のユーザーとして実行しようとしています。これは、exeを実行してVisual Studioからアタッチすることで実行できますが、これは面倒です。

私がやろうとしたのは、「RunAs」コマンドを使用することです。

command.com /C runas /env /user:OtherUser DebugTarget.Exe 

しかし、これはcommand.comに添付されており、VisualStudioにはexeが必要です。今、私はダミーのアプリを作成することができます....しかし、誰かがこれに対するより良い解決策を持っていますか?


それは素晴らしいです。これをテストするためにcmd.exeを使用しただけなので、今はとても愚かだと感じています。うーん。
moogs 2009

回答:


81

で述べたように、別のユーザーとして持っているデバッガの実行アプリケーション(上記のリンク)、任意のより多くのツールを必要としないこれを行うには、別の非常に簡単な方法:

  • ホールドShift+のVisual Studioの新しいインスタンスを開くために右クリックします。
  • [別のユーザーとして実行]をクリックします

    別のユーザーとして実行

  • 次のポップアップウィンドウに他のユーザーの資格情報を入力します

  • 使用しているのと同じソリューションを開きます

これで、ソリューションをデバッグすると、他のユーザーのアクセス許可が適用されます。

ヒント:Visual Studioの複数のインスタンスを実行する場合は、テーマを変更して(「暗い」など)、どれがどれであるかを簡単に追跡できるようにします。


これは、ここで断然最善の解決策です。非常にうまく機能します。唯一の問題は、TFSまたは有料のアドオン(R#など)にアクセスできない場合です。私は(私のアカウントで)通常どおりソリューションを再度開くことでこれを回避しました。
gregsdennis 2013

この回答が示唆するように、2人の異なるユーザーから同じソリューションを開くことに何の問題もありません。それらを並べて開くことができるので、VSテーマをそれらの1つに切り替えることを提案しました。
Watki02 2013年

2
Visual Studio 2015まで何年もこの方法を使用していました。このバージョンのVSでは、別のユーザーとして実行しているときにMSDNキーを取得するためにサインインできないため、閉じるだけです。そのための回避策はありますか?
NTDLS 2016

2
残念ながら、VSを別のユーザーとして実行すると、ソリューションがソース管理下にある場合はうまく機能しません。
RichardD 2016

1
テストユーザーが以前にVSを使用したことがない場合、VSが最初の使用の準備をするのを待たなければならないという問題があります。しかし、それ以外の場合は、VS2013の扱いとして機能するようです。
ケリー・バン

29

これはうまくいきます(私はとてもばかげていると感じます):

C:\Windows\System32\cmd.exe /C runas /savecred /user:OtherUser DebugTarget.Exe

上記のコマンドは毎回パスワードを要求するので、フラストレーションを減らすために/ savecredを使用できます。あなたは一度だけ尋ねられます。(ただし、Home EditionとStarterでのみ機能すると思います)


2
Visual Studioでこれをどのように行いますか?ソリューションを開き、ビルドして、Visual Studioから上記のコマンドを実行しますか?私はVS2008を使用しています。
ウォールストリートプログラマー


このメソッドには、コード内のブレークポイントにヒットしないという欠点があります。
LewsTherin18年

@LewsTherinプロジェクトの実行が開始されたら、[デバッグ]-> [プロセスにアタッチ]に移動して、VSデバッガーをプログラムにアタッチする必要があります。理想的ではありませんが、私たちが持っているのはそれだけのようです。
GabrielLuci18年

2
@GabrielLuciそのメニューに到達する前に実行されるコードを見逃す可能性があります。より良いオプションは、あなたのコードのエントリポイントの最初の行に以下を追加することです:System.Diagnostics.Debugger.Launch();
Lews Therin

20

VSCommands 2010を使用して、別のユーザーとして実行することもできます。

代替テキスト


6
この機能を有効にするには、VSCommandsProが必要です。Lite(無料)バージョンでは、これらのコマンドは使用できるように見えますが、呼び出されても何も起こりません。VS2010Proで試してみました。
d11 2012年

これは、アプリケーションを実行しているユーザーのユーザー名を出力するC#コンソールアプリケーションを使用してテストしました。別のユーザーとして実行するオプションを使用すると、正常に機能します。管理者として実行するのか、通常のユーザーとして実行するのかわかりません...
froeschli 2012

@ d11「VSCommandsforVisual Studio 2013」で試してみましたが、期待どおりに動作します。(「コマンドライン引数」で指定されたものにはフルパスが必要です。)
RokStrniša2013

1
素晴らしいソリューションです。この拡張機能は本当に素晴らしく、2012年と2013年は無料です。これだけでなく、かなり便利なものが追加されます。
Tobberoth 2014

1
このプロジェクトがもう維持されていないのは残念です。
GabrielLuci18年

6

@ Watki02の回答に基づいて、次の方法を使用しています

  1. Shiftキーを押しながらアプリケーションをクリックしてデバッグします
  2. 別のユーザーとして実行
  3. デバッガーをアプリケーションに接続します

そうすれば、他のユーザーからデバッグしている間、VisualStudioインスタンスを自分のユーザーとして保持できます。


2

cmd.exeは、さまざまなバージョンのWindowsのさまざまな場所にあります。cmd.exeの場所が不要になるように、「cmd.exe / C」を呼び出さずにmoogsが作成したコマンドを使用できます。

これが私のために働いた例です:

  1. コマンドプロンプトを開く
  2. ディレクトリをアプリケーションの.exeファイルがある場所に変更します。
  3. 次のコマンドを実行します。runas/ user:domain \ username Application.exe

したがって、最後のステップはコマンドプロンプトで次のようになります。

C:\Projects\MyProject\bin\Debug>runas /user:domain\username Application.exe

:私の状況ではドメイン名が必要でした。


0

目的のユーザーとしてコマンドプロンプトを開くことができます。

  • Shiftキーを押しながらタスクバーのコマンドプロンプトアイコンを右クリックします。
  • (別のユーザーとして実行)を選択します

ここに画像の説明を入力してください

  • ログインとパスワードの入力を求められます

  • CommandPプロンプトが起動したら、コマンドを使用して、実行しているユーザーを再確認できますwhoami

  • これで、ディレクトリをプロジェクトに変更して実行できます

dotnet run

  • Visual Studioで、Ctrl + Alt + Pを押します(プロセスにアタッチ-デバッグメニューからも見つけることができます)

ここに画像の説明を入力してください

  • 「すべてのユーザーからのプロセスを表示する」がチェックされていることを確認してください。
  • 実行中のプロセスを見つけて、デバッガーを接続します。

-1

Visual Studio 2015を使用していて、異なる資格情報を使用してWebサイトをデバッグしようとしています。

(現在、ライブActive Directoryのコピーがある開発ネットワークでWebサイトをテストしています。ユーザーアカウントを「ハイジャック」して、安全な方法でアクセス許可をテストできます)

  1. あなたが得ることができることを確認、あなたの通常のユーザでデバッグを開始します。http:// localhostを:8080ノーマルなどとして
  2. 付けて他のユーザーにあなたの通常のユーザのホームディレクトリに「フルコントロール」のアクセスを、すなわち、C:\ Users \ユーザーコリン
  3. 作成し、他のユーザーのマシン上のAN管理者。[コンピューター]> [管理]> [他のユーザーを管理者グループに追加]を右クリックします
  4. 他のユーザーとしてInternetExplorerを実行します(Shift + Internet Explorerを右クリック、別のユーザーとして実行)
  5. そのIEウィンドウでローカルホストURLに移動します

いくつかの簡単なテストを行うのに本当に便利です。フルコントロールアクセスはおそらくやり過ぎですが、私は隔離されたネットワークで開発しています。より具体的な設定について誰かがメモを追加した場合、私は将来この投稿を喜んで編集します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.