阻止用户在本地login

如何阻止用户在本地login并强制他们login。 一些用户仍然在我们最近转换之前使用的本地login。 我需要立即停止。

域控制器是Windows 2008 Server,每个工作站(除了一个是Windows 7 Pro)都运行Windows XP SP3。

处理这个问题的最好方法是从受影响的客户端计算机中删除本地用户帐户。 如果用户知道这些机器上的本地“pipe理员”密码,请更改它。

如果用户的域帐户在客户端计算机上具有“pipe理员”权限,他们可以创build更多的本地用户帐户。

如果你不想手动执行这个工作,你可以通过启动脚本来完成。 以下是删除本地用户帐户的脚本:

Option Explicit Dim dictUsersToIgnore, objNetwork Dim colSourceAccounts, objSourceUser ' Debugging Const DEBUGGING = True ' Source and destination computers Const SOURCE_COMPUTER = "." ' Constants for comparison of accounts to ignore list Const MATCH_EXACT = 1 Const MATCH_LEFT = 2 ' Accounts to ignore during copying Set dictUsersToIgnore = CreateObject("Scripting.Dictionary") dictUsersToIgnore.Add "SUPPORT_", MATCH_LEFT dictUsersToIgnore.Add "IUSR_", MATCH_LEFT dictUsersToIgnore.Add "IWAM_", MATCH_LEFT dictUsersToIgnore.Add "Administrator", MATCH_EXACT dictUsersToIgnore.Add "Guest", MATCH_EXACT dictUsersToIgnore.Add "HelpAssistant", MATCH_EXACT dictUsersToIgnore.Add "ASPNET", MATCH_EXACT ' Should this account be ignored Function IgnoreObject(Name, dictNames) Dim strToIgnore IgnoreObject = False For Each strToIgnore in dictNames ' Match Exact If (dictNames.Item(strToIgnore) = MATCH_EXACT) and (UCase(Name) = UCase(strToIgnore)) Then IgnoreObject = True Exit Function End If ' Match left If (dictNames.Item(strToIgnore) = MATCH_LEFT) and (Left(UCase(Name), Len(strToIgnore)) = UCase(strToIgnore)) Then IgnoreObject = True Exit Function End If Next' strToIgnore End Function Set objNetwork = CreateObject("Wscript.Network") ' Get accounts on source computer and loop through them, copying as necessary Set colSourceAccounts = GetObject("WinNT://" & SOURCE_COMPUTER) colSourceAccounts.Filter = Array("user") For Each objSourceUser In colSourceAccounts If IgnoreObject(objSourceUser.Name, dictUsersToIgnore) = False Then If (DEBUGGING) Then WScript.Echo "Deleting account: " & objSourceUser.Name colSourceAccounts.Delete "user", objSourceUser.Name Else If (DEBUGGING) Then WScript.Echo "Ignoring account: " & objSourceUser.Name End If Next ' objSourceUser 

将不应删除的用户名添加到dictUsersToIgnore列表中。 MATCH_EXACT表示用户名完全匹配。 MATCH_LEFT意味着只有用户名的最左边部分才会被匹配(即想象名字匹配后面有一个“*”)。

该脚本适合作为AD启动脚本进行分配。 小心你的范围 – 如果你把它放在错误的地方,它真的会毁了你的一天。

您可以使用Active Directory组策略的受限制的组function。 第二件事大概应该做的,就是保持本地pipe理员的帐号,这个GP也是可以的。

明确定义GPO“Deny Logon Locally”以阻止所有您希望拒绝的用户,并将其应用到他们所在的OU中。对您的AD模式可能需要一点点小心,但是这应该解决你所有的问题