Мы планируем использовать атрибут пользователя EmployeeNumber в AD для создания пути к домашнему диску каждого пользователя. Причина этого в том, что имена пользователей AD в настоящее время основаны на фамилии, которая часто меняется в нашем большом домене. Мы хотим уйти от управления изменениями имен. В будущем мы можем перейти на номер сотрудника в качестве имени пользователя, но пока этого не произошло.
В настоящее время я использую цикл foreach в Powershell, чтобы выполнить настройку пути для каждого пользователя в AD, но я хотел бы исследовать, возможно, используя настройки групповой политики, чтобы я мог установить дружественную метку на подключенном диске. Однако я в тупике, вставляя EmployeeNumber в путь.
Как я могу получить атрибут EmployeeNumber в HomePath пользователя в качестве переменной?
Если вы спрашиваете, как вы можете установить имя переменной в PowerShell и выбрать его в другом месте вашей системы, вы можете экспортировать его как переменную системной среды.
Для этого вам нужно использовать метод .net под названием Environment.SetEnvironmentVariable
, Вот это документация.
Вот как вы используете его в PowerShell для разных областей currentprocess
, currentuser
или machine
:
[environment]::SetEnvironmentVariable("variable_name","value","process")
[environment]::SetEnvironmentVariable("variable_name","value","machine")
[environment]::SetEnvironmentVariable("variable_name","value","user")
Если вы хотите удалить переменную, используйте $null
вместо стоимости.
Чтобы прочитать его из PowerShell, вы можете использовать GetEnvironmentVariable
, например:
[environment]::GetEnvironmentVariable("variable_name","machine")
или ты мог бы $env:variable_name
или из обычной командной строки вы можете %variable_name%
и так далее.
Не тестировав его, я думаю, вы могли бы использовать его и в объекте групповой политики, если предварительно определили переменную на машине, где ее нужно интерпретировать, возможно, через запускаемый GPO скрипт, обработанный ранее в цепочке?