問題タブ [runas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#: ローミング プロファイルを読み込み、ユーザーとしてプログラムを実行する
アプリケーションでは、別のユーザーの資格情報を使用して他のプログラムを実行する必要があります。現在、私はSystem.Diagnostics.Process.Startを使用してプログラムを実行しています:
ただし、この機能は必要なネットワークからローミング プロファイルをロードしません。
「runas /profile ...」を使用してプロファイルをロードし、コマンドを実行することもできますが、それではパスワードが要求されます。もっとエレガントな方法があるはずです...
しかしここで?
vb.net - vb.net で別のユーザーとして新しいプロセスを実行する
私は現在、独自の方法を使用して、Vista で別のユーザーとしてプロセスを実行していますが、ハック的で理想的ではないという感覚から逃れることはできません (UAC をクラップアウトし、私のシステムをクラッシュさせるという事実に加えて)アプリにセキュリティ例外があり、UAC を完全に無効にする必要があります)。私のプロセスは、「インターフェイス」と「起動スタブ」の 2 つのプロジェクト (2 つの EXE ファイル) で構成されています。プロセスは次のとおりです。
- ユーザーには、「Interface.exe notepad.exe」を起動するショートカットがあります
- Interface.exe には、使用したい資格情報を要求するフォームがあります。
- Interace.exe は ProcessStartInfo を使用して、LaunchStub.exe (LS) のインスタンスを新しいユーザーとして作成します。
- LS は ProcessStartInfo (ShellExecute を true に設定) を使用して、要求されたファイルを起動します。LS は要求されたユーザーとして既に実行されているため、新しいプロセスも実行されます。
2 段階のプロセスを使用する理由は、ユーザーが、OS が既定のアクション (.EXE、.SQL、.MSC など) を持っている任意のファイルを右クリックして起動できるようにし、ProcessStartInfo のみを実行できるようにするためです。 「UseShellExecute」を有効にしてそれをサポートしますが、そのスイッチでは新しい資格情報を使用できないため、一度に 1 つしか実行できません。
これにより、いくつかの問題が発生します。まず、ユーザーはコンピューターに既に存在している必要があります。つまり、以前にローカルでログインしている必要があります。そのユーザーのローカル プロファイルがない場合、要求されたアプリが起動することがありますが、レジストリとプロファイルの例外が発生します。これは、アプリケーションがまだ存在しないもの (ユーザーが存在しないレジストリ内の HKCU ハイブなど) を想定しているためです。ログインしたことがないため)。
アプリケーションの権利を要求しているユーザーに「昇格」させ、新しいプロセスを起動し、昇格を元に戻すことができるはずですが、そのための適切なコードサンプルを見つけることができず、完全に別のユーザーとして実行できるかどうかはわかりません。これはすべて意味がありますか?これを行うためのより良い方法があるように感じずにはいられません。
更新:オンラインで見つけた偽装コードをいくつか試しましたが、役に立ちませんでした。ProcessStartInfo と組み合わせて使用すると、提供された資格情報を使用して偽装を有効にしたにもかかわらず、提供したものではなく、現在のログインを使用してプロセスを起動しているように見えます。
runas - 「RUNAS コマンドはサポートされていません。」iexplore.exe で runas を使用する場合
Windows Server 2008 で runas コマンドを使用して別のユーザー アカウントで IE を実行しようとすると、「RUNAS コマンドはサポートされていません」というメッセージが表示されます。このコマンドは、他のアプリケーションでは正常に機能しますが、IE では機能しません。他の誰かがこれに遭遇し、回避策を見つけますか?
c# - 管理者として実行されているプログラムの再起動後に SysTray アイコンが表示されない
SysTray アイコンを表示し、スタートアップ項目にアプリケーションを追加する、最も単純な形式のアプリケーションがあります。アプリケーションは C# で開発されています。マシンの再起動後もトレイ アイコンを表示したい。現在、「管理者として実行」を使用してexeを実行しているときに、奇妙な動作に直面しています。管理者権限で使用すると、マシンの再起動後にアイコンが表示されません(exeはまだ実行中です)。メタデータ "requestedExecutionLevel level="asInvoker" uiAccess="false"" で次のメタデータ値を使用しています。
「呼び出し元」(「管理者」ではなく)を使用する必要がありました。これがないとスタートアップ項目として追加されなかったからです。ダブルクリックを使用してexeを実行すると正常に動作しますが(管理者ではなく現在のユーザードメインで実行されるため)、このexeはインストーラーによって開始されるため、システムドメインで開始されます。この問題を解決するのを手伝ってくれる人はいますか?
管理者として実行しているときに Systray アイコンを表示できるように解決策を提供してください。または、管理者ではなく現在のユーザー ドメインでこの Exe を起動できるようにする方法を提供していただければ、より良い解決策を提供してください。
よろしくスメット・ガーグ
.net - RUNAS /NETONLY 機能を (C#/.NET/WinForms) プログラムに組み込む方法は?
ワークステーションは、SQL Server が存在するドメインのメンバーではありません。(彼らは実際にはまったくドメイン上にいません - 聞かないでください)。
SSMS などを使用して SQL Server に接続する場合、DOMAIN\user で RUNAS /NETONLY を使用します。次に、パスワードを入力すると、プログラムが起動します。(RUNAS /NETONLY では、バッチ ファイルにパスワードを含めることはできません)。
したがって、SQL 接続を必要とする .NET WinForms アプリがあり、ユーザーは RUNAS /NETONLY コマンドラインを含むバッチ ファイルを実行してそれを起動し、EXE を起動する必要があります。
ユーザーが誤って EXE を直接起動すると、SQL Server に接続できません。
アプリを右クリックして [Run As...] オプションを使用しても機能しません (おそらく、ワークステーションがドメインについて実際に認識していないためです)。
アプリケーションが何か重要なことを開始する前に、内部で RUNAS /NETONLY 機能を実行する方法を探しています。
RUNAS /NETONLY の仕組みについては、次のリンクを参照してください: http://www.eggheadcafe.com/conversation.aspx?messageid=32443204&threadid=32442982
LOGON_NETCREDENTIALS_ONLY
で使用する必要があると考えていますCreateProcessWithLogonW
com - アウト プロセス COM サーバーを別の (より特権のある) ユーザーとして起動する方法
別のユーザーとしてアウト プロセス COM サーバーで実行される COM オブジェクトを作成したいと考えています。それ、どうやったら出来るの?
私は COM サーバーのソース コードを管理しており、これらの COM オブジェクトを作成するのは私の COM クライアントだけです。
internet-explorer - Run As を使用して IE 8 の複数のインスタンスを実行しても機能しないようです
過去に、社内の Web アプリ アプリケーションが Windows 認証を使用してユーザーを識別するため、runas コマンドラインを使用して、テスト用のセカンダリ アカウントで IE の場合に別のインスタンスを起動しました。IE8 の新しいマルチプロセス モデルでは、これは機能しないようです。誰かがそれに対する回避策を見たことがありますか?
runas - Win7 runasコマンド:実行されたコマンドの出力をキャプチャする方法は?
(Windows 7では)runasコマンドを使用してサービスを停止してから再起動しようとしています。(Win7では、これを行うために管理者権限が必要です。したがって、ルーン文字を使用します。)
サービスの停止は正常に機能しますが、開始は機能しません。サービスを停止するために使用しているコマンドは次のとおりです。
サービスを開始するためのコマンドは次のとおりです。
上記のコマンドを実行すると、別のコマンドウィンドウが開きますが、何も表示されないうちに点滅します。したがって、何が問題になっているのかわかりません。
したがって、私の質問は、runasを介して実行するときに、net startコマンドからstdoutやstderrをキャプチャするにはどうすればよいですか?リダイレクトを使用してみましたが、空のファイルを取得しました。別の解決策は、サブタスクを開いたままにするために、runasによってウィンドウを開くことです。
前もって感謝します。
c++ - CreateProcessWithLogonW と mmc.exe
RunAs のように動作するプログラムを作成しました。正常に動作しますが、1 つ問題があります。たとえば、compmgmt.msc を実行する場合は、mmc.exe と compmgmt.msc をパラメーターとして実行する必要があります。コンピューターの管理は開きますが、実行したいのでユーザーの下ではありません。ログインしているそのユーザー名で実行されます。その理由を誰か教えてもらえますか?どうすれば修正できますか? これが私のコードです:
ご協力いただきありがとうございます!
カンピ
jboss - Jboss5、@RunAs を介した保護された EJB への認証されていない呼び出し
認証されていないソース (キューに接続されたメッセージ駆動型 Bean) から保護された EJB のメソッドを呼び出そうとしています。MDB には @EJB を介して EJB が注入されていますが、これは問題ありませんが、ターゲット EJB には @SecurityDomain("stuff") と @RequireRole("user") があり、実行時に巨大なスタック トレースが生成されます。
@SecurityDomain("stuff") @RunAs("sysuser") のアノテーションが付けられた仮の EJB を介してロールを提供することで、これを修正しようとしました。この仮の Bean には、元のターゲット EJB が注入されています。私の理解では、ターゲット EJB は「sysuser」のロールの下で暫定 Bean から呼び出されるメソッドを持っているということです。それでも、同じスタック トレースが得られるため、作成のデータベース ロールバックが発生します。
パス MDB -> SecureEJB は、これらのスタック トレースなしで、他のいくつかのバリエーションで可能ですか? プロキシ アプローチは成功への正しい道を進んでいますか?それとも、何か追加する必要があるものはありますか?
乾杯、アンディ