2

管理者権限を持つ別のユーザーとしてprocess.start()を使用してvbスクリプトを実行しようとしていますが、ユーザー名とパスワードを入力するUACポップアップが常に表示されます。私は何を間違っているのですか?

var scriptProc = new Process
                    {
                        StartInfo =
                            {
                                FileName = @"cscript,
                                WorkingDirectory = @"\\AShare\AFolder",
                                Arguments = "\"" + "Install.vbs" + "\"",
                                UseShellExecute = false,
                                WindowStyle = ProcessWindowStyle.Hidden,
                                Domain = domain,
                                UserName = username, //Admin username
                                Password = MakeSecureString(secureString),
                            }
                    };
scriptProc.Start();

オプションを入力するためのユーザー名とパスワードではなく、yesとnoのオプションでUACをポップアップ表示したい。

見てみました:C#アプリケーションでVBScriptファイルを呼び出す方法は?しかし、それは役に立ちませんでした。

4

1 に答える 1

3

Windows 7 では、管理者アカウントでさえ標準のユーザー権限で実行されます。Mark Russinovich によるこのTechNet 記事をご覧ください。

上記記事より。

UAC を有効にすると、管理者アカウントを含むすべてのユーザー アカウントが標準のユーザー権限で実行されます。つまり、アプリケーション開発者は、ソフトウェアが既定で管理者権限を持っていないという事実を考慮する必要があります。これにより、標準のユーザー権限で動作するようにアプリケーションを設計するように彼らに思い出させる必要があります。アプリケーションまたはその機能の一部に管理者権限が必要な場合は、昇格メカニズムを利用して、ユーザーがその機能のロックを解除できるようにすることができます。


編集:あなたが話しているのは、ユーザーのなりすましです:

これらの記事の一部を見ることができます

  1. WindowsIndentity クラス
  2. http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User
  3. http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C
  4. C# からの Windows 偽装
  5. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306158
  6. http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic62740.aspx
于 2012-04-23T07:44:31.890 に答える