SE_TCB_NAME 权限问题

zzg00000 2011-02-21 06:17:26
我在vc里面调用WTSQueryUserToken函数,不知道为什么会有这个错误?
不知道该怎么解决啊?

大侠们帮帮忙呀~~
...全文
997 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2011-03-10
  • 打赏
  • 举报
回复
以服务的方式运行,或者打开一个SYSTEM进程,用RtlCreateUserProcess把SYSTEM进程作为父进程创建一个子进程
这时子进程就有tcb特权,如果在windowsxp需要用CsrClientCallServer通知csrss.exe
zzg00000 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lactoferrin 的回复:]
引用 11 楼 coding_hello 的回复:

没权限那就调整一下,整个权限呗。

SE_TCB_NAME这种权限默认都是没有的。

代码10楼的已经贴了。

#10仅是打开被禁用的特权,对于根本就没有的特权无效。所以对于缺省的administrator进程,EnablePriv是无法获得tcb特权的
[/Quote]

12楼有没有什么好的建议?
Lactoferrin 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 coding_hello 的回复:]

没权限那就调整一下,整个权限呗。

SE_TCB_NAME这种权限默认都是没有的。

代码10楼的已经贴了。
[/Quote]
#10仅是打开被禁用的特权,对于根本就没有的特权无效。所以对于缺省的administrator进程,EnablePriv是无法获得tcb特权的
野男孩 2011-03-09
  • 打赏
  • 举报
回复
没权限那就调整一下,整个权限呗。

SE_TCB_NAME这种权限默认都是没有的。

代码10楼的已经贴了。
chzhn 2011-03-08
  • 打赏
  • 举报
回复
BOOL EnablePriv()
{
HANDLE hToken;
if ( OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken) )
{
TOKEN_PRIVILEGES tkp;

LookupPrivilegeValue( NULL,SE_TCB_NAME,&tkp.Privileges[0].Luid );//修改进程权限
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken,FALSE,&tkp,sizeof tkp,NULL,NULL );//通知系统修改进程权限

return( (GetLastError()==ERROR_SUCCESS) );
}
return TRUE;
}
zzg00000 2011-03-07
  • 打赏
  • 举报
回复
r任务改了,最近没空搞这个了。。。
zzg00000 2011-02-22
  • 打赏
  • 举报
回复
我在xp下面用也提示没有那个权限呀,但是最终win7,和xp2个系统我都是要用的。
楼上说“msdn上说SID不在ACL里。”啥意思?
手机写程序 2011-02-22
  • 打赏
  • 举报
回复
msdn上说SID不在ACL里。
TandyT 2011-02-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zzg00000 的回复:]
就是楼上这么用的,但是WTSQueryUserToken这个函数会返回一个错误ERROR_PRIVILEGE_NOT_HELD
msdn上说是The caller does not have the SE_TCB_NAME privilege
但是为什么没有这个权限呢,又该怎么得到这个权限呢?
[/Quote]

没权限?你的是 win7 么?那可能要先获取到管理员权限,才能进行这个操作。
zzg00000 2011-02-22
  • 打赏
  • 举报
回复
就是楼上这么用的,但是WTSQueryUserToken这个函数会返回一个错误ERROR_PRIVILEGE_NOT_HELD
msdn上说是The caller does not have the SE_TCB_NAME privilege
但是为什么没有这个权限呢,又该怎么得到这个权限呢?
Lactoferrin 2011-02-22
  • 打赏
  • 举报
回复
管理员的进程默认情况下都没有Tcb特权,SYSTEM账号的进程有,可以以服务方式运行。
可以在组策略里面为管理员添加Tcb特权
zzg00000 2011-02-22
  • 打赏
  • 举报
回复
大侠们~~~
谁来指点1,2啊急啊
手机写程序 2011-02-21
  • 打赏
  • 举报
回复
DWORD dwSessionId = WTSGetActiveConsoleSessionId();
WTSQueryUserToken(dwSessionId, &hToken);
孤客天涯 2011-02-21
  • 打赏
  • 举报
回复
啥错误?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧