Нашел эту ветку, которая помогла мне получить то, что я хотел. Получить любые атрибуты пользователей AD в переменных среды. Этот скрипт берет все требуемые атрибуты от зарегистрированного пользователя и устанавливает соответствующую переменную окружения. Я поставил перед переменными префикс, но это необязательно, поэтому имя переменной становится «AD [имя атрибута]». Атрибуты на ваш выбор, просто добавьте или удалите свой атрибут после -attr. Не очень полезно для многозначных атрибутов. Последнее (одно) значение входит в переменную окружения.
Этот скрипт является локальным для текущего cmd.exe
for /F "tokens=1,* delims=: " %%A in ('dsquery * domainroot -l -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=%USERNAME%))" -attr adminDescription employeetype company department physicalDeliveryOfficeName street title mail') do set AD%%A=%%B
Чтобы получить глобальные переменные среды в Windows, мы можем использовать «setx» в Windows 7. (Возможно, для loginscript ... но гораздо медленнее.)
for /F "tokens=1,* delims=: " %%A in ('dsquery * domainroot -l -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=%USERNAME%))" -attr adminDescription employeetype company department physicalDeliveryOfficeName street title mail') do set AD%%A=%%B& setx AD%%A "%%~B" > NUL
: EDIT: символ пробела в конце оператора set в примере 2 приводил к завершению значения пустым пробелом. Убрал это, чтобы исправить. (Установите %% A = %% B & setx ...) Также выяснилось, что для правильной работы скрипта необходимо экспортировать как минимум два атрибута.
Поздний ответ, но если это может кому-то помочь, я счастлив.