Environment.IsPrivilegedProcess unexpectedly returns true on Windows
#84,137 创建于 2023年3月30日
仓库指标
- Star
- (17,886 star)
- PR 合并指标
- (平均合并 12天 11小时) (30 天内合并 661 个 PR)
描述
Description
Environment.IsPrivilegedProcess return True if process is running with runas /trustlevel:0x20000 under local administrator account on Windows.
The main reason is that the local administrator account is excluded from UAC. It is unclear whether this is a bug in the GetTokenInformation. If not, then at the very least Environment.IsPrivilegedProcess behavior should be explicitly documented.
Also, I don't know if there is this problem for Service Accounts. In this case, the problem is more unpleasant and must be corrected.
Reproduction Steps
- Run process under local administrator account
- Run subprocess with
runas /trustlevel:0x20000 - Call Environment.IsPrivilegedProcess in the subprocess
Expected behavior
Environment.IsPrivilegedProcess return FALSE
Actual behavior
Environment.IsPrivilegedProcess return TRUE
Regression?
No response
Known Workarounds
No response
Configuration
.Net 8.0 Preview 2
Other information
No response