問題タブ [uac]

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.

0 投票する
3 に答える
1937 参照

delphi - Vista: 別の EXE を呼び出すときに、EXE はユーザーの確認をバイパスできますか?

Delphi で作成された 2 つのアプリケーションがあります。最初の exe (ユーザー インターフェイスを含む) は、バックグラウンド プロセスとして実行される ShellExecuteEx() を使用して別の exe を呼び出します。

最初の exe が 2 番目の exe を呼び出すと、次の 2 つのいずれかが発生します。

  1. 管理者としてログインすると、UAC ダイアログに許可/キャンセルのプロンプトが表示されます。[許可] を選択すると、実行が続行されます。

  2. 非管理者としてログインすると、管理者の資格情報ダイアログ ボックスが表示され、続行するには管理者のユーザー名とパスワードを入力する必要があります。

どちらの場合も、ユーザーの介入なしで 2 番目の exe を実行したいと考えています。どうすればそれを可能にできますか?

はい、SUA ツールで提案されている ElevateCreateProcess 軽減策を適用してみましたが、うまくいかないようです。動作は以前と同じです。

ご協力いただきありがとうございます。

0 投票する
2 に答える
1775 参照

c++ - 別のプロセスを開始せずにプロセスをUAC昇格させることは可能ですか

別のプロセスを開始せずに、プログラムがUACプロンプトでユーザーに独自の権限を上げるように促すことができるかどうか疑問に思っていました。

インターネットで見つけることができるすべての例は、昇格された特権で新しいプロセスを作成する「runas」をShellExecuteするようです。

これが不可能な場合、私の最善の解決策は、名前付きパイプを作成し、特殊な引数を使用して独自のプログラムを ShellExecute し、操作を実行するために必要なすべてのデータをパイプに押し込むことです。より良い提案があれば、私はそれらを聞いてうれしいです.

ご意見ありがとうございます。

0 投票する
4 に答える
10707 参照

c# - .NET/C# でアプリケーションのショートカット (.lnk) をプログラムでスタートアップ フォルダーに追加するにはどうすればよいですか?

私のアプリケーションには、(ユーザーごとではなく) マシンごとのスタートアップ ショートカットがあります。インストーラー プロセス中に問題なくショートカットを作成できます。私の問題は、ユーザーが後でそれを削除してから再度有効にしようとしたときに発生します。つまり、RunOnStartup をオフにし (これによりスタートアップ インクが削除されます)、後でスタートアップ時に実行することを決定したため、設定に戻って再度有効にします。

どうやら、これはショートカットを作成するためのネイティブな方法がないという .NET のかなり一般的な不満です。しかし、あまり良い解決策は見つかりませんでした。

私が見つけた/検討した解決策:

  • 代わりに、ショートカットを作成します。コピーするだけです。これは良い解決策かもしれません。スタートメニューのリンクがあることに頼ることはできません。しかし、私はおそらくそれを作成してプログラムディレクトリに保持することができると思います...これにより、問題はインストーラーに移行し、インストール時に指定される適切なパスでショートカットを作成する必要があります。

  • この他のstackoverflowの答えが何であるかを行い、COMラッパーオブジェクトを使用してください。COMは避けたいです。これも 2003 年に作成されました。そのため、Vista をどれだけサポートできるかはわかりません。試してみたいのですが、Vista ボックスが手元にありません。

  • 代わりにレジストリを使用してください。これが私が現在行っている方法です...しかし、Vistaで問題が発生します。スタートアップメニューのショートカットがこれを行う適切な方法であるというのは一般的なコンセンサスであるように思われるので、それが私の目標です。

また、通常のユーザー (管理者ではない) がこの設定を変更しようとした場合にも対処する必要があります。この場合、正常に失敗するか、Vista の場合はユーザーが管理者パスワードを入力して管理者セキュリティ トークンを取得できるようにする必要があります。このケースをすでに適切に考慮した回答は素晴らしいでしょう。

このトピックが既にカバーされていたら、申し訳ありません。投稿する前にいろいろ調べました。

更新:インストーラーが作成したショートカットをコピーするのが最善の解決策です。終了したらコードを投稿します... a) Environment.GetSpecialFolder が解決された StartMenu への参照を持たないといういくつかのハードルに遭遇しました...しかし、今、私はファイルを適切な場所。このトピックについて、新しい stackoverflow の質問を作成しました:管理者の資格情報をユーザーに要求することで、Vista で "標準ユーザー" としてファイルをコピーするにはどうすればよいですか (つまり、"管理者選択アプリケーション")?

0 投票する
2 に答える
1214 参照

c# - ユーザーに管理者の資格情報を求めるプロンプトを表示して、Vista で「標準ユーザー」(つまり「管理選択アプリケーション」) としてファイルをコピーするにはどうすればよいですか?

私は、UAC 開発ガイドで「管理選択アプリケーション」と呼ばれるものを持っています。これが何であるかに精通している場合は、次のセクションにスキップしてください。

バックグラウンド:

「標準」ユーザーが、アプリケーションの設定で [起動時に実行] オプションを選択または選択解除できるようにしたいと考えています。

私のアプリケーションはマシンごと (ユーザーごとではありません) であるため、ショートカット ファイルを削除するか、スタート メニュー/プログラム/スタートアップ フォルダーにコピーする必要があります。これには、この操作を実行するための管理者アクセスが必要です。

したがって、「ユーザー アカウント制御資格情報プロンプト」が表示され、ユーザーが管理者アカウントを持っている場合は、資格情報を入力することもできます。これは明らかに、ユーザーが何か管理を行う必要があるたびに別のアカウントに切り替える必要がないようにアプリケーションを設計する方法です。

MSDN ドキュメントからの抜粋:

管理選択アプリケーション

昇格されたプロセスまたは COM オブジェクト

最初のアプリケーションは、昇格を必要とせずに起動します。管理者アクセス トークンを必要とするユーザー インターフェイスのアイテムは、識別として盾のアイコンで装飾されています。この装飾は、その機能を使用するには管理者の承認が必要であることをユーザーに示します。これらのボタンのいずれかが選択されたことをアプリケーションが検出すると、次の 2 つの選択肢があります。

  • アプリケーションは、ShellExecute() を使用して 2 番目のプログラムを起動し、管理タスクを実行します。この 2 番目のプログラムは、requireAdministrator の requestedExecutionLevel でマークされるため、ユーザーは承認を求められます。この 2 番目のプログラムは、完全な管理アクセス トークンで実行され、目的のタスクを実行できます。-また-
  • アプリケーションは、CreateElevatedComObject() を使用して COM オブジェクトを起動します。この API は、承認後に完全な管理アクセス トークンを使用して COM オブジェクトを起動し、この COM オブジェクトは目的のタスクを実行できるようになります。

ファイルをコピーする必要があるだけです... ShellExecute() を使用して新しいプロセスをフォークするには過剰に思えます。COM を使用してファイルをコピーできるかどうかを知るには、COM について十分に知りません。ファイルをコピーする方法を提供し、理想的には「シールドデコレータ」でMenuItemを装飾する方法も説明するコードを誰かが投稿できることを願っています。

ノート:

アクセス許可に関連するトピックに関する(パスが保護されている場合は、Windows Vista UAC の昇格を要求ますか? コードには、別のプロセスを呼び出す例のみが含まれています。

0 投票する
4 に答える
2826 参照

c++ - UAC がオンのときに VC++ 6.0 でファイルを作成するにはどうすればよいですか?

UAC がオンのときに、管理者として実行せずに C++ でファイルを作成するにはどうすればよいですか?

Vista の UAC がオンの場合、VC++ 6.0 で「C:\Programdata\Desktop」というパスにテキスト ファイルを作成しようとしています。ただし、Createfile(...)「許可が拒否されました」で失敗しました。

「管理者として実行」でサンプル アプリケーションを実行すると、動作します。しかし、私のサンプル アプリケーションは「管理者として実行」されるべきではありません。

UACがオンのときに、上記のパスに許可を与えるAPIはありますか?

サンプル コード: const nSize = 100; CStdioFile ファイル。CFileException obFileExp; CString csFilePath(_T("C:\ProgramData\Desktop\sample.txt"));


注: UAC をオンにし、VC++ 6.0 を管理者として実行しないでください。

0 投票する
5 に答える
9466 参照

java - UACとJava

Javaアプリケーション内から昇格された権限を要求することは可能ですか?私が見た提案はすべて、外部実行可能ファイルの実行または起動時に特権を要求するマニフェストの設定に集中しているようです。これらは、たとえばアプレットでは使用できません。実行中のアプリケーションから昇格を要求する方法はありますか?

0 投票する
1 に答える
983 参照

windows-vista - Vista SP1 UAC プロンプトで MSI インストーラーの別のファイル名が表示されるのはなぜですか?

MSI インストーラーの場合、Vista SP1 UAC プロンプトに MSI 名の「5eab7.msi」が表示されますが、これは明らかに MSI ファイル名ではありません。ただし、会社名は正しいです。UAC プロンプトにインストーラーの実名を表示させるにはどうすればよいですか? ちなみに私はWiXを使っています。

前もって感謝します!

0 投票する
1 に答える
570 参照

c++ - adminexeから非adminとしてexeを起動します

アプリが更新されると、管理者権限が必要になり、UACプロンプトが表示されますが、これはすべて問題ありません。ただし、再起動すると、それ自体は管理モードのままであるため、実行するすべての操作に管理者権限があります。この問題は、次にアプリを起動したときに通常のユーザーであるため、以前に作成されたファイルを読み取ることができない場合に発生します。

admin priviladge exeから通常のユーザーとしてexeを起動するにはどうすればよいですか?

VisualStudio2008ビスタ/勝利7

0 投票する
1 に答える
7012 参照

c# - 自分のディレクトリの UnauthorizedAccessException

スタート メニューの項目を繰り返し処理しようとしていますが、UnauthorizedAccessException が引き続き発生します。私はディレクトリの所有者であり、私のユーザーは管理者です。

これが私の方法です(それはdllプロジェクトにあります):

サブディレクトリの反復処理を開始すると、コードは失敗します。他に何をすべきですか?マニフェスト ファイルを作成しようとしましたが、うまくいきませんでした。別のポイント (関連する場合): Visual Studio (管理者として実行される) でいくつかの単体テストを実行しているだけです。

0 投票する
5 に答える
2429 参照

c# - アプリケーションを再起動せずに昇格しますか?

アプリケーションを再起動したり、マニフェスト ファイルを埋め込んだりせずに、UAC を通じて管理者権限を取得できた人はいますか?

別の昇格されたアプリケーションに依存せずに、管理者のみが変更できるいくつかのファイルに書き込みたいと思います。以前にネイティブ API で UAC プロンプトを呼び出した管理者になりすますことはできますか?

これは不可能だと思います。昇格された権限を持つ外部ツールを使用する必要がありますが、念のために尋ねています。

編集:他にも同様の質問があることは知っていますが、なりすましのトピックを扱っていないため(私が見た限り)、UACプロンプトへのネイティブコールの可能性もカバーしていないため、新しいスレッドを試してみることにしました...