我们计划使用AD中的EmployeeNumber用户属性来创build每个用户的主驱动器的path。 原因是AD用户名目前是以姓氏为基础的,而姓氏在我们的大型域名中经常发生变化。 我们希望摆脱pipe理名称更改。 将来,我们可能会将用户名转换为员工编号,但我们还没有。
目前我正在使用Powershell中的foreach循环来完成在AD中为每个用户设置path,但是我想调查也许使用组策略首选项,以便我可以在映射的驱动器上设置一个友好的标签。 然而,我很难将EmployeeNumber放入path中。
如何将EmployeeNumber属性作为variables获取到用户HomePath中?
如果你问如何在PowerShell中设置一个variables名,并在系统中的其他地方提取它,你可以把它作为一个系统环境variables导出。
要做到这一点,你需要使用一个名为Environment.SetEnvironmentVariable的.net方法, 这里是文档。
这是你如何在PowerShell中用于不同的作用域currentprocess , currentuser或machine :
[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触发的脚本?