Používání PowerShell Active Directory bez instalace RSAT

V předchozím článku jsme ukázali, jak pomocí rutiny Set-ADComputer v přihlašovacím skriptu ukládat informace o aktuálním uživateli do vlastností každého počítače v AD. Jeden z komentátorů docela rozumně poznamenal, že v tomto případě budete muset nainstalovat RSAT s modulem Active Directory pro Windows PowerShell do počítačů všech uživatelů, což je poněkud pracné. Rozhodl jsem se zkusit zjistit, jestli Použijte modul PS pro AD cmdlets bez instalace uživatelům počítačů. A udělal jsem to!

Řekněme tedy, že máme server se systémem Windows Server 2012 R2, na kterém jsou nainstalovány RSAT a modul RSAT-AD-PowerShell. Naším úkolem je zkopírovat soubory modulu RSAT-AD-PowerShell na pracovní stanici a pokusit se je importovat a spouštět různé rutiny cmd modulu AD. Jako pracovní stanici konkrétně používám Windows 10 LTSC (založené na 1809), abych ukázal, že starší verze modulu RSAT-AD-PowerShell jsou podporovány v novějších operačních systémech.

Nejprve zkopírujte všechny potřebné soubory modulu AD z Windows Server 2012 R2. Vytvořte složku C: \ PS \ ADPoSh a zkopírujte do ní obsah adresáře C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Moduly.

Potom z adresáře C: \ Windows \ WinSxS zkopírujte soubory:

  • Microsoft.ActiveDirectory.Management.dll
  • Microsoft.ActiveDirectory.Management.resources.dll
Tyto knihovny lze najít prohledáním adresáře WinSxS. V mém příkladu na Windows Server 2012 R2 vypadala celá cesta takto:

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

A

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

Nyní zkopírujte adresář C: \ PS \ ADPoSh (v mém případě jeho velikost byla asi 1,3 MB) do počítače, který nemá modul RSAT AD pro Windows PowerShell. V tomto příkladu používám počítač se systémem Windows 10.

Zkusme importovat zkopírovaný modul Active Directory do aktuální relace PowerShell:

Importní modul "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.dll"

Importní modul "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.resources.dll"

Modul byl úspěšně importován, nyní můžete použít libovolnou rutinu modulu AD ke správě a načtení informací z domény AD (například get-aduser, get-adcomputer, get-adgroup atd.).

Když dojde k chybě “Nelze kontaktovat server. Může to být způsobeno tím, že tento server neexistuje, je aktuálně nefunkční nebo nemá spuštěnou webovou službu Active Directory'je třeba ověřit, že je spuštěna služba Active Directory Web Services (ADWS) na nejbližším řadiči domény a že port TCP 9389 není blokován bránou firewall.

V doméně DC najdete roli ADWS s příkazem:

Get-ADDomainController -Discover -Service "ADWS"

Dostupnost služby můžete ověřit pomocí rutiny Test-NetConnection:

tnc MSK-DC01 -port 9389

Chcete-li spustit rutiny cmdlets na konkrétním DC, musíte použít parametr -Server:

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

Dokud nezavřete relaci PowerShell, můžete použít rutiny cmdlet AD. Soubory modulů můžete kopírovat do všech počítačů v doméně prostřednictvím GPO,