今天的 cmdlet,我们将专注于 Get-AdComputer
。这个 cmdlet 是 Get-AdUser 的兄弟。与从 Active Directory(AD)获取用户不同,这个 cmdlet 在组织单位中查找计算机。
你会在 ActiveDirectory PowerShell 模块中找到 Get-AdComputer
cmdlet。如果你还没有安装它,请查看这里的方法这里。
基础知识
如果你以前从未使用过 Get-AdComputer
cmdlet,请确保你了解基础知识。你将使用 Identity
和 Filter
参数搜索和检索计算机。
Identity 参数
在其最基本的形式下,Get-Adcomputer 使用 Identity
参数从 AD 获取单个计算机对象。如果你有一个名为 FOO 的计算机,那么你将提供如下值。
默认情况下,该 cmdlet 仅返回一些 AD 属性。如果你想要查看计算机的所有 AD 属性,请使用 Properties
参数。
通过在 Properties
参数下使用星号,PowerShell 将返回所有 AD 属性。但如果你只想看到其中一些,可以指定它们,用逗号分隔。
与所有其他 Active Directory PowerShell cmdlet Identity 参数一样,你还可以指定分明名称(DN),GUID 或 SID。
Filter 参数
如果您需要查找多个计算机帐户,请使用Filter
参数。 Filter
参数是许多ActiveDirectory命令中的常见参数。 它允许您指定帐户必须满足的条件才能返回。
如果不使用Identity
参数,则必须使用Filter
参数。 例如,如果您想在AD中查找所有计算机帐户,可以指定星号。 星号是一个通配符,可以匹配所有计算机帐户。
也许您需要查找所有以字母“F”开头的计算机。 在这种情况下,您将按照下面显示的方式构建过滤器语法。
LDAPFilter参数
如果您擅长LDAP过滤器,还可以使用LDAPFilter
参数。 LDAP过滤器允许您使用LDAP语法精确地定位您要查找的计算机。 LDAPFilter
可以与SearchBase
参数一起使用,也可以单独使用。
下面,我使用LDAP过滤器查找所有以F开头的计算机。
有关构建过滤器的更多信息,请参阅在PowerShell中学习Active Directory和LDAP过滤器。
在OU中查找计算机
通过使用Identity
参数按名称查找计算机,或者通过Filter
参数按不同的AD属性查找计算机帐户只是一种选择。 您还可以通过它们所在的OU查找计算机帐户。
Get-Adcomputer有一个SearchBase
参数,您可以使用它来限制搜索仅在一个OU及/或其所有子OU中进行。
也许您需要找到域控制器OU中的所有域控制器。您可以使用SearchBase
参数将返回的计算机帐户范围限制为仅限这些计算机。
SearchBase
参数定义了搜索的“起点”。它告诉PowerShell不要从域的根部开始搜索,而是从一个OU开始。
要使用SearchBase
参数,您需要指定OU的专有名称(DN)。以下是在company.pri域中查找Domain Controllers OU中所有计算机帐户的示例。
获取子OU中的帐户
当您使用SearchBase
参数时,PowerShell只会返回该特定OU中的计算机帐户。它不会返回任何子OU中的计算机帐户。为此,您可以使用SearchScope
参数。
SearchScope
参数允许您定义从父OU深入查看的程度。此参数有三个可能的值 – 0
、1
和2
。默认情况下,它设置为0
,并且仅会返回基本OU中的计算机。
如果您需要在基本OU和直接子OU中进行递归搜索,您可以使用1
值。但在这里最常见的值是2
,意味着递归搜索所有子、孙子和更深的OU。
摘要
Get-AdComputer
是一个方便的cmdlet,用于查找有关AD计算机帐户的信息。您将面临的最大挑战不是学习如何使用Get-AdComputer
,而是弄清楚过滤语法。如果您阅读上面链接的过滤器文章,您将看到它可能变得复杂。
一旦掌握了过滤器,您就能轻松地从AD计算机帐户中提取所需的信息!
这些是该cmdlet的一些最常见用例。要获取完整的详细信息,请查阅Microsoft文档。