如何使用 PowerShell 在 WDS 中自动执行帐户预暂存

通过使用 PowerShell 在 Active Directory 中预置计算机帐户或在独立模式下,简化 Windows 部署服务的推出。


部署计算机可能是 Windows 系统管理员将面临的最复杂的过程之一。即使有了正确的工具和知识,推出仍然可以横向进行,因为它依赖于多个变量才能顺利进行。

幸运的是,微软已经修改了使用Windows部署服务(WDS)部署设备的大部分阴谋,并将其转变为模块化,轻量级的部署工具。通过PowerShell,微软更进一步,管理和编写了大部分流程。

部署设备时应遵循的一个先决条件是在 Active Directory (AD) 中预先暂存帐户 -- 即使你在独立模式下使用 WDS(图 A)。它使过程更加顺畅,并且可以极大地帮助在部署后将计算机加入域。


图 A

自动化预暂存的要求

  • 安装了 Windows Server 2008+ 的服务器
  • 已安装和配置的 WDS 角色
  • PowerShell
  • CSV 格式的文件,包含计算机名称和 MAC 地址

设置正确的 CSV 文件格式

首先,让我们看一下如何正确格式化CSV文件,我们将使用该文件将计算机上的MAC地址链接到我们要分配的计算机名称。

1. 将列表与两列以逗号分隔:主机名、GUID。

2. 对于将添加到列表中的每个设备,输入要分配给该设备的计算机名称,后跟逗号和与该设备相关的 MAC 地址(图 B)。

图 B

3. 输入每台计算机的信息后,将带有 CSV 扩展名的文件保存到 C 驱动器,以便在下一节中使用。

注意:CSV 文件充当转换器,告诉下面的 PowerShell 命令将设备上的 MAC 地址与提供的主机名进行匹配,并使用该主机名在目录中创建计算机对象。

使用 PowerShell 自动执行导入过程

1. 启动记事本。

2. 在记事本中,输入将在 PowerShell 中运行的命令。它有三个部分,所以我们将逐节进行,从第一部分开始:陈述我们的变量。

$csv = Import-Csv C:\filename.csv;

上面的行将告诉服务器使用在上一节中创建并保存到C驱动器的CSV文件。命令 Import-csv 将处理该文件,并将第一个命令的输出放在$csv变量中,以便在处理过程中再次使用。

3. 对于 PowerShell 命令中的下一行,请按 Enter 两次以跳过两行并输入第二部分:将变量重新应用于该行中的每台计算机。

Foreach ( $line in $csv ) {

命令 Foreach 将使命令独立处理 CSV 中的每一行,并一遍又一遍地应用将在第三部分中输入的命令,直到处理完所有行。

命令中的最后一行还需要按 两次 输入 键跳过两行以进入第三部分:为CSV文件中的每一行创建计算机对象。

WDSUtil /Add-Device `"/Device:$($line.Hostname)`" /ID:$($line.GUID)

}

WDSUtil 是一个 PowerShell 命令,用于对 WDS 进行更改,而不是通过 GUI 进行更改。与GUI不同,PowerShell版本能够处理多个条目以进行脚本编写。这就是为什么该命令能够自动执行创建帐户的繁琐过程的原因(图C)。

图 C

5.输入所有部分后,使用PS1扩展名保存文件。

两个组件都已就绪,您现在可以执行PS1文件以自动执行导入过程。只需双击PS1文件即可执行PowerShell命令。如果收到阻止执行命令的错误,则可能需要重新配置 PowerShell 以允许执行命令。

若要避免此问题,请找到 PowerShell 并右键单击快捷方式,然后选择"以管理员身份运行 ISE"。身份验证后,PowerShell 的集成脚本环境 (ISE)将启动。在此模式下,转到"文件|打开并找到在第二部分中创建的PS1文件。您将看到代码的细分,并能够通过选择绿色播放按钮从此环境中启动它。脚本的结果将沿着屏幕的下半部分输出(图D)。

图 D

脚本完成后,启动 WDS 并刷新"Active Directory 预留设备"节点(如果以纯模式运行 WDS)。如果在独立模式下运行 WDS,请刷新"预留设备"节点,CSV 文件中的每台计算机在"WDS 预留设备"窗格中都应有一个条目。

分享您的经验

WDS 在您的组织中是如何工作的?你有什么痛点吗?请分享您的意见。

举报
评论 0