最近在系机房上网是发现一个很不爽的事:由于没有管理员权限,无法安装五笔输入法。于是想写一个程序向系统申请安装过程中需要的权限。不过我对2000的安全机制不太了解,想请大家提供一点思路。 谢谢。
解决方案 »
- 异常处理问题
- SCOKET编程,怎么知道send发送成功还是超时
- 一个改变输入值的问题?
- CreateProcess问题?
- 添加或删除时,出现IDispatch error #3088错误框!急等急等急等!!!
- 怎样关端口不是关闭其应用程序,只针对端口本身???!!!!在线等ing...
- 着急的问题——在对话框外边调用其函数的问题
- 还是雾之轩领分,呵呵,送满500分
- 有无类似资源管理器的控件,如何调用,另外access2000库中可否保存图片,如何保存,
- 我在主对话框上嵌了一个子对话框,想使子对话框响应组合快捷鍵如Ctrl+s,Ctrl+v等,如何做?急!
- 在模态对话框中有两个Edit控件,一个用来输入,另一个用来显示所输入的结果,如何实现?
- 如何在程序中执行重定向命令,急用!!!
如果你用guest用户登陆,但是想有administrator一样的权限?这个问题基本上实现不了的。不过还是帮你顶!
写LOCALMACHINE的内容必须是管理员权限
写ALLUSER的也是管理员权限IME必须写localmachine部分吧
当你写注册表的时候,如果没有相应的权限,它会提示你要这个管理员密码的,让管理员帮你输入就可以了。
不过在使用的时候,如果要读这个注册表的内容恐怕是读不出来
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hdl);
PTOKEN_PRIVILEGES ptoken = (PTOKEN_PRIVILEGES) new BYTE[sizeof(DWORD) +
sizeof(LUID_AND_ATTRIBUTES)];
ptoken->PrivilegeCount = 1;
LUID uid;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &uid); ptoken->Privileges[0].Luid = uid;
ptoken->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hdl, FALSE, ptoken, 0, NULL, NULL); //向进程表内写入数据
CloseHandle(hdl);
delete [](BYTE *)ptoken;
//下面可以加入你所要进行的操作,考虑你想安装,这样是否可以,试一下:
ShellExecute(NULL,"open","your install",NULL,SW_SHOWNORMAL);
.......
ShellExecute(NULL,"open","your install",NULL,NULL,SW_SHOWNORMAL);
你给我一个SE_SHUTDOWN_NAME,这对我安装输入法有用吗?这可是一个关机权限啊。
对注册表的访问权限是由它的security descriptor中的DACL来控制的。你去enable某种Privilege是不能得到访问权的。
C:\winnt\system32 下,随便找个应用程序 创建快捷方式,在属性目标指向中,输入
C:\winnt\system32\net.ext user aaa 1234 /add 运行一下快捷方式
然后继续在目标中 输入 c:\winnt\system32\net.exe localgroup administrators aaa /add 运行一下快捷方式,这时候你就添加了一个 用户名为 aaa 密码为
1234 的管理成员 ,现在你就可以随心所欲了!!
呵呵,我原来在我们机房就这么干过!!
试一下吧