1

我的一些旧应用程序有问题,我需要从 AD 设置环境变量(万岁)

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

在我的广告中,我已经departmentNumber用信息填充了属性,这部分工作正常。

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

我知道这可以使用 VB 脚本来完成,但我更喜欢 PS。谁能帮我解决这个问题?

在此先感谢您的帮助,

彼得

4

1 回答 1

0

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

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

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

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

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

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

于 2012-08-27T20:29:47.910 回答