如何使用 PowerShell 获取 ADUser

嘻嘻笔记 0 0

》》》点击全文阅读《《《

Get-ADUser cmdlet 是一个非常通用的工具,用于获取活动目录用户。如果您需要识别特定的 AD 用户,您可以使用像他们的 SAM 帐户名这样的值来做到这一点。或者,当您需要一个或多个用户的详细信息时,您可以使用 Properties 参数。

如何使用 PowerShell 获取 ADUser-第1张图片-嘻嘻笔记

同样,当您处理大量用户对象时,Filter 参数对于根据某些过滤器(如电子邮件、城市、标题等)获取 AD 用户很有用。结合排序和导出等工具,Get-ADUser 使用户域管理非常方便。

PowerShell 获取 ADUser 要求

在域控制器上,Get-ADUser 命令显然在默认情况下有效。但是,如果您尝试在属于AD 域的其他系统上运行此命令,您可能会遇到Get-ADUser is not recognized错误。

这是因为您必须先安装RSAT AD组件。您可以使用Add-WindowsCapability –online –Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0". 执行此操作后,您可以在任何系统上使用 Get-ADUser。

您也不会仅限于域管理员帐户;任何授权的 AD 用户帐户都可以使用。要记住的一件事是,虽然非管理员帐户可以使用此命令检索大多数用户对象属性,但某些敏感信息可能只有域管理员才能访问。

获取 ADUser 参数

Get-ADUser 主要使用三个参数来检索用户对象——Identify、Filter 和 LDAPFilter。

Identity使用特定值(如可分辨名称或 GUID)检索用户对象。当您需要查找用户对象并记住所需的值时,这很有用。

过滤器根据所选查询返回用户对象列表。如果您需要获取密码已过期的 AD 用户,或者最近 2 周未登录的用户等,过滤器会很有用。您可以进一步将结果缩小到仅来自特定服务器、特定 OU 等的用户对象。

LDAPFilter还使用查询字符串来过滤用户对象。不同之处在于,与遵循 PowerShell 语法的 Filter 不同,LDAPFilter 使用自己的 LDAP 查询语法(属性和值)。这意味着它确实有一个轻微的学习曲线,但一旦你习惯了它,你就会发现它是一个有用的工具。

还有其他有用的参数,例如我们将在示例中介绍的SearchBaseSearchScope 。如果您想查看完整的参数列表,我们建议您参考 Microsoft 的文档,但前三个是我们将在本文中重点介绍的。

身份

Identity 使用以下属性之一返回单个 AD 用户对象:

  • 专有名称 (DN)
  • 对象GUID
  • objectSid(SID,或安全标识符)
  • 山姆账户名

假设您需要有关名为 Ava 的用户的详细信息。假设她的 SamAccountName 是 ava,您可以使用 检索用户对象Get-ADUser -Identity ava

如何使用 PowerShell 获取 ADUser-第2张图片-嘻嘻笔记

不过,此命令仅返回 10 个主要属性。如果您需要用户对象的完整属性列表,您应该使用Get-ADUser -Identity ava -Properties

如何使用 PowerShell 获取 ADUser-第3张图片-嘻嘻笔记

筛选

由于人们通常不记得 Identity 参数所需的属性值,因此 Filter 往往更常用。筛选器指定遵循PowerShell 表达式语言语法的查询字符串以检索 AD 用户对象。因此,运算符位于操作数和值之间。

一个基本示例是Get-AdUser -Filter "Name -like 'a'",其中 Name 是操作数,like 是运算符,a 是值。此命令返回名称中包含字母 a 的所有用户对象。

如何使用 PowerShell 获取 ADUser-第4张图片-嘻嘻笔记

另一个有用的命令是Get-ADUser -Filter 检索所有 AD 对象。

如何使用 PowerShell 获取 ADUser-第5张图片-嘻嘻笔记

现在,这是过滤器运算符的列表:

操作员 功能
当量 等于
大于或等于
小于或等于
不等于
大约 约等于
GT 比...更棒
lt 少于
喜欢 喜欢
不喜欢 不喜欢
所有条款必须为真
或者 任何条款都应该是真实的
不是 该条款必须是错误的
乐队 按位与
博尔 按位或

如前所述,usingGet-ADUser <user> -Properties 返回完整的属性列表。您可以检查此列表以了解可用于过滤输出的所有可接受的属性。但就目前而言,这里有一些常用的:

  • 账户到期日
  • 城市
  • 公司
  • 国家
  • 国家代码
  • 部门
  • 描述
  • 电子邮件地址
  • 员工ID
  • 员工编号
  • 启用
  • 缩写
  • 登录次数
  • 姓名
  • 密码过期
  • 山姆账户名
  • 状态
  • 标题

使用这些运算符和属性,您可以创建各种类型的过滤器。例如,要仅获取描述中包含 Tech 的用户,您可以使用Get-ADUser -Filter "Description -like 'Tech'". 要仅列出活跃的 AD 用户,您可以使用Get-ADUser -Filter 'Enabled -eq $true'

同样,您可以组合这些命令来列出在其描述中包含 Tech 的活动 AD 用户,如下所示: Get-ADUser -Filter {Description -like 'Tech' -and Enabled -eq $true}

如何使用 PowerShell 获取 ADUser-第6张图片-嘻嘻笔记

使用非管理员帐户时,如果您没有执行任务的权限,则可能会遇到非终止错误。在这种情况下,您可以使用 Credential 选项以不同的凭据运行命令,例如: Get-ADUser -Filter -Credential ava

如何使用 PowerShell 获取 ADUser-第7张图片-嘻嘻笔记

最后,由于 Filter 通常会返回大量 AD 对象,因此您可以通过指定所需的确切属性值来进一步优化输出。首先使用Properties参数检索值,然后使用Select-Object选项仅显示指定的属性。 Get-ADUser -Filter -Properties Name, Initials | Select-Object Name, Initials

如何使用 PowerShell 获取 ADUser-第8张图片-嘻嘻笔记

LDAP过滤器

LDAP 子句遵循(ADAttribute 运算符值)格式。具体来说,它使用以下运算符:

操作员 功能
= 等于
>= 大于或等于
<= 小于或等于
~= 约等于
& 布尔与
| 布尔或
布尔非

让我们看一些基本的例子。以下命令返回名称以纪元结尾的 AD 对象: Get-ADUser -LDAPFilter "(name=era)"

如何使用 PowerShell 获取 ADUser-第9张图片-嘻嘻笔记

要获取描述中不包含 Tech 的对象: Get-ADUser -LDAPFilter '(!(description=Tech))'

如何使用 PowerShell 获取 ADUser-第10张图片-嘻嘻笔记

组合多个子句以便获得名称中带有 A 但描述中没有 Tech 的对象: Get-ADUser -LDAPFilter '(&(!(description=Tech))(cn=A))'

如何使用 PowerShell 获取 ADUser-第11张图片-嘻嘻笔记

有用的 Get-ADUser 示例

此时您应该掌握基本的 Get-ADUser 用法。我们在此处列出了一些常见用例的更多示例,这些示例将演示其他有用的参数和场景。

  • 要以表格格式获取输出,请使用 Format-Table 或 ft: Get-ADUser -Filter | Format-Table 如何使用 PowerShell 获取 ADUser-第12张图片-嘻嘻笔记
  • 要从特定容器中获取对象,请使用 SearchBase: Get-ADUser -Filter -SearchBase "OU=Cali,OU=Locations,DC=mylab,DC=local" 如何使用 PowerShell 获取 ADUser-第13张图片-嘻嘻笔记
  • 要仅将对象降低到 OU 层次结构的特定级别,请使用 SearchScope: Get-ADUser -Filter -SearchBase "OU=Cali,OU=Locations,DC=mylab,DC=local" -SearchScope 1 | ft 如何使用 PowerShell 获取 ADUser-第14张图片-嘻嘻笔记
  • 要从特定域控制器获取对象,请使用服务器: Get-ADUser –Server mylab.local –Identity ava 如何使用 PowerShell 获取 ADUser-第15张图片-嘻嘻笔记
  • 要获取未设置电话号码的用户, Get-ADUser -LDAPFilter '(!phone=)' 如何使用 PowerShell 获取 ADUser-第16张图片-嘻嘻笔记
  • 要显示所有用户的电子邮件地址, Get-ADUser -Filter -Properties Name, EmailAddress | select Name, EmailAddress 如何使用 PowerShell 获取 ADUser-第17张图片-嘻嘻笔记
  • 要将输出导出为文本, Get-ADUser -filter -properties Name, PasswordLastSet | ft Name, PasswordLastSet > C:\pwddata.txt 如何使用 PowerShell 获取 ADUser-第18张图片-嘻嘻笔记
  • 要将输出导出为 CSV, Get-ADUser -filter -properties Name, PasswordLastSet | select-object Name, PasswordLastSet | Export-csv -path C:\pwddata.csv -Append -Encoding UTF8 如何使用 PowerShell 获取 ADUser-第19张图片-嘻嘻笔记

》》》点击全文阅读《《《

抱歉,评论功能暂时关闭!