ILM 2007 синхронизация пользователей AD и eDirectory
26 февраля 2009 г.Настраиваем MA (Management Agent) для Active Directory:
- Properties - Тут все понятно….
- Connect to AD Forest - комментарии лишние
- Configure Dir Partitions – В Containers выберем контейнеры с пользователями которые мы собираемся синхронизировать. В Password Synch отмечаем Enable this partition as a password synch. если мы собираемся синхронизировать пароли и в Targets выберем МА NetWare когда его создадим. (о настройке синхронизации паролей можно прочитать на TechNet)
- Select Object Types – Выберем нужные типы объектов
- Select Attributes – Отмечаем нужные атрибуты
- Confugure Connector Filter – нам пока не нужен
- Configure Join and Projection Rules
- Confugure Attribute Flow – Настройка соответствия атрибутов которые мы хотим импортировать и экспортировать из AD в Metaverse
Тут стоит обратить внимание на AD атрибут UserAccountControl, дело в то что он принимает значения, а в eDirectory атрибут loginDisabled, который отвечает за то включена или отключена учетная запись, принимает значения “True” или “False”. Что бы все корректно работало и состояние учетной записи пользователя (откл. или вкл.) синхронизировало между AD и eDir, делаем следующие:
- Создаем атрибут Boolean в Metaverse Desinger например msDS-UserAccountDisabled
- Указываем UserAccountControl импортировать в msDS-UserAccountDisabled, но при этом Mapping Type укажем Advanced и укажем Flow rule name
Эго мы будем использовать в ADExtension.dll которую мы укажем в Configure Extension
Public Sub MapAttributesForImport(ByVal FlowRuleName As String, ByVal csentry As CSEntry, ByVal mventry As MVEntry) Implements IMASynchronization.MapAttributesForImport
' TODO: write your import attribute flow code
Const ADS_UF_ACCOUNTDISABLE As Integer = &H2 'Disable user account
Const ADS_UF_NORMAL_ACCOUNT As Integer = &H200 'Typical user account
Select Case FlowRuleName
Case "msDS-UserAccountDisabled"
mventry("msDS-UserAccountDisabled").BooleanValue = (csentry("userAccountControl").IntegerValue And ADS_UF_ACCOUNTDISABLE) = ADS_UF_ACCOUNTDISABLE
End Select
End Sub
Настройка МА для eDir аналогична AD вот только не нужно в Configure Extension указывать DLL а указать что нужно синхронизировать пароли
и вот мой Confugure Attribute Flow
Только не забываем использовать SSL протокол для подключения к LDAP, о настройке подключения по протоколу SSL в NetWare можно посмотреть тут
И теперь чтобы все это заработало нужно в скомпелить MVExtension.dll и прописать в Options
И сам код MVExtension.dl:
Imports Microsoft.MetadirectoryServices
Imports System
Imports System.Text
Imports System.IO
Imports ActiveDs.ADS_USER_FLAG
Public Class MVExtensionObject
Implements IMVSynchronization
Public Sub Initialize() Implements IMVSynchronization.Initialize
' TODO: Add initialization code here
End Sub
Public Sub Terminate() Implements IMVSynchronization.Terminate
' TODO: Add termination code here
End Sub
Private Sub SetNovellPW(ByRef csentry As CSEntry, ByVal pw As String)
' TODO: Setting an Initial Password in eDirectory
Dim password() As Byte
password = New System.Text.UTF8Encoding(False, False).GetBytes(pw)
ReDim Preserve password(UBound(password) + 2)
csentry("userPassword").Values.Add(password)
End Sub
Public Sub Provision(ByVal mventry As MVEntry) Implements IMVSynchronization.Provision
Dim adMA As ConnectedMA
Dim csentry As CSEntry
Dim dn As ReferenceValue
Dim ExceptionMessage As String
Const eDir_OU = "ou=Account, o=TREE_eDir"
Const eDir_MA = "MA_Novell"
Const AD_MA = "MA_Active_Directory"
Const ACTIVE_OU_AD = "OU=Account,OU=Branch,DC=
Const INACTIVE_OU_AD = "OU=Disabled,OU=Account,OU=Branch, DC=
Const INACTIVE_OU_ED = "ou=Disabled,ou=Account,o=TREE_eDir"
Dim Connectors As Integer
Dim Container As String
If Not mventry("cn").IsPresent ThenExceptionMessage = "The attribute cn was unexpectedly not present on the metaverse object."
Throw New UnexpectedDataException(ExceptionMessage)
Exit Sub
End If
' +++++++++++ eDirectory ++++++++++++++++
adMA = mventry.ConnectedMAs(eDir_MA)
Container = eDir_OU
Connectors = adMA.Connectors.Count
dn = adMA.EscapeDNComponent("cn=" + mventry("cn").Value).Concat(Container)
If 0 = Connectors Then
Select Case mventry.ObjectType.ToLower()
Case "group"
csentry = adMA.Connectors.StartNewConnector("groupOfNames")
csentry.DN = dn
csentry.CommitNewConnector()
Case "person"
csentry = adMA.Connectors.StartNewConnector("inetOrgPerson")
csentry.DN = dn
csentry("groupMembership").Values.Add("cn=Everyone,ou=Account,o=TREE_eDir")
csentry("securityEquals").Values.Add("cn=Everyone,ou=Account,o=TREE_Edir")
SetNovellPW(csentry, "1Q2w3e4r5")
csentry.CommitNewConnector()
End Select
ElseIf 1 = Connectors Then
csentry = adMA.Connectors.ByIndex(0)
If csentry.DN.ToString.ToLower <> dn.ToString.ToLower Then
csentry.DN = dn
End If
Else
Throw New UnexpectedDataException("multiple connectors:" + Connectors.ToString)
End If
' +++++++++++ Active Directory ++++++++++++++++
adMA = mventry.ConnectedMAs(AD_MA)
If (mventry.ObjectType = "person") Then
If mventry("msDS-UserAccountDisabled").BooleanValue Then
Container = INACTIVE_OU_AD
dn = adMA.EscapeDNComponent("cn=" + mventry("displayName").Value).Concat(Container)
If adMA.Connectors.Count = 1 Then
'''Check if rename needed
csentry = adMA.Connectors.ByIndex(0)
If csentry.DN.ToString.ToLower <> dn.ToString.ToLower Then
csentry.DN = dn
End If
End If
End If
End If
End Sub
Public Function ShouldDeleteFromMV(ByVal csentry As CSEntry, ByVal mventry As MVEntry) As Boolean Implements IMVSynchronization.ShouldDeleteFromMV
Throw New EntryPointNotImplementedException()
End Function
End Class
Windows Server 2008 Service Pack 2 and Windows Vista Service Pack 2 Beta
Сегодня на сайте Microsoft для подписчиков MSDN и TechNet появились Release Candidate (RC) of SP2 для Windows Server 2008 и Windows Vista (TechNet, MSDN) пока только на пяти языках: English, French, German, Japanese, и Spanish. Так что берем и тестируем.
О том что же нам несет SP2 можно почитать тут
Group Policy Preferences and Printers
25 февраля 2009 г.Сколько раз я сталкивался с проблемой когда spoolsv.exe загружал процессор на 100% и работа на компьютере при такой картине естественно невозможна.
Всему виной были принтера Microsoft XPS Document Writer и Microsoft Office Document Image Writer. Пользователь бросал на печать на эти принтеры spoolsv и "сходил сума". Из такой ситуации есть два выхода:
- Написать скрипт для удаления этих принтеров и прописать его в групповой политике в Автозагрузке
- Воспользоваться Group Policy Preferences:
И добавляем наши проблемные принтеры, а в поле "Действие" выбираем "Удалить". Вот и все...
RDP client 6.1
23 февраля 2009 г.RDP (Remote Desktop Connection) client версии 6.1 для Windows XP SP2 можно брать тут
MUI тут
О всех изменениях можно почитать здесь
Что касается RDP клиента для Windows SP3, то версия 6.1 уже присутствуем в нем. Единственное что можно добавить, так это MUI к RDP 6.1 для Windows XP SP3 берем здесь
Именно из-за MUI в Windows XP SP2 для RDP 6.0 не ставится SP3
Group Policy Preferences (очистка временных каталогов)
С помощью Group Policy Preferences можно легко удалять временные файлы пользователя:
1. В политике открываем "Конфигурация пользователя"-"Настройка"-"Конфигурация Windows"-"Папки"
2. И прописываем переменные среды для временных каталогов пользователя в поле "Путь":
List Policy Settings
20 февраля 2009 г.Список групповых политик в (.adm) файлах для Windows 2000; Windows Server 2003; Windows XP можно взять тут
А тут описание административных шаблонов для Windows 2000; Windows Server 2003; Windows Vista; Windows XP только в формате (admx/adml)
Remote Server Administration Tools for Windows 7 Beta released!
13 февраля 2009 г.Remote Server Administration Tools for Windows 7 Beta стал доступен на Microsoft Download Center
Доступны инструменты администрирования такие как:
- Active Directory Certificate Services (AD CS) Tools
- Active Directory Domain Services (AD DS) Tools
- Active Directory Lightweight Directory Services (AD LDS) Tools
- DHCP Server Tools
- DNS Server Tools
- File Services Tools
- Hyper-V Tools
- Remote Desktop Services Tools
- BitLocker AD Password Recovery Viewer
- Failover Clustering Tools
- Group Policy Management Tools
- Network Load Balancing Tools
- SMTP Server Tools
- Storage Explorer Tools
- Storage Manager for SANs Tools
- Windows System Resource Manager Tools
ADM for Novell Client
12 февраля 2009 г.ADM шаблон Novell Client for Windows
http://www.novell.com/coolsolutions/tools/14348.html
Abend NLDAP.NLM
11 февраля 2009 г.EIP in NLDAP.NLM at code start +00048D80h
Access Location: 0x00000000
Ошибка ушла только после обновления LDAP сервера до версии 8.7.3.10
Connect ILM to eDirectory
Для подключения по защищенному протоколу SSL (Secure Sockets Layer ) eDirectory агента в ILM делаем следующие:
- Запускаем ConsoleOne
- Открываем контейнер где находится сервер к которому мы собираемся присоединиться
- Заходим в свойства сертификата SSL CertificateIP для этого сервера
- На закладке "Сертификаты" экспортируем сертификат (если этой закладки нет, то необходимо установить модуль сервера сертификатов в Novell для ConsoleOne )
- Добавляем сертификат в "Доверенные корневые центры сертификации" (лично я выбрал метод добавления сертификата через групповую политику а не через IE )
- Обновляем групповую политику
- Рестартим сервис Microsoft Identity Integration Server
- В ILM ставим галку присоединяться к серверу eDirectory используя SSL и порт 636
Управление серверами NetWare
Программы от AdremSoft с которыми администрирование серверов NetWare стало легче:
- Консоль удаленного администрирования для серверов Novell AdRem Free
- И конечно как без Server Manager 6
Авторизация доменных пользователей в SQUID
10 февраля 2009 г.После прочтения бесчисленной информации о Squid + AD я приступил к реализации задуманного.
Решили остановиться на варианте auth-helprs LDAP, вариант связки Kerberos и Winbind в связи с нестабильностью последнего не вдохновил, да Samba мне ни к чему.
А с помощью LDAP мы будем проверять принадлежит ли пользователь определенной группе без проверки паролей и т.д.
И так:
1. берем Squid ... собираем с ключами:
[root@Proxy squid-2.7.STABLE5]#./configure --prefix=/usr \--exec-prefix=/usr \--sysconfdir=/etc/squid \--enable-delay-pools \--enable-kill-parent-hack \--enable-snmp \--disable-ident-lookups \--enable-truncate \--enable-removal-policies=lru,heap \--enable-gnuregex \--enable-underscores \--enable-stacktraces \--enable-useragent-log \--enable-referer-log \--enable-forward-log \--enable-arp-acl \--enable-storeio=aufs,diskd,null,ufs \--enable-htcp \--enable-ssl \--disable-carp \--disable-wccp \--disable-wccpv2 \--enable-default-err-language=Russian-1251 \--enable-follow-x-forwarded-for \--enable-epoll \--with-maxfd=16384 \--enable-auth=basic,ntlm,digest \--enable-basic-auth-helpers=getpwnam,LDAP,NCSA,PAM,SMB,SASL \--enable-ntlm-auth-helpers=no_check,SMB,fakeauth \--enable-digest-auth-helpers=password,ldap \--enable-external-acl-helpers=ldap_group,unix_group,wbinfo_group \--enable-linux-netfilter \--enable-dlmalloc
описывать параметры думаю лишние
2.
[root@Proxy squid-2.7.STABLE5]# make all && make install
3. проверяем как работает наш "хелпер"
squid_ldap_auth
[root@Proxy squid]# /usr/libexec/squid_ldap_group -S -R -b "dc=dn,dc=local" -f "(&(sAMAccountName=%v)(memberOf=cn=%a,ou=Group,ou=Servers,dc=dn,dc=local))" -D ldap@dn.local -w "password" AD_SERVERUserAD IntetGroupOK
4. и последнее пример конфига:
external_acl_type wbinfo_group ttl=0 %LOGIN /usr/libexec/squid_ldap_group -S -R -b "dc=dn,dc=local" -f "(&(sAMAccountName=%v)(memberOf=cn=%a,ou=Group,ou=Servers,dc=dn,dc=local))" -D ldap@dn.local -w "password" srerver-adauth_param basic program /usr/libexec/squid_ldap_auth -R -D ldap@dn.local -w "password" -b "dc=dn,dc=local" -f "sAMAccountName=%s" server-ad auth_param basic children 3auth_param ntlm program /usr/libexec/fakeauth_auth DN/srerver-adauth_param ntlm children 7auth_param ntlm keep_alive offauth_param basic realm Squid proxy-caching Donetskauth_param basic credentialsttl 1 hoursauthenticate_ttl 60seconds acl DN_local proxy_auth REQUIREDacl acl_Inet external wbinfo_group IntUsershttp_access allow DN_local acl_Inethttp_access deny all
Вот и все..., теперь доступ в Интернет только у пользователей кто принадлежит группе IntUsers
NetWare и DFS
- Создать файл реестра и распространить по всем клиентам при помощи групповой политики, но при таком варианте изменения если они будут, вступать в силу только при перезагрузке компьютера
- Воспользоваться Group Policy Preferences настроив параметр "Реестр" в "Конфигурации Windows", указав сервера w2k3 в поле значение.
Добавим шаблон политики для Novell клиента client491.adm и
включаем Bad Name Cache Enabled и Bad Name Cache Timeout
ВСЕ! наша проблема решена.
UserEnv error 1054
Нужно было подключить компьютер в удаленном офисе через IPSec, но при обновлении групповой политики вываливалась ошибка
настройка DNS сделана правильно, работают ftp, RDP и т.д.
Проблема решилась изменением ключа реестра
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\\GroupPolicyMinTransferRate
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
"GroupPolicyMinTransferRate"=dword:00000000
Можно настроит обнаружение медленной групповой политики через параметр Group Policy slow link detection