我们计划使用 AD 中的 EmployeeNumber 用户属性来创建每个用户主驱动器的路径。原因是 AD 用户名目前基于姓氏,而姓氏在我们的大型域中经常更改。我们希望摆脱管理姓名更改的麻烦。将来我们可能会将员工编号转换为用户名,但目前还没有实现。
目前,我正在使用 Powershell 中的 foreach 循环来完成 AD 中每个用户的路径设置,但我想研究一下是否可以使用组策略首选项,以便在映射驱动器上设置一个友好的标签。然而,我却无法将 EmployeeNumber 放入路径中。
如何将 EmployeeNumber 属性作为变量放入用户 HomePath 中?
答案1
如果您问如何在 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 中使用它,只要你在需要解释它的机器上预定义了变量,也许是通过链中先前处理的 GPO 触发脚本?