Powershell脚本:读取AD属性,set是环境变量

时间:2012-08-27 19:38:26

标签: powershell active-directory environment-variables

我的一些旧应用程序存在问题,我需要设置AD(hurray)的环境变量

我对PS脚本很陌生,所以我可以使用一些帮助。

在我的AD中,我已经在属性departmentNumber中填充了信息,该部分工作正常。

现在我需要创建一个登录脚本,从当前用户读取此字段(属性:departmentNumber,派生自:inetOrgPersonUser)并将其设置为名为AFDELING的环境变量

我知道这可以使用VB脚本完成,但我更喜欢PS。任何人都可以帮我这个吗?

先谢谢你的帮助,

彼得

1 个答案:

答案 0 :(得分:0)

在PowerShell中使用环境变量涉及特殊变量$Env,遗憾的是,您需要使用.NET方法将环境变量设置为不存在cmdlet(至少从v2开始):

[Environment]::SetEnvironmentVariable("AFDELING", "DeptNo", "User")

第一个字符串参数是变量名,第二个是值,第三个基本上是变量请求的持久性级别:MachineUserProcess - 两个机器并且用户将在重新启动后继续使用,未来的应用程序将可以访问它们,但您需要使用管理帐户运行PowerShell来修改机器级变量。

获取用户信息应该同样容易。您可以通过多种方式访问​​Active Directory,但最简单的方法之一是使用System.DirectoryServices.DirectoryEntry类:

$de = New-Object System.DirectoryServices.DirectoryEntry
$DeptNo = $de.Properties["departmentNumber"]

这应该从域控制器查询当前用户记录,并将departmentNumber属性中的值分配给$ DeptNo变量。然后,您可以将该变量弹出到第一个示例中的第二个参数。