导入PowerShell Active Directory模块:逐步指南

A prerequisite for every PowerShell Active Directory (AD) task is to import the PowerShell Active Directory module. This popular module allows administrators to query and make changes to Active Directory with PowerShell.

扫描您的AD以查找9.3亿多个已被盗用的密码。下载Specops Password Auditor,这是一个免费的只读工具,可识别与密码相关的漏洞。

在这篇博客文章中,我们将深入介绍如何在Windows 10上安装PowerShell Active Directory模块。然后,我们将介绍如何使用PowerShell连接到AD,并探讨您可以进行AD身份验证的各种方式。

安装RSAT(远程服务器管理工具)

在开始之前,您首先应该了解RSAT包。如果您使用的是Windows的工作站版本,则需要安装远程服务器管理工具(RSAT)包。在使用服务器版本的Windows时,RSAT已经可用。

如果没有安装RSAT,当您尝试运行我们将要介绍的命令时,您将会收到令人讨厌的“Get-AD*不被识别为命令、函数、脚本文件或可执行程序的名称”类型的消息。

适用于1809之前的Windows 10的RSAT

如果您使用的是Windows 10 1809之前的版本,请从微软下载RSAT包。安装过程简单明了。

如果您不知道如何查找您的Windows 10版本,请在此处学习

安装RSAT后,请确保在Windows功能中启用Windows PowerShell的活动目录模块。默认情况下,它应该已经启用。

Enabling the Active Directory Module for Windows PowerShell

适用于1809之后的Windows 10的RSAT

在1809之后的Windows版本中,RSAT功能可作为可选功能使用。无需下载外部软件包。

要导入PowerShell活动目录模块,您首先需要安装它。在1809之后的Windows 10上,使用Add-WindowsCapability命令。这将启用如下所示的Rsat.ActiveDirectory.DS-LDS.Tools可选功能。

PS51> Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

以上语法已在Windows 10版本1903和Windows 7上进行了测试。

适用于Windows Server 2008R2及更高版本的RSAT

在Windows Server上,可以使用PowerShell的ServerManager模块来启用PowerShell中的RSAT-AD-PowerShell功能。

PS51> Import-Module ServerManager
PS51> Install-WindowsFeature -Name RSAT-AD-PowerShell

导入PowerShell活动目录模块

安装时,PowerShell可能会自动导入该模块。但是,如果您希望确保其正确加载,您也可以使用Import-Module命令。

要导入PowerShell Active Directory模块,请运行Import-Module ActiveDirectory。如果模块安装在正确的位置,您将不会收到错误消息。

连接和认证

设置ActiveDirectory模块后,您可以使用Active Directory PowerShell cmdlet。

尽管cmdlet与AD的不同部分交互,但几乎所有的cmdlet都有共同的参数。其中两个参数是ServerCredential

连接到特定的Active Directory域控制器

默认情况下,AD cmdlet会为您查找域控制器。但是,如果您需要连接到另一个域控制器,可以使用Server参数。

Server参数是可选的。PowerShell将默认尝试找到要连接的域控制器。域控制器的确定顺序如下:

  1. 使用管道上传递的对象的Server属性。
  2. 使用AD PowerShell提供程序驱动程序关联的服务器(如果正在使用)。
  3. 使用客户端计算机的域。

您可以通过为Server参数提供值来连接到特定的域控制器。您可以以不同格式指定多个不同的ADDS对象,例如:

  • FQDN或NETBIOS名称,例如domain.localDOMAIN,它将是指定的域名
  • FQDN或NETBIOS名称,如server.domain.local或SERVER将成为域控制器。
  • A fully-qualified domain controller and port such as server.domain.local:3268

使用备用凭据连接到Active Directory

默认情况下,Active Directory PowerShell cmdlets将使用两步过程确定要连接到AD的用户帐户。

  1. 如果从AD提供程序驱动器运行命令,则使用与PowerShell相关联的凭据。
  2. 利用登录用户的凭据。

您还可以使用Credential参数指定备用凭据。

Credential参数允许您传递一个PSCredential对象。如果提供用户名,系统将提示您输入密码,并使用这些凭据。

以下是使用备用凭据使用Get-AdUser cmdlet的示例。

PS51> $credential = Get-Credential
PS51> Get-Aduser -Filter * -Credential $credential

您的Active Directory中是否存在被妥协的密码?下载Specops Password Auditor并免费扫描。

您还有两种可能的身份验证类型,通过AuthType参数进行控制。这些类型分别是Negotiate(默认)和Basic。基本身份验证仅在SSL连接上可用。

PS51> Get-Aduser -Filter * -Credential $credential -AuthType Negotiate|Basic

概要

导入PowerShell Active Directory模块是一个简单而常见的过程。使用本文提供的说明,您应该能够自动化所有Active Directory操作!

进一步阅读

Source:
https://adamtheautomator.com/powershell-import-active-directory/