如何判断一个用户是不是本地登录用户?
我枚举了系统的所有用户,想知道这些用户哪些是本地登录用户?大家有什么办法没?
在组策略里有"拒绝本地登录"的策略.应该跟这个有关系吧.
有没有什么api能直接取出"拒绝本地登录"策略的设置值.
不能用Secedit.exe .因为window xp 存在一个Bug,就是无法用secedit /export导出策略.
问题点数:100、回复次数:5Top
1 楼zeusvenus(清柳)(Open Source)回复于 2005-12-22 23:17:19 得分 0
本地组策略对象保存在\windows\system32下的隐藏文件夹“GroupPolicy”中,详细策略配置在注册表中,可以通过读写相应注册表设置来改变。相关API我没听说过,试试根据http://act.it.sohu.com/book/chapter.php?id=375&volume=2&chapter=2 (注意下一页)
中所写的部分注册表地址来改动看行不行。Top
2 楼Dxh_Asp_Net()回复于 2005-12-23 11:00:04 得分 0
通过注册表的这些是比较容易得到
现在我要得到的是"拒绝本地登录"这个本地策略的配置值.应该不是写在注册表里的.
有什么办法可以得到该"拒绝本地登录"的配置值?Top
3 楼zeusvenus(清柳)(Open Source)回复于 2005-12-23 14:31:06 得分 0
以下材料可能对你有用:
域策略拒绝本地登录
问:我因为操作失误,将域控制器中包含所有域用户的“Domain users”组的本地登录权限给禁止了,现在想重新调整域策略使“Domain users”组成员有本地登录的权限,就必须使用管理员身份进行本地登录,但现在连管理员也无法进行本地登录了。该怎么办?
答:方法是有的。因为有两个前提:一是管理员的账户与密码并未因域策略的操作失误而发生变化;二是域策略仅仅是将本地登录权限禁止了,而没有禁止管理员远程登录的权限。所以,我们可以使用管理员账户进行远程登录,修改域策略设置文件来解决这个问题。
首先在任意一台工作站中使用管理员账户登录域控制器,然后在“网上邻居”中展开“\\Win2003\SYSVOL\shyzhong.com\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\MACHINE\Microsoft\Windows NT\SecEdit”(路径中的“Win2003”是域控制器名;“shyzhong.com”是域名;“{6AC1786C-016F-11D2-945F-00C04fB984F9}”是要编辑的组策略对象的GUID)。接着用“记事本”程序打开其中的“GptTmpl.inf”文件,找到文件中“Privilege Rights”小节下的“SeDenyInteractiveLogonRight”项,该项右侧的值就是被拒绝本地登录的用户或组的SID(如SeDenyInteractiveLogonRight= *S-1-5-32-544),将所有的SID删除并保存文件即可。
接着连续点击“向上”按钮返回“\\Win2003\SYSVOL\shyzhong.com\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}”,使用记事本打开“GPT.INI”文件,将“General”小节下的“Version”项右侧的值(当前组策略对象的版本号)加大,修改完毕将文件保存即可。在域策略自动刷新完成后,就可以顺利进行本地登录了。Top
4 楼zeusvenus(清柳)(Open Source)回复于 2005-12-23 14:31:58 得分 0
关于组策略的疑问可以参见微软提供的:
http://support.microsoft.com/kb/250842/zh-cnTop
5 楼txdxun()回复于 2006-03-30 20:11:29 得分 0
学习Top