我的一些旧应用程序存在问题,我需要设置AD(hurray)的环境变量
我对PS脚本很陌生,所以我可以使用一些帮助。
在我的AD中,我已经在属性departmentNumber
中填充了信息,该部分工作正常。
现在我需要创建一个登录脚本,从当前用户读取此字段(属性:departmentNumber
,派生自:inetOrgPersonUser
)并将其设置为名为AFDELING
的环境变量
我知道这可以使用VB脚本完成,但我更喜欢PS。任何人都可以帮我这个吗?
先谢谢你的帮助,
彼得
答案 0 :(得分:0)
在PowerShell中使用环境变量涉及特殊变量$Env
,遗憾的是,您需要使用.NET方法将环境变量设置为不存在cmdlet(至少从v2开始):
[Environment]::SetEnvironmentVariable("AFDELING", "DeptNo", "User")
第一个字符串参数是变量名,第二个是值,第三个基本上是变量请求的持久性级别:Machine
,User
或Process
- 两个机器并且用户将在重新启动后继续使用,未来的应用程序将可以访问它们,但您需要使用管理帐户运行PowerShell来修改机器级变量。
获取用户信息应该同样容易。您可以通过多种方式访问Active Directory,但最简单的方法之一是使用System.DirectoryServices.DirectoryEntry类:
$de = New-Object System.DirectoryServices.DirectoryEntry
$DeptNo = $de.Properties["departmentNumber"]
这应该从域控制器查询当前用户记录,并将departmentNumber属性中的值分配给$ DeptNo变量。然后,您可以将该变量弹出到第一个示例中的第二个参数。