Windows 域下普通用户的权限限制方式

默认的Windwos域下的普通用户对所有域内计算机都有一定的访问权限的,包括:登录、网络访问等

如果希望Windows 域下普通用户的权限受到一些常规限制,比如只能登陆指定的计算机,只能访问指定的网络资源;通常的方法包括:

1、通过组策略,阻止Domain Users组的本地登录权限,或者网络登录权限,本地登录权限好限制,网络登录权限限制似乎会引起一些冲突性问题,未经验证!

2、指定普通用户的“登录到指定计算机属性”

3、阻止本地计算机账户的Users组自动添加Domain Users组。这似乎一个彻底的解决办法。

实现方法3的方式有2中常见的:

A:通过“组策略》受限制的组”的方式部署组策略,强制本地Users组的成员范围。但这种方式会使所有的计算机的Users组统一配置,灵活性有欠缺。而且已经发现在Windows7下,域用户必须具有本地Users组权限才能正常登录,即使已经加入本地Administrators组也不行。

B:通过脚本,删除计算机的本地Users组中的Domain Users。

没有能够完整的查证相关资料,目前我采用的通过组策略部署启动脚本,然后再脚本中删除本地Users组中的Domain Users。

脚本代码如下:

'Remove Domain Users From Local Users
strComputer = "."
On Error Resume Next
	Set oGroupAdm = GetObject("WinNT://" & strComputer & "/Users")
	For Each oAdmGrpUser In oGroupAdm.Members
	        If (LCase(oAdmGrpUser.Name) = "domain users") Then
	                'wscript.echo("Remove:" & oAdmGrpUser.ADsPath)
	                oGroupAdm.Remove oAdmGrpUser.ADsPath
	               If (Err.Number <> 0) Then
            			'wscript.echo( "Remove Error:" & Err.Number)
       				End If
	        End if
	Next

此方案只是临时性解决方案,尚未通过充分验证!

补充:2011.3.24

上述方案存在问题,补充设置:使用组策略定义可以本地登录组,同时严格避免给用户直接指定终端登录权限,用户即使没有本地登录权限,只有拥有终端登录权限,就可以通过远程桌面登录。

(34)

非域环境下管理Windows的共享访问权限

非域环境下管理Windows的共享访问权限最大的问题是很难控制客户端访问主机时的所使用的账号,Windows在这方面的没有统一的管理界面,很容易让人困惑:

非域环境下Windows客户端访问共享服务器时的账户检测流程:

这是一个经过反复尝试后推理出的检测流程

1.检测客户端是否有存储的针对该服务器的登录凭据,如果有使用该凭据(账户)进行登录,如果没有转下一步.

2.使用当前客户端的用户名和密码向服务器发出登录申请,如果服务器有同名同密码账户则获取该账户权限,(如果失败转下一步)

3.使用Guest账户尝试连接服务器 (如果失败转下一步)

4.显示用户名/密码的提示窗口,由用户输入连接服务器的账户信息,根据连接方式的具体不同(映射或直接访问路径等等),有时可以选择保存该账户信息,作为以后的登录凭据

通过以上流程可以发现,要使客户端使用指定的账户连接共享服务器的最佳方式是控制客户端的存储的针对该服务器的登录凭据,windows提供了管理该凭据的方法,在windows7下位于:控制面板->用户账户->管理windows凭据下.WinXP下也要类似配置工具.

直接打开给工具的命令行是:RunDll32.exe keymgr.dll,KRShowKeyMgr

 

另外还有一个可以通过命令行界面管理凭据的工具cmdkey.exe,该工具随Windows2003 Support Tools 发布,WinXP下没有该工具,但该工具适用于Win2000以后的所有Win版本,可以直接复制使用。

 

利用cmdkey可以写一个批处理工具来统一部署大量的客户端,以下代码建设客户端已经复制了cmdkey.exe,该工具可以放置于和批处理相同的目录下,或者复制到windows,windows\system32等可搜索的目录下。

 

echo > 连接文件服务器(连接帐号将自动保存在当前计算机上)
echo 请关闭所有打开的我的电脑、文件夹等文件窗口.....

set /p host=请输入服务器名称(IP地址或者机器名):
set /p u=请输入用户名:
set /p p=请输入密  码:

echo.
echo 清除原有连接信息 保存用户名和密码
@net use * /delete /y >nul
@cmdkey /delete:%host% >nul
@cmdkey /add:%host% /user:ysh\%u% /pass:%p% >nul
@net use * /delete /y >nul

echo.
echo 自动进行磁盘映射
@net use x: \\%host%\共享目录路径 /Persistent:YES

echo  **注册完成**

(69)