AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.05.2012, 13:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
axinthefield: Comparing AX and Active Directory User Accounts
Источник: http://blogs.msdn.com/b/axinthefield...-accounts.aspx
==============

I was recently working with an AX 2009 customer who wanted to compare the user accounts configured in AX with the user accounts in Active Directory. The basic goals were:
  1. Find all AX user accounts that no longer exist in Active Directory.
  2. Find all accounts that are disabled in Active Directory but not in AX.
It would be great if AX would flag these scenarios for you, but unfortunately it doesn't. If you’re interested in knowing if you have any orphaned accounts or accounts that should probably be disabled in AX, here’s a quick way to do just that.
  1. Export AD users to a CSV file. I used a PowerShell command for this step. The command I used requires the Active Directory Module for Windows PowerShell. This is installed by default on domain controllers, but it is also available via the Remote Server Administration Tools for Windows 7 if you want to run it from a workstation instead. http://www.microsoft.com/download/en/details.aspx?id=7887
  2. Create a table for the AD user details. I created a new table in the AX database to store the AD user account details so I could easily join this information to the AX user details already stored in the database.
  3. Load the contents of the CSV file into the table. I used a bulk insert statement to load the data from the CSV file created in step 1 into the table created in step 2.
  4. Query the table for your results. I used 2 simple queries that joined the AD user account table with the AX userinfo table to get the information I needed.
NOTE: See the attached text file for the exact PowerShell commands and SQL statements I used.

In the one real world scenario (AX 2009) that we looked at, AX had 112 orphaned accounts and there were another 75 accounts that were disabled in AD but not in AX.

This procedure should work for both AX 4.0 and 2009. The userinfo table still exists in AX 2012, so the comparison should work with this version too, but there might be some scenarios such as flexible authentication that throw the results off. That's something I haven't really looked into yet.




Источник: http://blogs.msdn.com/b/axinthefield...-accounts.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 02.05.2012, 14:57   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
  • Доставить на клиентскую тачку набор утилей для удаленного администрирования, чтобы запустить простенький скрипт в PowerShell (понятно, он моднее, чем VBScript, но на любом компе без установки лишних компонентов отработает VBScript, работающий через ADSI)
  • Выгрузить всех пользователей из AD (а если у меня доменный лес и пользователей - десятки тысяч, из которых в Аксапте работает пара сотен?)
  • Создать новую таблицу в AOT, чтобы один раз сверить два набора данных - это вместо тупого джобика перебора и проверки пользователей Аксапты или выгрузки данных в Excel.
И это "родной" суппорт?! Охренеть, дайте два...
Старый 02.05.2012, 18:16   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Тут по некотором размышлении родился джобик, который делает то же самое "без лишнего шума и пыли":
X++:
#define.UserAccountControl  ('userFlags')
#define.UF_ACCOUNTDISABLE   (0x0002)
Counter                     numTotal;
Counter                     numNotFound;
Counter                     numDisabled;
UserInfo                    userInfo;
int                         userAccControl;
COM                         dirObject;
str                         dirPath;
;
while select userInfo
    where   userInfo.networkAlias
        &&  userInfo.networkDomain
{
    numTotal++;
    dirPath = strfmt(@"WinNT://%1/%2,User", userInfo.networkDomain, userInfo.networkAlias);
    dirObject = COM::getObjectEx(dirPath);
    if (dirObject)
    {
        if (userInfo.enable)
        {
            userAccControl = dirObject.get(#UserAccountControl);
            if (bitTest(userAccControl, #UF_ACCOUNTDISABLE))
            {
                numDisabled++;
                info(strfmt("%2\%1 disabled in AD, but not in AX", userInfo.networkAlias, userInfo.networkDomain));
            }
        }
        dirObject.finalize();
        dirObject = null;
    }
    else
    {
        numNotFound++;
        warning(strfmt(@"%2\%1 - not found", userInfo.networkAlias, userInfo.networkDomain));
    }
}
info(strfmt(@"Total: %1, not found: %2, disabled in AD, but not in AX: %3", numTotal, numNotFound, numDisabled));
Старый 02.05.2012, 18:31   #4  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Хоть в исходной задаче этого и не было, но для красоты можно еще проверять accountExpires, а то аккаунт может быть незаблокированным, но с истекшим сроком годности.
Теги
active directory, ax2009, ax4.0, законченный пример, пользователи

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: In Microsoft Dynamics AX 2012 the Default account setup Lookup form is listing Main Accounts from all Company Accounts rather than just active Company Accounts Blog bot DAX Blogs 0 20.03.2012 19:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
Pawan's Ax blog: Run AIF Without Active Directory Blog bot DAX Blogs 0 19.04.2010 11:05
Inside Dynamics AX 4.0: The Security Framework Blog bot DAX Blogs 0 31.10.2007 11:40

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:26.