Люди,
Большая проблема, которую я не знаю, как решить. Кажется, что Win7 SP1 сломал мое приложение. Мой сценарий работал!
У меня есть приложение Win C # .NET 4.0 с манифестом, который запрашивает административные привилегии через строку app.manifest:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Я также запускаю новый поток в моем приложении с помощью следующих строк кода:
Process certMaker = new Process();
certMaker.StartInfo.FileName = makeCertExe;
certMaker.StartInfo.UseShellExecute = false;
certMaker.StartInfo.RedirectStandardOutput = true;
certMaker.Start();
certMaker.WaitForExit();
Раньше это работало без проблем, но теперь оно больше не работает с повышенными привилегиями. Просто чтобы быть уверенным, я украсил метод:
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
, но я получаю только ошибку «Запрос на получение основного разрешения не выполнен».
Любая помощь? Что изменилось в SP1, что могло вызвать это? Наша заявка еще не подписана из-за высоких затрат.
Я пытался отключить или включить UAC на любом уровне, я пытался установить режим совместимости с XP на Win7 и ничего.
Я включил полные аудиторские отчеты для любых сбоев безопасности в ОС. Вот что я думаю, что получаю каждый раз, когда пытаюсь выполнить свою команду:
A handle to an object was requested.
Subject:
Security ID: LOCAL SERVICE
Account Name: LOCAL SERVICE
Account Domain: NT AUTHORITY
Logon ID: 0x3e5
Object:
Object Server: PlugPlayManager
Object Type: Security
Object Name: PlugPlaySecurityObject
Handle ID: 0x0
Process Information:
Process ID: 0x2dc
Process Name: C:\Windows\System32\svchost.exe
Access Request Information:
Transaction ID: {00000000-0000-0000-0000-000000000000}
Accesses: Unknown specific access (bit 1)
Access Reasons: -
Access Mask: 0x2
Privileges Used for Access Check: -
Restricted SID Count: 0
Спасибо!