我如何才能阻止用户本地登录并强制他们登录域。有些用户仍在本地登录,这是我们最近转换之前使用的。我需要立即停止这种情况。
域控制器是 Windows 2008 Server,每个工作站(除一个是 Windows 7 Pro 外)都运行 Windows XP SP3。
答案1
处理此问题的最佳方法是从受影响的客户端计算机中删除本地用户帐户。如果用户知道这些计算机上的本地“管理员”密码,请更改它。
但是,如果用户的域帐户在客户端计算机上具有“管理员”权限,他们就可以创建更多本地用户帐户。
如果您不想手动执行此工作,您可以通过启动脚本执行此操作。以下是删除本地用户帐户的脚本:
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 启动脚本。请谨慎选择其范围——如果您在错误的地方运行它,它真的会毁了您的一天。
答案2
您可以使用限制组Active Directory 组策略的功能。您可能应该做的第二件事是保留本地管理员帐户,这也是可能的 vi GP。
答案3
明确定义 GPO“拒绝本地登录”以阻止您想要拒绝的所有用户,并将其应用于他们所在的 OU...这可能会对您的 AD 模式造成一些影响,但这应该可以解决您的所有问题...