Cha*_*per 13 ruby windows privileges command-line
我试图找出如何检测用户是否在Windows XP下运行管理员权限.由于whoami命令,这在Vista/Win7中相当容易.这是Ruby中的一个片段,介绍如何在Vista下执行此操作:
注意,以下链接现在包含muteW建议的解决方案
麻烦的是,whoami不附带Windows XP,因此即使我们以管理员身份运行,上面链接的方法也会在WinXP上返回false.
那么,是否有人知道如何使用Ruby,命令行工具,批处理文件甚至第三方(需要开源,真正的)工具来检测我们是否在Windows XP下作为管理员运行?
Pet*_*voy 32
这将检测用户是否在提升模式下运行(例如,命令提示符为"运行方式"管理员).它依赖于您需要管理员权限才能读取LOCAL SERVICE帐户注册表项的事实:
reg query "HKU\S-1-5-19"
Run Code Online (Sandbox Code Playgroud)
如果无法读取,则返回非零错误代码,如果可以,则返回零.
从XP起作用......
aks*_*aks 11
如果你跑
>net localgroup administrators
Run Code Online (Sandbox Code Playgroud)
在命令shell中,您应该获取Windows XP中的管理员帐户列表.只需解析并扫描输出以检查所需的特定用户帐户.例如,要检查当前用户是否是管理员,您可以这样做 -
>net localgroup administrators | find "%USERNAME%"
Run Code Online (Sandbox Code Playgroud)
Piskvor选项很好,或查看此网址 http://weseetips.com/2008/04/16/how-to-check-whether-current-user-have-administrator-privilege/
这是该页面中的代码
SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
PSID AdministratorsGroup;
// Initialize SID.
if( !AllocateAndInitializeSid( &NtAuthority,
2,
SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,
0, 0, 0, 0, 0, 0,
&AdministratorsGroup))
{
// Initializing SID Failed.
return false;
}
// Check whether the token is present in admin group.
BOOL IsInAdminGroup = FALSE;
if( !CheckTokenMembership( NULL,
AdministratorsGroup,
&IsInAdminGroup ))
{
// Error occurred.
IsInAdminGroup = FALSE;
}
// Free SID and return.
FreeSid(AdministratorsGroup);
return IsInAdminGroup;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27295 次 |
| 最近记录: |