Использование модуля Active Directory PowerShell без установки RSAT

В одной из предыдущих статей мы показывали, как использовать командлет Set-ADComputer в логон-скрипте для сохранения информации о текущем пользователе в свойствах каждого компьютера в AD. Один из комментаторов вполне резонно отметил, что в таком случае придется устанавливать RSAT с модулем Active Directory for Windows PowerShell на компьютеры всех пользователей, что довольно трудоемко. Я решил попробовать разобраться, можно ли использовать командлеты модуля PS Module for AD без его установки на компьютеры пользователей. И у меня получилось!

Итак, допустим у нас имеется сервер с Windows Server 2012 R2, на котором установлен RSAT и модуль RSAT-AD-PowerShell. Наша задача, скопировать файлы модуля RSAT-AD-PowerShell на рабочую станцию и попробовать импортировать их для запуска различных командлетов модуля AD. В качестве рабочей станции я специально использую Windows 10 LTSC (основана на 1809), чтобы показать, что старые версия модуля RSAT-AD-PowerShell поддерживаются в более новых ОС.

Сначала скопируем все необходимые файлы модуля AD с Windows Server 2012 R2. Создайте папку C:\PS\ADPoSh и скопируйте в нее содержимое каталога C:\Windows\System32\WindowsPowerShell\v1.0\Modules.

Затем из каталога 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"

библиотеки модуля RSAT-AD-PowerShell Microsoft.ActiveDirectory.Management.dll

Теперь скопируйте каталог C:\PS\ADPoSh (в моем случае его размер составил около 1,3 Мб), на компьютер, на котором отсутствует модуль RSAT AD for Windows PowerShell. В этом примере я использую компьютер с Windows 10.

Попробуем импортировать скопированный модуль Active Directory в текущую PowerShell сессию:

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

Import-Module Microsoft.ActiveDirectory.Management.dll

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

Модуль успешно импортирован, теперь вы можете использовать любые командлеты модуля AD для управления и получения информации из домена AD (например get-aduser, get-adcomputer, get-adgroup и т.д.).

get-aduser без установки модуля AD Posh

При появлении ошибки ‘Unable to contact the server. This may be because this server does not exist, it is currently down, or it does not have the Active Directory Web Services running‘ нужно проверить, что служба Active Directory Web Services (ADWS) на ближайшем контроллере домена запушена и порт TCP 9389 не блокируется файерволом.

Вы можете найти в домене DC с ролью ADWS с помощью команды:

Get-ADDomainController -Discover -Service «ADWS»

Get-ADDomainController найти Active Directory Web Services

Доступность службы можно проверить с помощью командлета Test-NetConnection:

tnc MSK-DC01 -port 9389

Чтобы выполняить командлеты на конкретном DC, нужно использовать параметр –Server:

Get-aduser aaivanov –server msk-dc01.winitpro.ru

Вы можете использовать командлеты модуля AD пока не закроете сессию PowerShell. Файлы модуля можно скопировать файлы на все компьютеры в домене через GPO,


Предыдущая статья Следующая статья


Комментариев: 16 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)