Korzystanie z PowerShell Active Directory bez instalowania RSAT

W poprzednim artykule pokazaliśmy, jak używać polecenia cmdlet Set-ADComputer w skrypcie logowania do przechowywania informacji o bieżącym użytkowniku we właściwościach każdego komputera w AD. Jeden z komentatorów dość słusznie zauważył, że w tym przypadku będziesz musiał zainstalować RSAT z modułem Active Directory dla Windows PowerShell na komputerach wszystkich użytkowników, co jest dość pracochłonne. Postanowiłem spróbować dowiedzieć się, czy Użyj modułu PS do poleceń cmdlet AD bez instalowania go do komputerów użytkowników. I zrobiłem to!

Załóżmy, że mamy serwer z systemem Windows Server 2012 R2, na którym zainstalowane są moduły RSAT i RSAT-AD-PowerShell. Naszym zadaniem jest skopiowanie plików modułu RSAT-AD-PowerShell na stację roboczą i próba ich zaimportowania w celu uruchomienia różnych poleceń cmdlet modułu AD. Jako stacja robocza używam w szczególności LTSC systemu Windows 10 (na podstawie 1809), aby pokazać, że starsze wersje modułu RSAT-AD-PowerShell są obsługiwane w nowszych systemach operacyjnych.

Najpierw skopiuj wszystkie niezbędne pliki modułu AD z systemu Windows Server 2012 R2. Utwórz folder C: \ PS \ ADPoSh i skopiuj do niego zawartość katalogu C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules.

Następnie z katalogu C: \ Windows \ WinSxS skopiuj pliki:

  • Microsoft.ActiveDirectory.Management.dll
  • Microsoft.ActiveDirectory.Management.resources.dll
Te biblioteki można znaleźć, przeszukując katalog WinSxS. W moim przykładzie w systemie Windows Server 2012 R2 pełna ścieżka wyglądała następująco:

„C: \ Windows \ WinSxS \ amd64_microsoft.activedirectory.management_31bf3856ad364e35_6.3.9600.16503_none_09aa35cd49da6068 \ Microsoft.ActiveDirectory.Management.dll”

I…

„C: \ Windows \ WinSxS \ amd64_microsoft.activedir ... anagement.resources_31bf3856ad364e35_6.3.9600.16384_en-us_efefcf68718a71bc \ Microsoft.ActiveDirectory.Management.resources.dll”

Teraz skopiuj katalog C: \ PS \ ADPoSh (w moim przypadku jego rozmiar wynosił około 1,3 MB) na komputer, który nie ma modułu RSAT AD dla Windows PowerShell. W tym przykładzie używam komputera z systemem Windows 10.

Spróbujmy zaimportować skopiowany moduł Active Directory do bieżącej sesji PowerShell:

Moduł importu „C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.dll”

Moduł importu „C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.resources.dll”

Moduł został pomyślnie zaimportowany, teraz możesz używać dowolnych poleceń cmdlet modułu AD do zarządzania i pobierania informacji z domeny AD (na przykład get-aduser, get-adcomputer, get-adgroup itp.).

Gdy wystąpi błąd ”Nie można skontaktować się z serwerem. Może to być spowodowane tym, że ten serwer nie istnieje, jest obecnie wyłączony lub nie ma uruchomionych usług sieci Web Active Directory„musisz sprawdzić, czy usługi sieci Web Active Directory (ADWS) na najbliższym kontrolerze domeny są uruchomione i czy port TCP 9389 nie jest blokowany przez zaporę.

Możesz znaleźć w domenie DC z rolą ADWS za pomocą polecenia:

Get-ADDomainController -Discover -Service „ADWS”

Możesz sprawdzić dostępność usługi za pomocą polecenia cmdlet Test-NetConnection:

MSK-DC01 - port 9389

Aby uruchomić polecenia cmdlet na określonym kontrolerze domeny, musisz użyć parametru -Server:

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

Możesz używać poleceń cmdlet modułu AD, dopóki nie zamkniesz sesji PowerShell. Pliki modułów można kopiować pliki na wszystkie komputery w domenie poprzez GPO,