Get ADComputer:使用PowerShell在Active Directory中查找计算机详细信息
我们可以使用PowerShell cmdlet Get-ADComputer从Active Directory域获取有关计算机帐户对象(服务器和工作站)的各种信息。这是按各种条件搜索AD计算机的最有用的cmdlet之一(若要获取有关AD用户帐户的信息,请使用另一个cmdlet-get-ADUser)。
假设任务是查找Active Directory中所有未在域中注册超过120天的非活动计算机并禁用这些帐户。
在使用Get-ADComputer cmdlet之前,必须使用以下命令导入Active Directory Module for Windows PowerShell:
Import-Module activedirectory
提示。在PowerShell 3.0(Windows Server 2012中引入)或者更高版本中,如果安装了以下组件,则默认导入此模块:远程服务器管理工具->角色管理工具->AD DS和AD LDS工具->适用于Windows PowerShell的Active Directory模块。要在桌面操作系统(Windows 10、8.1或者Windows 7)中使用Get-ADComputer cmdlet,必须为操作系统版本下载并安装RSAT,并从控制面板或者使用以下命令启用AD Powershell模块:
Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell
Get-ADComputer –Cmdlet语法
我们可以像往常一样使用get help命令获取有关get-ADComputer cmdlet参数的帮助:
Get-Help Get-ADComputer
若要使用AD for PowerShell模块中的cmdlet从AD获取信息,我们不需要具有域管理员权限。运行cmdlet所使用的帐户是Domain Users/Authenticated Users组的成员就足够了。
要获取域中特定计算机帐户的信息,请将其名称指定为 -Identity参数的参数:
Get-ADComputer -Identity SRV-DB01
DistinguishedName : CN=SRV-DB01,OU=Servers,OU=London,OU=UK,DC=theitroad,DC=com DNSHostName : SRV-DB01.theitroad.local Enabled : True Name : SRV-DB01 ObjectClass : computer ObjectGUID : 87654321-1234-5678-0000-123412341234 SamAccountName : SRV-DB01$ SID : S-1-5-21-123456780-1234567890-0987654321-1234 UserPrincipalName :
cmdlet Get-ADComputer仅从AD返回计算机对象的基本属性。我们对AD域中最后一次注册计算机的时间感兴趣,但上面的命令输出中不显示此信息。我们可以从Active Directory列出此计算机对象的所有可用属性:
Get-ADComputer -Identity SRV-DB01 -Properties *
使用“获取成员”,可以获取AD中计算机类的所有属性的列表:
Get-ADComputer -Filter * -Properties * | Get-Member
如我们所见,这台计算机最后一次登录网络的日期是在计算机的属性 LastLogonDate–09/21/2014 0:20:17中指定的。
Get-ADComputer cmdlet允许我们在命令结果中显示计算机的任何属性。删除所有不必要的信息,只留下 Name和 LastLogonDate属性的值。
Get-ADComputer -identity SRV-DB01 -Properties * | FT Name, LastLogonDate -Autosize
因此,我们收到了最后一次在域中注册单台计算机的数据。然后,我们必须修改该命令,使其显示域中所有计算机最后一次网络注册的时间信息。要执行此操作,请将 –Identity替换为 –Filter* :
Get-ADComputer -Filter * -Properties * | FT Name, LastLogonDate -Autosize
我们得到了一个简单的表,它只包含两个字段:计算机名和LastLogonData日期。我们可以将计算机对象的其他字段从AD添加到此表中。