WindowsActiveDirectory提供了非常有用的企业用户管理功能。Powershell是为Microsoft操作系统提供的一种新的脚本语言。 Get-ADUser
是一个非常有用的命令或commandlet,可用于以不同方式列出activedirectory用户。
以交互方式列出域用户
我们将从一个简单的例子开始。我们将列出所有域用户。在本例中,我们将不向 Get-ADUser
命令。但是在运行命令之后,我们会被要求提供一个过滤器。我们将提供星号 *
作为一个过滤器,意味着所有用户。
PS> Get-ADUSer

Get ADUser命令提供以下信息。
- `DistingushedName`将为用户提供完整的规范名称。
- `Enabled`将显示用户帐户是否已启用。
- `GivenName`是人类可读的名字,通常是用户的名字和姓氏。
- `ObjectClass是用户类型,通常是user。
- `ObjectGUID`是当前用户或对象的唯一ID。
- `SamAccountName`是用户的或SAM帐户名。
列出域用户
在本例中,我们将通过提供星号作为参数来列出所有域用户 *
到 Get-ADUser
命令。我们将使用 -Filter
选项。
PS> Get-ADUser -Filter *

列出容器或OU中的所有用户
由于企业环境中有许多用户具有不同的部门、容器和OU,我们可能只需要列出给定的部门、容器或OU。我们将使用 -SearchBase
选项并提供OU以筛选用户。在本例中,我们将使用 DC=ABC, DC=LOCAL
PS> Get-ADUser -Filter * -SearchBase "DC=ABC,DC=LOCAL"

按用户名筛选用户
我们可以通过用户名过滤用户。我们将使用一种查询语言来指定Powershell中的名称。我们还将使用 -Filter
选项。在本例中,我们将列出用户名以 H
信。
PS> Get-ADUser -Filter 'Name -like "H*"'

或者,我们可以指定如下搜索项:;
相关文章: 如何在Linux中添加新的用户帐号
*dan
将搜索以 dan
.
按姓氏筛选用户
另一个流行的搜索案例是根据用户的姓氏进行搜索。我们将使用 Surname
具有 -Filter
选项。在下面的示例中,我们将搜索以 ak
.
PS> Get-ADUser -Filter 'Surname -like "*ak"'
使用and进行复杂过滤和搜索
使用单个属性搜索和筛选很容易,但在某些情况下,我们可能需要搜索和筛选多个条件。我们可以使用 AND
和 OR
不同属性的逻辑。下面我们将搜索名称以 İs
姓氏以 an
. 因此,我们将使用AND逻辑来满足名称和姓氏属性的两个条件。
PS> Get-ADUser -Filter { (Name -Like "İs*") AND (Surname -Like "*an")}
让我们通过添加更多的条件使这个例子更复杂,但更有用。我们将搜索和筛选驻留在 MyUsers
具有指定名称和姓氏的OU。
PS> Get-ADUser -SearchBase "DC=MyUsers,DC=ABC,DC=LOCAL" '' -Filter { (Name -Like "İs*") AND (Surname -Like "*an")}
获取所有属性
由于activedirectory是一个非常复杂的环境,因此有许多关于用户的属性和属性。默认情况下,只打印其中一些属性,如Name、SID、姓氏、GivenName等 -Properties
命令和星号 *
.
PS> Get-ADUser -Filter * -Properties *

从屏幕截图中我们可以看到,诸如AccountExpirationDate、AccountLockoutTime等属性被打印出来。
- `AccountExprirationDate`如果已设置,则将显示帐户到期日。如果没有,现在就有价值了。
- `AccountExpires`将显示帐户是否有过期日期。
- `AccountLockoutTime`将显示空闲时锁定帐户的时间间隔。
- `BadLogonCount`将显示过去有多少次不成功的登录尝试。
- `Created`将显示有关帐户创建的日期和时间信息。
- `Company`如果设置,则显示用户帐户的用户公司名称。
相关文章: Linux stat命令教程及示例
筛选并显示特定属性
由于有很多属性,并且默认情况下,只打印其中一些属性,因此我们可能需要打印特定的属性。我们可以通过指定 -Property
选项如下。我们将打印属性,如 BadLogonCount
, Title
等。
PS> Get-ADUser -Filter * -Properties "BadLogonCount","Title"

显示特定用户的属性
我们还可以显示给定或特定用户的属性,我们需要向用户提供用户名 -Filter
选项以及要显示的属性或属性。
PS> Get-ADUser -Filter "Name -like 'İsmail Baydan'" -Properties "BadLogonCount","Title"

导出到CSV文件
如果我们使用第三方系统并提供Active Directory用户数据,我们可以使用CSV格式。我们可以将CSV格式的activedirectory用户数据导出到 Export-CSV
命令如下。我们还将提供CSV文件名和路径 ADUsers.csv
在这个例子中。
PS> Get-ADUser -Filter "*" | Export-CSV -Path ADUsers.csv

打印电子邮件地址
电子邮件地址信息也打印在 Get-ADUser
命令。我们将只提供电子邮件作为我们想要打印的属性。
PS> Get-ADUser -Filter "*'" -Properties "EmailAddress"
仅列出已启用的用户
可以出于不同的原因(如安全性)禁用Active Directory用户。所以在用户帐户被禁用后 Enabled
属性将设置为false。如果我们只需要列出启用的用户并过滤掉禁用的用户,我们可以使用 Enabled -eq $True
过滤器。
PS> Get-ADUser -Filter {Enabled -eq $True}