對於今天的 cmdlet,我們將專注於 Get-AdComputer
。這個 cmdlet 是 Get-AdUser 的兄弟命令。不同於從 Active Directory (AD) 中獲取使用者,這個 cmdlet 在組織單位 (OU) 中尋找電腦。
你可以在 ActiveDirectory PowerShell 模組中找到 Get-AdComputer
cmdlet。如果你尚未安裝該模組,可以在這裡找到如何安裝:這裡。
基本知識
如果你從未使用過 Get-AdComputer
cmdlet,請確保你了解基本知識。你可以使用 Identity
和 Filter
參數來搜尋並擷取電腦。
身分參數
最基本的用法是,使用 Identity
參數從 AD 中獲取單一電腦物件。如果你有一台名為 FOO 的電腦,則可以像下面示例一樣提供該值。
預設情況下,這個 cmdlet 只會返回一些 AD 屬性。如果你想查看該電腦的所有 AD 屬性,可以使用 Properties
參數。
使用 Properties
參數與星號,PowerShell 會返回所有的 AD 屬性。但如果你只想看到其中一些屬性,可以指定逗號分隔的屬性名稱。
就像其他 Active Directory PowerShell cmdlet 的 Identity 參數一樣,你還可以指定分明名稱 (DN)、GUID 或 SID。
篩選參數
如果你需要找到多个计算机账户,使用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中進行。
也許您需要找到Domain Controllers 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 電腦帳戶中提取所需的所有信息!
以下是此日常命令的一些常見用例。要獲得完整的分解,請查看 Microsoft 文檔。