将HomePath设置为EmployeeNumber作为variables

我们计划使用AD中的EmployeeNumber用户属性来创build每个用户的主驱动器的path。 原因是AD用户名目前是以姓氏为基础的,而姓氏在我们的大型域名中经常发生变化。 我们希望摆脱pipe理名称更改。 将来,我们可能会将用户名转换为员工编号,但我们还没有。

目前我正在使用Powershell中的foreach循环来完成在AD中为每个用户设置path,但是我想调查也许使用组策略首选项,以便我可以在映射的驱动器上设置一个友好的标签。 然而,我很难将EmployeeNumber放入path中。

如何将EmployeeNumber属性作为variables获取到用户HomePath中?

如果你问如何在PowerShell中设置一个variables名,并在系统中的其他地方提取它,你可以把它作为一个系统环境variables导出。

要做到这一点,你需要使用一个名为Environment.SetEnvironmentVariable的.net方法, 这里是文档。

这是你如何在PowerShell中用于不同的作用域currentprocesscurrentusermachine

 [environment]::SetEnvironmentVariable("variable_name","value","process") [environment]::SetEnvironmentVariable("variable_name","value","machine") [environment]::SetEnvironmentVariable("variable_name","value","user") 

如果你想删除variables,使用$null代替值。

要从PowerShell中读取它,你可以使用GetEnvironmentVariable ,例如:

 [environment]::GetEnvironmentVariable("variable_name","machine") 

或者你可以$env:variable_name

或者,从常规的命令行你可以%variable_name%等等。

没有经过testing,我想你也可以在GPO中使用它,只要你已经预先定义了需要被解释的机器上的variables,可能是通过在链中早些时候处理的GPO触发的脚本?