导入PowerShell活动目录模块:逐步指南

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以查找超過930萬個受損密碼。下載Specops Password Auditor,這是一個免費的只讀工具,可以識別與密碼相關的漏洞。

在這篇博客文章中,我們將深入探討如何在Windows 10上安裝PowerShell Active Directory模塊。然後,我們將介紹如何使用PowerShell連接到AD,並介紹您可以使用的不同身份驗證方式。

安裝RSAT(遠程服務器管理工具)

在開始之前,您應該首先了解RSAT套件。如果您使用的是Windows的工作站版本,則需要安裝遠程服務器管理工具(RSAT)套件。在使用Windows的服務器版本時,RSAT已經可用。

如果沒有安裝RSAT,當您嘗試運行我們將要介紹的命令時,您將收到令人討厭的「該術語Get-AD*無法識別為命令、函數、腳本文件或可執行程序的名稱」類型的消息。

Windows 10 1809之前的RSAT

如果您使用的是Windows 10 1809之前的版本,請從Microsoft下載RSAT套件。安裝過程簡單明了。

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

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

Enabling the Active Directory Module for Windows PowerShell

适用于 Windows 10 1809 之后版本的 RSAT

从 1809 版本开始,RSAT 功能作为可选功能提供。无需下载外部软件包。

要导入 PowerShell 活动目录模块,您必须先安装它。在 Windows 10 1809 之后的版本上,使用 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 cmdlets。

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

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

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

Server参数不是必需的。默认情况下,PowerShell将尝试找到一个域控制器进行连接。域控制器是通过按照以下顺序尝试以下步骤来确定的:

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

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

  • 完全限定的域名或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 cmdlet將使用兩個步驟來確定要連接到AD的用戶帳戶。

  1. 如果從PowerShell AD提供者驅動器運行命令,則使用與之關聯的憑據。
  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/