当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 部署 PowerShell Active Directory 模块而不安装 RSAT

作者:精品下载站 日期:2024-12-14 20:09:21 浏览:16 分类:玩电脑

部署 PowerShell Active Directory 模块而不安装 RSAT


在之前的一篇文章中,我们展示了如何在 GPO 登录脚本中使用 Set-ADComputer cmdlet 将当前登录的用户信息保存到每个 AD 计算机对象的属性中。一位评论员合理地指出,要做到这一点,您必须在所有用户计算机上安装带有 Active Directory for Windows PowerShell 的 RSAT,这可能非常耗时。我决定尝试了解是否可以在用户计算机上不安装 RSAT 的情况下使用 PowerShell ActiveDirectory 模块 cmdlet。我做到了!

假设我们有一台运行 Windows Server 2012 R2 的服务器,上面安装了 RSAT 和 RSAT-AD-PowerShell 模块。我们的任务是将 RSAT-AD-PowerShell 文件复制到用户工作站并导入它们,以便运行不同的 AD 模块 cmdlet。我特意使用运行 Windows 10 LTSC(基于 1809 版本)的计算机作为工作站,以表明较新的操作系统版本支持早期的 RSAT-AD-PowerShell 版本。

首先,我们将所有 AD 模块文件从 Windows Server 2012 R2 复制到 Windows 10。创建一个文件夹 C:\PS\ADPoSh,并将 C:\Windows\System32\WindowsPowerShell 1.0\Modules\ActiveDirectory 的所有内容复制到其中。

然后从 C:\Windows\WinSxS 文件夹复制以下文件:

  • Microsoft.ActiveDirectory.Management.dll

  • Microsoft.ActiveDirectory.Management.resources.dll

您可以通过搜索 WinSxS 文件夹找到这些库。在我的示例中,Windows Server 2012 R2 中的完整路径如下:

"C:\Windows\WinSxS\amd64_microsoft.activedirectory.management_31bf3856ad364e35_6.3.9600.16503_none_09aa35cd49da6068\Microsoft.ActiveDirectory.Management.dll"
"C:\Windows\WinSxS\amd64_microsoft.activedir..anagement.resources_31bf3856ad364e35_6.3.9600.16384_en-us_efefcf68718a71bc\Microsoft.ActiveDirectory.Management.resources.dll"

[玩转系统] 部署 PowerShell Active Directory 模块而不安装 RSAT

然后将 C:\PS\ADPoSh 文件夹(在我的例子中,其大小约为 1.3MB)复制到未安装 Windows PowerShell 的 RSAT AD 模块的 Windows 10 计算机。

让我们尝试将复制的 Active Directory 模块导入到当前的 PowerShell 会话中:

Import-Module "C:\PS\ADPoSh\Microsoft.ActiveDirectory.Management.dll"
Import-Module "C:\PS\ADPoSh\Microsoft.ActiveDirectory.Management.resources.dll"

[玩转系统] 部署 PowerShell Active Directory 模块而不安装 RSAT

该模块已成功导入,您可以使用任何 AD 模块 cmdlet 来管理 AD 域并获取信息(例如 Get-ADUser、Get-ADComputer、Get-ADGroup 等)。

[玩转系统] 部署 PowerShell Active Directory 模块而不安装 RSAT

如果错误“无法联系服务器。这可能是因为该服务器不存在、当前已关闭或没有运行 Active Directory Web 服务。发生这种情况,请确保最近的域控制器上的 Active Directory Web 服务 (ADWS) 正在运行,并且 TCP 端口 9389 未被防火墙阻止。

您可以使用以下命令查找域中具有 ADWS 角色的 DC:

Get-ADDomainController -Discover -Service “ADWS”

[玩转系统] 部署 PowerShell Active Directory 模块而不安装 RSAT

您可以使用 Test-NetConnection cmdlet 检查 ADWS 服务的可访问性:

Test-NetConnection DC01 -port 9389

要针对特定域控制器运行 cmdlet,请使用 -Server 参数:

Get-ADUser jbrion -server dc01.a-d.site

您可以使用 PowerShell AD 模块 cmdlet,直到关闭 PowerShell 会话。您可以使用 GPO 将 AD 模块文件复制到所有域计算机。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯