在 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 变量。然后,您可以将该变量弹出到第一个示例中的第二个参数中。