Назад | Перейти на главную страницу

Установка HomePath на EmployeeNumber в качестве переменной

Мы планируем использовать атрибут пользователя 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 скрипт, обработанный ранее в цепочке?