0

私たちのビジネスで使用されているソフトウェアの一部は、実行するために管理者権限を必要とします。ただし、スタッフは管理者権限を持つアカウントへのアクセスを許可されていません。これは、Windows7環境内にあります。

GPOを介して、必要なコンピューターにローカル管理者アカウントを設定しました。このローカル管理者アカウントとして管理者権限を必要とするソフトウェアを起動するために作成しているソフトウェアの目的。

これまでのところ、ソフトウェアはアカウントとしてソフトウェアを起動しているという点で正しく機能していますが、管理者権限がない場合に発生するエラーが発生しています。ソフトウェアを右クリックしてルーン文字を入力し、アカウントの詳細を手動で入力すると、正常に機能します。

SecureString pwd = new SecureString();
foreach (char c in "somepassword") { pwd.AppendChar(c); }
var psi = new ProcessStartInfo
{
    FileName = location,
    UserName = "localadminaccountname",
    Domain = Environment.MachineName,
    Password = pwd,
    UseShellExecute = false,
    Verb = "runas"
};
try
{
    Process.Start(psi);
}

コードにエラーレポートが含まれている例外catchステートメントがあります。Process.Start(psi)が呼び出されたときにスローされる例外はありません。(更新しました)

ありがとう。

編集Windows7 の会社ビルドでは、ユーザーアクセス制御が「通知しない」に設定されているため、Process.Start(psi)が呼び出されたときにUACポップアップは表示されません。

4

2 に答える 2

0

UAC が「通知しない」に設定されている場合は無効になり、ユーザーは最大の権限セットで実行されます。

つまり、ユーザーが管理者アカウントの場合、「runas」動詞を使用する必要はありません。また、ユーザーが管理者アカウントでない場合、アプリケーションが機能しない可能性があることも意味します (ユーザーが昇格できず、OTS (肩越し) 昇格が無効になっているため)。

于 2012-01-27T13:53:39.033 に答える