如何自动填写Active Directory中的计算机描述字段
在本文中,我们将演示如何使用PowerShell在activedirectory中填充计算机信息。作为一个示例,我们将演示如何在ActiveDirectory中的计算机对象的描述字段中保存有关计算机模型的信息。
因此,我们希望有关计算机制造商、型号和序列号的信息显示在ActiveDirectory用户和计算机控制台中计算机的描述字段中。可以使用以下WMI查询获取此信息:
Get-WMIObject Win32_ComputerSystemProduct | Select Vendor, Name, IdentifyingNumber
查询返回以下数据:
Vendor – HP Name – Proliant DL 360 G5 IdentifyingNumber – CZJ733xxxx
现在我们必须将此信息写入AD中此计算机的描述字段。ActiveDirectory for Windows PowerShell模块可以帮助我们。(假设该模块已从RSAT安装)。
使用以下命令导入此模块:
Import-Module ActiveDirectory
在Windows Server 2012及更高版本中,默认情况下启用了ActiveDirectory for PowerShell模块,不需要在PoSh会话中导入。
将要更改的Active Directory帐户的名称分配给变量$computer:
$computer=“PC-Name-p01”
然后将必要的计算机数据输入以下变量:
$vendor = (Get-WMIObject -ComputerName $computer Win32_ComputerSystemProduct).Vendor $name = (Get-WMIObject -ComputerName $computer Win32_ComputerSystemProduct).Name $identifyingNumber = (Get-WMIObject -ComputerName $computer Win32_ComputerSystemProduct).identifyingNumber
查看分配给变量的值:
- $vendor
- $name
- $identifyingNumber
现在,我们只需将这些数据保存到ActiveDirectory中计算机帐户的Description字段中。Powershell cmdlet Set-ADComputer将完成此操作。运行此命令:
Set-ADComputer $computer –Description "$vendor : $name : $identifyingNumber"
在本例中,命令以域管理员权限运行。要对其他帐户执行相同的操作,请为其授予相应的权限(见下文)。
请确保有关制造商和系统型号的信息已出现在我们计算机的AD控制台的描述栏中。
我们只为一台计算机刷新了AD中的数据。若要填写AD中给定容器(OU)中所有计算机的数据,请使用cmdlet Get ADComputer和foreach循环。
创建一个数组,其中包含给定OU中所有计算机的列表:
$computers = Get-ADComputer -Filter * -searchBase "OU=Computers,DC=theitroad,DC=com"
然后使用foreach循环,从WMI获取有关每台计算机的信息并将其保存在Active Directory中:
foreach ($computer in $computers) { $vendor = (Get-WMIObject -ComputerName $computer Win32_ComputerSystemProduct).Vendor $name = (Get-WMIObject -ComputerName $computer Win32_ComputerSystemProduct).Name $identifyingNumber = (Get-WMIObject -ComputerName $computer Win32_ComputerSystemProduct).IdentifyingNumber $vendor $name $identifyingNumber Set-ADComputer $computer –Description "$vendor : $name : $identifyingNumber" }
使用此脚本后,将填写所选OU在Active Directory中的所有计算机的说明。