![如何判断我的用户帐户是否是特权帐户?](https://linux22.com/image/1518332/%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E6%88%91%E7%9A%84%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7%E6%98%AF%E5%90%A6%E6%98%AF%E7%89%B9%E6%9D%83%E5%B8%90%E6%88%B7%EF%BC%9F.png)
我正在寻找对此问题的具体答案,因此,如果这意味着深入研究 SDDL(或其他任何东西......我想看到“令牌”),那么我同意。
UAC 策略设置有两个同意行为选项:
用户帐户控制:管理员批准模式下管理员的提升提示行为用户帐户控制:标准用户的提升提示行为
我如何知道(以用户身份登录时)用户帐户当前是否分配有管理员令牌,以致它不被视为标准用户帐户,或者它是否是未处于管理员批准模式的管理员?
答案1
到目前为止我能找到的最佳解决方案是以下几点的结合:
whoami/全部
- 寻找内置\管理员组成员身份
检查安全事件日志中的事件 ID 4688 和 4689
- 确保打开审计流程跟踪本地:secpol.msc 安全设置->本地策略->审核策略
Get-EventLog -LogName Security | Where-Object {($_.eventid -eq 4688) -or ($_.eventid eq 4689)}
- 在这些事件的消息中查找令牌提升类型:
- “%%1936” 类型 1 是完整令牌,没有删除任何特权或禁用任何组。仅当禁用用户帐户控制或用户是内置管理员帐户或服务帐户时,才会使用完整令牌。
- “%%1937” 类型 2 是未删除任何特权或禁用任何组的提升令牌。当启用用户帐户控制并且用户选择使用以管理员身份运行来启动程序时,将使用提升令牌。当应用程序配置为始终需要管理特权或始终需要最大特权,并且用户是管理员组的成员时,也会使用提升令牌。
- “%%1938” 类型 3 是受限令牌,其中删除了管理权限并禁用了管理组。当启用用户帐户控制、应用程序不需要管理权限且用户未选择使用以管理员身份运行来启动程序时,将使用受限令牌。
感谢上面的@Clijsters 评论,以及此处博客文章的作者: https://blogs.msdn.microsoft.com/sqlupdates/2015/05/20/understanding-user-account-control-uac-a-brief-summary/
注意博客中的 powershell 脚本:如果您复制并粘贴该脚本,它将不起作用。您需要自己进行一些调整。
关于 Windows 操作系统版本的说明:关于 Windows Vista 和 7,我发现有关事件日志条目的信息有所不同。上述发现基于我在 Windows 10 上的测试。在互联网上搜索后发现,在 Windows 7 和 Vista 中,事件日志条目似乎更直接地说明了令牌提升类型数据,如本文“如何审核提升?”部分所述: http://programming4.us/security/646.aspx Win7/Vista 不会混淆令牌类型,而是直接将其显示为 1、2 或 3。YMMV