Показаны сообщения с ярлыком Windows 2008 R2. Показать все сообщения
Показаны сообщения с ярлыком Windows 2008 R2. Показать все сообщения

четверг, 21 июля 2011 г.

Интересно - Невозможно сделать клон работающего контроллера домена Active Directory на ESX.

Недавно при подготовке тестового стенда столкнулся с невозможностью сделать клон контроллера домена, выдавалась ошибка:
Cannot create a quiesced snapshot because the snapshot operation exceeded the time limit for holding off I/O in the frozen virtual machine
а как оказалось в дальнейшем и снапшот. Контроллер домена уже давно был виртуальным. При выяснении этой проблемы с технической поддержкой VmWare, оказалось что действительно есть такая проблема, но она по большей части на стороне Windows(была Windows 2008 R2). Проблема не связана с Volume Shadow Provider и его WMI writers.
Узнать состояние Writer-ов зарегистрированных в системе можно командой
vssadmin list writers
Дело в том, что база Active Directory, расположенная в файле .dit подвержена постоянной нагрузкам по чтению записи и интервал времени необходимый для снятия образа превышает допустимый тайм аут в течении которого в базу .dit не может быть слит лог файл этой базы. В моем случае ошибка выпадала после 10 минут клонирования.

Ссылки по теме:
(причина):
http://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2virtualization/thread/2e913d5c-899b-46b2-88a2-a7bf7a0a584d

(методы борьбы):
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1018194

вторник, 9 ноября 2010 г.

Создание отсутствующих DHCP опций

Возникла потребность создать DHCP опции для тонких клиентов, которые отсутствовали в предопределенных, т.е. их нужно было как-то создать...

Нужно было создать четыре DHCP опции с кодами 66, 67, 161, 162 две из которых не существующие в стандартном варианте опции:
161 FTP server list. This can be either the name or IP address of the ftp server(s) seperated by commas or semicolon

162 Root path to the FTP files. /wyse/wnos is automatically appended to this value. So if /config were entered, the affective path would become /configs/wyse/wnos. You can have 'wyse' omitted from the path by apending a dollar sign ($) to the path. i.e. /configs$ would imply a path of /configs/wnos

На Windows 2008 R2 различий практически никаких, тоже используем dhcpmgmt.msc:



Далее, на уровне протокола, а не сервера DHCP правой педалью мыши хлопаем по "Set Predefined Options...":



Открывается окно в вида:



где добавляем нужную нам опцию:



Примечательно, максимальное значение кода опции - 254, если здесь нажать OK и далее.
Затем ввести значение опции в поле Value, то далее включая (добавляя опцию) в "Server Option":





Значение поля Value уже будет заполнено.

Собственно всё есть в статье:

http://www.tcpdump.com/kb/virtualization/virtual-desktop/deploying-thin-clients-with-vmware-view-vdi/dhcp-boot-options.html

четверг, 19 августа 2010 г.

Автоматизация создания снапшотов Active Directory на Windows 2008 R2

В интернете нашел несколько статей про такую автоматизацию, но они подошли мне отчасти. Поскольку я поставил задачу со следующими условиями:
1.Делать Snapshot-ы Active Directory ежедневно (Make snapshots per day)
2.Удалять старые Snapshot-ы Active Directory, например, те, которые старше 30 дней.(Delete old snapshot per day)

По тому как создавать снимки Active Directory есть пару не плохих статеек:
http://itew.ru/2009/06/22/518
http://it-professional.at/?p=59

Всё это красиво но как это всё запихнуть в один исполняемый файл, проблема возникает сразу, как только вы попробуете одной командой схранить снапшот ndtsutil и сразу выйти(Утилита NTDSUTIL имеет многоуровневый интерфейс, поэтому команды надо набирать одну за другой), у меня полуилось это сделать так:

Script1(сохранение информации о snapshot-ах - "Active directory snapshots list all to file.bat"):
ntdsutil snapshot "list all">[Path]\snapshots.txt quit quit
результат команды:
ntdsutil: snapshots
napshot: list all
1: 2010/08/19:11:33 {f6910436-b92b-4b6d-b125-8a7b10493887}
2: C: {9f1b44cf-48ed-478c-9552-e0dcffd88210}
3: D: {d1147dde-3db4-4103-ad2e-3942bd6eb109}

4: 2010/08/19:11:33 {1fcd5908-81f2-430c-8610-2a67b3d10daa}
5: C: {1f55b3ed-428a-4d21-9dd4-d6c82c67d510}
6: D: {11ca5468-86c1-46d9-b606-e5f964ab3412}

7: 2010/08/19:11:33 {66d48540-e53d-481a-8f2b-825ade892b14}
8: C: {858e8405-443e-44f4-85e2-148bb3978868}
9: D: {a6e7aab0-e221-4b87-a296-386232618ab1}

10: 2010/08/19:11:34 {e6752416-0534-48a5-8c5e-ed469f63446a}
11: C: {25b607bb-9303-4f1b-9c1f-588bb02d1700}
12: D: {5d340d1a-852c-46c1-9386-ad55235abc21}


Сама автоматизация сводиться к трем файлам(у меня получилось, так, может у кого то будет более изящное решение - через один файл):
Script1(Executor_SnapshotProcessing.bat):
@SET FILENAME="[Path]\snapshots.txt"
@SET FILENAME2="[Path]\2_1_PS_script_snapshot_delete.ps1"

del %FILENAME%ntdsutil snapshot "list all">%FILENAME% quit quit
C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe -executionpolicy unrestricted -file %FILENAME2%


ntdsutil snapshot "activate instance ntds" create quit quit


Script2(2_1_PS_script_snapshot_delete.ps1):
$fileNameSource="[Path]\snapshots.txt"
$fileNameTarget="[Path]\snapshots2.txt"
$fileNameBAT_DeleterSnapshot="[Path]\2_2_Active_directory_snapshot_delete.bat"
$a=get-content $fileNameSource select-string " 1: "$SnapShotID=$("$a".split(" "))[3]
&$fileNameBAT_DeleterSnapshot $SnapShotID

Script3(2_2_Active_directory_snapshot_delete.bat):
ntdsutil snapshot "delete %1" quit quit

Запускной файл Script1, результат команды:
Executor_SnapshotProcessing.bat
del "[Path]\snapshots.txt"
ntdsutil snapshot "list all" quit quit 1>"[Path]\snapshots.txt"
C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe -executionpolicy
unrestricted -file "[Path]\2_1_PS_script_snapshot_delete.ps1"

only insert string like: delete {eaa5ac99-bf3d-4145-85a8-3a65a7b75702}
ntdsutil snapshot "delete {f6910436-b92b-4b6d-b125-8a7b10493887}" quit quit
ntdsutil: snapshot
snapshot: delete {f6910436-b92b-4b6d-b125-8a7b10493887}
Snapshot {9f1b44cf-48ed-478c-9552-e0dcffd88210} deleted.
Snapshot {d1147dde-3db4-4103-ad2e-3942bd6eb109} deleted.
snapshot: quit
ntdsutil: quit
ntdsutil snapshot "activate instance ntds" create quit quit
ntdsutil: snapshot
snapshot: activate instance ntds
Active instance set to "ntds".
snapshot: create
Creating snapshot...
Snapshot set {a6c5dd08-a38f-47e1-b2c6-5eadf1f46c36} generated successfully.
snapshot: quit
ntdsutil: quit


Далле шедулим Script1 и всё - мы получили скрипт, который удаляет самый давний снапшот Active Directory и делает новый. Но мы не получили хранение тех самых 30 снопшотов ежедневных, которые мы хотим создавать - хранить и удалять через 30 дней.
Для этого нужно до шедулинга скрипта 1 просто напросто их создать. Для этих целей можно создать bat-файл и просто выполнить 30 раз или 30 команд в одном файле bat-файле:

ntdsutil snapshot "activate instance ntds" create quit quit

В PowerShell
помогла ссылка:
http://social.technet.microsoft.com/Forums/ru-RU/scrlangru/thread/14eeebc9-5227-4416-91c6-de730b7630ed

полезные ссылки по PowerShell:

http://sites.google.com/site/lebedevum/voprosy-i-otvety/windows-powershell/windows-powershell-i-komandnaa-stroka-windows

http://window.edu.ru/window_catalog/pdf2txt?p_id=31200&p_page=5

http://www.osp.ru/text/print/302/5560256.html

четверг, 22 июля 2010 г.

Вытаскивание информации из Active Directory по пользователям на WMI и WHS

Перед тем как выполнять скрипт необходимо поправить строку:
Str_LDAP= "LDAP://CN="& StrGroupName &",OU=ASU,OU=Contora,DC=corp,DC=domain,DC=ru"
под свои нужды.
Для выполнения скрипта в домене и сбора множественной информации привелегии не нужны, можно выполнять из-под рядового пользователя домена. Я бы сказал, что это шпионский скрипт )))
содержимое файла .vbs(работает из под Windows XP в доменах с уровнями домена и леса: Windows 2003, Windows 2008, Windows 2008 R2):

'***************************************************************
'Getting information about users from Active Directory
'***************************************************************
' НАЧАЛО ФРАГМЕНТА A
Dim objArgs, strGroupDN, StrGroupName, MyFileName1, Str_LDAP
set objArgs = WScript.Arguments
StrGroupName = "ALL Users"
Str_LDAP= "LDAP://CN="& StrGroupName &",OU=ASU,OU=Contora,DC=corp,DC=domain,DC=ru"
if objArgs.Count <> 1 then
Dim objRootDSE
set objRootDSE = GetObject("LDAP://RootDSE")
strGroupDN = Str_LDAP '& objRootDSE.Get("defaultNamingContext")
Else
strGroupDN = objArgs.Item(0)
end if
' КОНЕЦ ФРАГМЕНТА A
MyFileName1 = GetScriptDirectory & "Члены группы - " & StrGroupName & ".txt"
'***************************************************************
' НАЧАЛО ФРАГМЕНТА B
Dim dicSeenGroupMember
set dicSeenGroupMember = CreateObject("Scripting.Dictionary")
FuncAppendOneStrToTXTFile MyFileName1, "Members of " & strGroupDN & ":"
DisplayMembers strGroupDN, " ", dicSeenGroupMember
Wscript.Echo "Сбор данных о членах группы <" & StrGroupName & "> - завершен" & Chr(10) & "Отчет находится в файле " & MyFileName1 & Chr(10) & "The End"
' КОНЕЦ ФРАГМЕНТА B
'***************************************************************
'----------------функция----------------------------------------
Function DisplayMembers (strGroupADsPath, strSpaces, dicSeenGroupMember)

FuncAppendOneStrToTXTFile MyFileName1,"ФИО" & vbTab & "CanonicalName" & vbTab & "userPrincipalName" & vbTab & "LDAP" & vbTab & "OU Native" & vbTab & "phisicalDeliveryOfficeName" & vbTab & "Description" & vbTab & "Mail" & vbTab & "scriptPath" & vbTab & "homeDirectory" & vbTab & "homeDrive" & vbTab & "telephoneNumber" & vbTab & "homeMDB" & vbTab & "logonCount" & vbTab & "lastLogon" & vbTab & "whenCreated" & vbTab & "UserAccountControl" & vbTab & "badPwdCount" & vbTab & "badPasswordTime" & vbTab & "pwdLastSet" & vbTab & "msNPAllowDialin" & vbTab & "msRTCSIP-PrimaryUserAddress" & vbTab & "msRTCSIP-LineServer" & vbTab & "msRTCSIP-Line"
Dim objGroup, objMember, oG, Obj, UserObj
set objGroup = GetObject(strGroupADsPath)
for each objMember In objGroup.Members
FuncAppendOneStrToTXTFile MyFileName1, GetToFileOneCNFromAD(objMember.Get("distinguishedname"))
if objMember.Class = "group" then
if dicSeenGroupMember.Exists(objMember.ADsPath) then
Wscript.Echo strSpaces & " ^ already seen group member " & "(stopping to avoid loop)"
FuncAppendOneStrToTXTFile MyFileName1, strSpaces & " ^ already seen group member " & "(stopping to avoid loop)"
else
dicSeenGroupMember.Add objMember.ADsPath, 1
DisplayMembers objMember.ADsPath, strSpaces & " ", dicSeenGroupMember
end if
end if
Next
End Function
'----------------функция----------------------------------------
Function GetToFileOneCNFromAD(StrLDAP)
GetToFileOneCNFromAD = ""
'-------- результат запроса возвращаем в переменную oGroup
Set Obj = GetObject("LDAP://" & StrLDAP)
On Error Resume Next
OU_Native = Mid(Obj.ADsPath, InStr(1,Obj.ADsPath, "OU"))
if (Err.Number = 0) Then
OU_Native = Mid(Obj.ADsPath, InStr(1,Obj.ADsPath, "OU"))
Else
OU_Native = Obj.ADsPath
Err.Clear
End If
GetToFileOneCNFromAD = Mid(Obj.Name,4,Len(Obj.Name)-3) & vbTab & Obj.Name & vbTab & Obj.userPrincipalName & vbTab & Obj.ADsPath & vbTab & OU_Native & vbTab & Obj.physicalDeliveryOfficeName & vbTab & Obj.description & vbTab & Obj.mail & vbTab & Obj.scriptPath & vbTab & Obj.homeDirectory & vbTab & Obj.homeDrive & vbTab & Obj.telephoneNumber & vbTab & Obj.homeMDB & vbTab & Obj.logonCount & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.lastLogon) ) & vbTab & Obj.whenCreated & vbTab & Obj.UserAccountControl & vbTab & Obj.badPwdCount & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.badPasswordTime)) & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.pwdLastSet)) & vbTab & Obj.msNPAllowDialin & vbTab & GetSIPContact(Obj)
' GetToFileOneCNFromAD = Mid(Obj.Name,4,Len(Obj.Name)-3) & vbTab & Obj.Name & vbTab & Obj.userPrincipalName & vbTab & Obj.ADsPath & vbTab & OU_Native & vbTab & Obj.physicalDeliveryOfficeName & vbTab & Obj.description & vbTab & Obj.mail & vbTab & Obj.scriptPath & vbTab & Obj.homeDirectory & vbTab & Obj.homeDrive & vbTab & Obj.telephoneNumber & vbTab & Obj.homeMDB & vbTab & Obj.logonCount & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.lastLogon) ) & vbTab & Obj.whenCreated & vbTab & Obj.UserAccountControl & vbTab & Obj.badPwdCount & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.badPasswordTime)) & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.pwdLastSet)) & vbTab & GetSIPContact(Obj)
' GetToFileOneCNFromAD = Mid(Obj.Name,4,Len(Obj.Name)-3) & vbTab & Obj.Name & vbTab & Obj.userPrincipalName & vbTab & Obj.ADsPath & vbTab & Obj.physicalDeliveryOfficeName & vbTab & Obj.description & vbTab & Obj.mail & vbTab & Obj.scriptPath & vbTab & Obj.homeDirectory & vbTab & Obj.homeDrive & vbTab & Obj.telephoneNumber & vbTab & Obj.homeMDB & vbTab & Obj.logonCount & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.lastLogon) ) & vbTab & Obj.whenCreated & vbTab & Obj.UserAccountControl & vbTab & Obj.badPwdCount & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.badPasswordTime)) & vbTab & FuncConvertTimeStamp( FuncConvertTime(Obj.pwdLastSet)) & vbTab & GetSIPContact(Obj)
End Function
'----------------функция----------------------------------------
'---функция берет информацию об SIP свойствах учетных записей --
Function GetSIPContact( objUser)
On Error Resume Next
objUser.Get("msRTCSIP-PrimaryUserAddress")
if (Err.Number = 0) Then
SIPName=objUser.Get("msRTCSIP-PrimaryUserAddress") & vbTab & objUser.Get("msRTCSIP-LineServer") & vbTab & objUser.Get("msRTCSIP-Line")
MyResult = SIPName
Else
GetSIPContact = ""
Err.Clear
MyResult = vbTab & vbTab & vbTab
End If
GetSIPContact = MyResult

End Function
'----------------функция----------------------------------------
'добавляет строчку в текстовый файл
Function FuncAppendOneStrToTXTFile(FileName, StrText)
'------------------------Константы для задания типа открытия файла
Const ForReading = 1, ForWriting = 2, ForAppending = 8, OverwriteTrue = True, OverwriteFalse = False
' Объявляем переменные
Dim objFSO, FOut
' Создаем объект FileSystemObject
Set objFSO=WScript.CreateObject("Scripting.FileSystemObject")
' Открываем выходной файл для записи
Set FOut = objFSO.OpenTextFile (FileName,ForAppending,true)
' Записываем текстовую строку в файл
FOut.WriteLine StrText' & vbcrlf
' Закрываем выходной файл
FOut.Close
FuncAppendOneStrToTXTFile = true
End Function
'----------------функция----------------------------------------
'создает txt - файл 'файл не должен быть создан
Function FuncCreateTXTFile(FileName)
'------------------------Константы для задания типа открытия файла
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const OverwriteTrue = True, OverwriteFalse = False, UnicodeTrue = True, UnicodeFalse = False
Const ReadOnlyDeletionTrue = True, ReadOnlyDeletionFalse = False
' Объявляем переменные
Dim objFSO, FOut
' Создаем объект FileSystemObject
Set objFSO=WScript.CreateObject("Scripting.FileSystemObject")
' Открываем выходной файл для записи
Dim File
Set File = objFSO.CreateTextFile(FileName, OverwriteTrue,UnicodeFalse)
' Закрываем выходной файл
FuncCreateTXTFile = true
End Function
'----------------функция----------------------------------------
Function GetScriptDirectory()
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
GetScriptDirectory = Mid(WScript.ScriptFullName,1,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))
End Function
'----------------функция----------------------------------------
'функция преобразует дату из числового формата в нормальный
Function FuncConvertTime(x)
Dim StrResult, objShell
' Получение настроек о зонах времени из регистра
Set objShell = CreateObject("Wscript.Shell")
lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" & "TimeZoneInformation\ActiveTimeBias")
If UCase(TypeName(lngBiasKey)) = "LONG" Then
lngBias = lngBiasKey
ElseIf UCase(TypeName(lngBiasKey)) = "VARIANT()" Then
lngBias = 0
For k = 0 To UBound(lngBiasKey)
lngBias = lngBias + (lngBiasKey(k) * 256^k)
Next
End If
On Error Resume Next
Set objDate = x'lastLogon'lngDate
If Err.Number <> 0 Then
On Error GoTo 0
dtmDate = #1/1/1601#
Else
On Error GoTo 0
lngHigh = objDate.HighPart
lngLow = objDate.LowPart
If lngLow <>
lngHigh = lngHigh + 1
End If
If (lngHigh = 0) And (lngLow = 0 ) Then
StrResult = #1/1/1601#
Else
StrResult = #1/1/1601# + (((lngHigh * (2 ^ 32)) + lngLow)/600000000 - lngBias)/1440
End If
End If
'WScript.Echo StrResult
FuncConvertTime = StrResult
End Function
'----------------функция----------------------------------------
'функция преобразует TimeStamp возвращенный функцией FuncConvertTime(x) в поддающийся сортировке TimeStamp
Function FuncConvertTimeStamp(x)
Dim y,z
y = ""
If ( Len(x)>0 ) Then
'проверка на наличие времени в TimeStamp
If (Len(x) > 11) Then
z = Mid(x,12,Len(x)-11)
End If
'преобразование TimeStamp
If Mid(x,13,1) = ":" Then
y = Mid(x,7,4) & "." & Mid(x,4,2) & "." & Mid(x,1,2) & " " & "0" & z
Else
y = Mid(x,7,4) & "." & Mid(x,4,2) & "." & Mid(x,1,2) & " " & z
End If
'y = Mid(x,7,4) & "." & Mid(x,4,2) & "." & Mid(x,1,2) & "." & Mid() & "." & Mid() & "." & Mid()
End If
FuncConvertTimeStamp = y
End Function


Конечно, теперь есть и другое решение:
http://shss.wordpress.com/2010/07/08/ad-add-telephone-numbers-using-excel-application-as-data-soutce/

просто мой скрипт писался, когда ещё не было Power Shell

среда, 24 марта 2010 г.

Решение проблемы с аутентификацией Win9x на Windows 2008 R2 контроллерах домена

При обновление контроллеров домена с Windows 2003 до Windows 2008 R2.
Когда был введен первый контроллер домена с операционной системой Windows 2008 R2 (ракже роли DNS и WINS) обнаружилась пролема аутентификации Win9x компьютеров.
проблема возникла после того как новому контроллеру были переданы роли:
Domain naming master, RID pool manager
(можно посмотреть командой netdom query fsmo)
При попытке входа в домен на Win9x компьютерах выдвалась ошибка:
"Данный запрос не поддерживается сетью"
Раскопки в гугле и сравнение значений реестра наконтроллерах с разной ОС (2003 и 2008R2) привели к следующему решению:
ключи реестра на 2008R2 должны быть следующими:
Windows Registry Editor Version 5.00
[HKLM\SYSTEM\CurrentControlSet\Control\Lsa\]
"lmcompatibilitylevel"=dword:00000002
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0]
"Auth132"="IISSUBA"
"NtlmMinClientSec"=dword:00000000
"NtlmMinServerSec"=dword:00000000

Посмотреть здесь можно.

аналогичные изменения можно внести политикой:

Там же изменил параметры подписывания SMB:
Microsoft network client: Send unencripted password to third-party SMB servers
Microsoft network server: Digitally sign communications (always)
О которых можно почитать здесь.
После чего при входе на Win9x компьютерах (теперь вместо NET-BIOS обязательно нужно использовать полнодоменное имя ) стали выдаватся сообщения вида:
"пароль не опознан и одним из серверов", но при этом все сетевые ресурсы стали доступны.

Примечательно, что, если пользователю менять пароль, то он перестаёт мочь аутентифицироваться и ему не предоставляются сетевые ресурсы. Даже если на Win9x клиенте установлен dsclient v 5.0.2920.5.exe и 266772usa8.exe и 293793USA8.EXE. Как было сказано здесь.


Примечательно, что те пользователи, которые не меняли пароль могут заходить на машину без проблем, а новые - не могут этим похвастать. Версия Windows 98 SE по крайней мере.
Установил: Maximus Decim Cumulative Update - не помогло.
На контроллере домена, обнаружил следующую ошибку:
System
- Provider
[ Name] Microsoft-Windows-Security-Auditing
[ Guid] {54849625-5478-4994-A5BA-3E3B0328C30D}
EventID 4776
Version 0
Level 0
Task 14336
Opcode 0
Keywords 0x8010000000000000
- TimeCreated
[ SystemTime] 2010-03-26T10:50:21.265625000Z
EventRecordID 11209030
Correlation
- Execution
[ ProcessID] 532
[ ThreadID] 704
Channel Security
Computer DC.corp.mydomain.ru
Security
- EventData
PackageName MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
TargetUserName UserName
Workstation \\PCName
Status 0xc000006a
натолкнулся на неожиданное решение. Еще об этом.
Итак решение:
На Windows 98:
1. Установить IE6 SP1
2. Установить DSClient
На Windows 2008:
1. Создать параметр SMB2 (REG_DWORD) и установить в "0" путь HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters)
2. Создать параметр EnableRaw (REG_DWORD) и установить в "0" путь HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters
3. В локальных политиках - Параметры безопасности: Клиент сети Microsoft: использовать цифровую подпись (с согласия сервера) (Microsoft network client: Digitally sign communications (if server agrees) установить в "Включено"
4. Клиент сети Microsoft: использовать цифровую подпись (всегда) ( Microsoft network client: Digitally sign communications (always) установить в "Отключено"
5. Сервер сети Microsoft: использовать цифровую подпись (с согласия клиента) (Microsoft network server: Digitally sign communications (if server agrees)) установить в "Включено"
6. Сервер сети Microsoft: использовать цифровую подпись (всегда) (Microsoft network server: Digitally sign communications (always) установить в "Отключено"
7. Сетевая безопасность: уровень проверки подлинности LAN Manager установить "Отправлять только NTLM-ответ"
Как ни странно, это тоже не помогло...
Еще одну неприятность заметил - если прользователи не меняют пароль (у них в учетной записи выставлена галка не менять пароль), то у них никаких проблем, если же меняют (на другой машине с ОС XP) или им сбрасывается пароль административно - то уже номально аутентифицироваться не могут на сетевых ресурсах доменной учеткой.

Пренос центра сертификации - ROOT Certification Authority

При обновлении контроллеров домена с Windows 2003 до Windows 2008 R2, контроллер домена на котором был расположен центр сртификации отказался понижатья до роли рядового сервера, пока с него не перенесут или не удалят центр сертификации.
По этому поводу нашел мануал:
Active Directory Certificate Services Upgrade and Migration Guide for Windows Server 2008
Благодаря которому удалось перенести центр сертификации c Windows 2003 на Windows 2008 R2 Server.