Как я могу запретить пользователям входить в систему локально и заставить их входить в домен. Некоторые пользователи все еще входят в систему локально, что мы использовали до недавнего преобразования. Мне нужно немедленно прекратить это.
Контроллер домена - это Windows 2008 Server, и каждая рабочая станция (кроме одной - Windows 7 Pro) работает под управлением Windows XP SP3.
Лучший способ справиться с этим - удалить локальные учетные записи пользователей с затронутых клиентских компьютеров. Если пользователи знают пароль локального администратора на этих машинах, измените его.
Однако, если учетные записи домена пользователей имеют права «Администратора» на клиентских компьютерах, они могут просто создать дополнительные учетные записи локальных пользователей.
Вы можете сделать это с помощью сценария запуска, если не хотите выполнять эту работу вручную. Вот сценарий для удаления локальных учетных записей пользователей:
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. Будьте осторожны с его масштабированием - он действительно может испортить вам день, если вы запустите его не в том месте.
Явно определите GPO "Deny Logon Locally", чтобы заблокировать всех пользователей, которым вы хотите запретить, и примените это к OU, в котором они живут ... Это может потребовать некоторой манипуляции с вашей схемой AD, но это должно решить все твои проблемы ...
Ты можешь использовать Ограниченная группа особенность групповой политики Active Directory. Второе, что вам, вероятно, следует сделать, это остаться учетной записью локального администратора, это также возможно vi GP.