Zobrazují se příspěvky se štítkemQuest. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemQuest. Zobrazit všechny příspěvky

úterý 25. srpna 2009

Jak na Active Directory z PowerShellu

Pokud pracujete s Active Directory a chtěli byste se dozvědět více o skriptování AD pomocí PowerShellu, můžete využít akci firmy Quest Software. Kniha Managing Active Directory with Windows PowerShell: TFM® je nyní dostupná zdarma.

Stačí se zaregistrovat na stránkách Questu a kniha vám bude doručena až do schránky (emailové). Autorem knihy je Jeffrey Hicks, což myslím mluví za vše. Já mám knihu delší dobu z poslední podobné akce a i když se mi na ní ne všechno líbí, klady rozhodně převažují.

středa 19. srpna 2009

AD: Přidání uživatelů do skupiny

O práci s Active Directory jsem toho zde zatím moc nepsal. Vzhledem k tomu, že poslední dobou dělám malinko pořádek ve skupinách, příspěvky budou zřejmě častější. Za posledních pár dní jsem narazil na dvě věci, se kterými se můžete potkat.

První z nich je zjišťení FSMO rolí. Pokud s AD pracujete častěji určitě znáte příkaz netdom query fsmo. Stejné informace zjistíte pomocí následujících příkazů PowerShellu:
PS C:\> [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest() | fl *RoleOwner

SchemaRoleOwner : server1.domena.net
NamingRoleOwner : server1.domena.net

PS C:\> [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() | fl *RoleOwner

PdcRoleOwner : server2.sub.domena.net
RidRoleOwner : server2.sub.domena.net
InfrastructureRoleOwner : server2.sub.domena.net

Pro přehlednější výpis si můžete předchozí příkazy zabalit do funkce, ale to už je pouze otázka vkusu (a šetření času).
Druhou věcí, se kterou jsem se potkal, je kopie členů skupiny do jiné skupiny. Opět existuje několik cest, jak to udělat (např. pomocí ds* příkazů), ale v tuto chvíli vidím PowerShell jako lepší řešení. Já se ještě rozhodl zadání trochu upravit, taže výsledkem bylo: Vzít všechny členy skupiny users.all, vybrat pouze účty, které jsou enabled a přidat je do skupiny users.all.new.
Tři úkoly, tři cmdlety, dvě roury.
PS C:\> Get-QADGroupMember 'users.all' | Get-QADUser -Enabled | Add-QADGroupMember 'users.all.new'

Edit: Poté, co jsem se přepl na počítač s nejnovější verzi cmdletů od Questu zjistil jsem, že přidali nový parametr pro Get-QADUser. Správně by tedy mohlo být i toto (celá akce je pak o mnoho rychlejší - na mém počítači 12x):
PS C:\> Get-QADUser -MemberOf 'users.all' -Enabled | Add-QADGroupMember 'users.all.new'

Použité cmdlety nejsou standardní součástí PowerShellu, ale dají se zdarma stáhnout z webu firmy Quest Software.