В предишна статия показахме как да използвате командлета Set-ADComputer в скрипт за влизане, за да съхранявате информация за текущия потребител в свойствата на всеки компютър в AD. Един от коментаторите съвсем основателно отбеляза, че в този случай ще трябва да инсталирате RSAT с модула Active Directory for Windows PowerShell на компютрите на всички потребители, което е доста трудоемко. Реших да се опитам да разбера дали Използвайте PS модул за 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 \ Модули.
След това от директорията C: \ Windows \ WinSxS копирайте файловете:
- Microsoft.ActiveDirectory.Management.dll
- Microsoft.ActiveDirectory.Management.resources.dll
"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"
Сега копирайте директорията C: \ PS \ ADPoSh (в моя случай нейният размер беше около 1,3 MB) на компютър, който няма RSAT AD за Windows PowerShell модул. В този пример използвам компютър с Windows 10.
Нека се опитаме да импортираме копирания модул Active Directory в текущата сесия на PowerShell:
Импорт-модул "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.dll"
Импорт-модул "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.resources.dll"
Модулът е успешно импортиран, сега можете да използвате командлети от AD модула за управление и извличане на информация от AD домейна (например get-aduser, get-adcomputer, get-adgroup и т.н.).
Когато възникне грешка “Не може да се свърже със сървъра. Това може да се дължи на това, че този сървър не съществува, той в момента не работи или не работи Active Directory Web Services'трябва да проверите дали Web Directory Active Directory (ADWS) на най-близкия контролер на домейни е стартиран и TCP порт 9389 не е блокиран от защитна стена.Можете да намерите в DC домейна с ролята на ADWS с командата:
Вземете-ADDomainController -Разкрийте -Услуга "ADWS"
Можете да проверите наличността на услугата с командлета Test-NetConnection:
tnc MSK-DC01 -порт 9389
За да стартирате командлети на конкретен DC, трябва да използвате параметъра -Server:
Get-aduser aaivanov -server msk-dc01.winitpro.ru
Можете да използвате командлетите на AD модула, докато не затворите сесията PowerShell. Модулни файлове можете да копирате файлове на всички компютри в домейна чрез GPO,