Bevezetés
A Microsoft a Windowsos szerverek (és kliensek) könnyebb kezelésére kiadta a Windows Admin Center nevű toolt. Ez egy tetszőlegesen lokálisan vagy egy szerverre (kivéve a tartományvezérlőt) telepíthető kis alkalmazás. Telepítés után webes böngészőből kezelgethetjük a felvett gépeket. Innen letölthetjük
Probléma
Ami a problémásabb volt, hogy az új kliensek felvétele viszonylag macerás. Ezt megkönnyítendő összeraktam egy egyszerű scriptet amivel vagy a gép nevét megadva beállítja a szükséges dolgokat vagy a címtárból egy OU-ból kiolvassa az összes gépet amiket beállít.
Az egész megoldható GPO-ból is (SSO-t leszámítva), itt egy speciális esetre készült ez a script. Természetesen szabadon módosítható a helyi igényeknek megfelelően.
A script megtalálható a githubomon: @bdebnar/addwacclient
addWACclient
A scriptnek minimum 1 paraméter kell, a célszámítógép neve, amit később kliensként hozzá akarunk adni a WAC-hez. Ezenkívül megadhatunk egy OU-t vagy containert ahol a script megkeresi a számítógép objektumokat és az összesen egyesével végigmegy és végrehajtja a szükséges módosításokat.
A script távolról, powershell segítségével bejelentkezik a célszámítógépre és az alábbi módosításokat hajtja végre:
- winrm quickconfig -transport:https -quiet – engedélyezi a winrm-et HTTPS protokolon keresztül. Ehhez szükséges egy géphez tartozó érvényes tanúsítvány, ennek meglétét a script ellenőrzi de hiány esetén nem generálja le, azért jó esetben ennek meg kéne lennie.
- Set-ADComputer -Identity <célgép> -PrincipalsAllowedToDelegateToAccount <admints gép> – Engedélyezi az SSO belépést a szerveren.
- (Opcioniális)
New-NetFirewallRule -DisplayName “WinRM Port – CUSTOM” -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -Localport 5986 -Remoteaddress <admints gép> – engedélyezi a lokálisan tűzfalon az 5986-os portot a WAC-t futtató gép IP címéről.
Előkészület
A megfelelő működéshez a script elején módosítsuk az alábbi változók értékét:
$firewallExceptionSource = “IP címe a WAC-ot futtató gépnek”
$wacComputerName = “WAC-ot futtató gép hoszt neve”
$domainSuffix = “gép teljes domain neve”
Remote Powershell
Fontos, hogy engedélyezve legyen a cél gépen a remote powershell, szerverek esetében nincs teendő, Win10-es klienseknek kell GPO-ból vagy kézzel engedélyezni. 2 dolog szükséges:
- Engedélyezni a WinRM szolgáltatást
- Engedélyezni a csatlakozást a WinRM szolgáltatáshoz (tűzfalon is).
Futtatás
Domain Admin jogosultság nem árt hozzá az SSO engedélyezése miatt.
Paraméterek
-Target
A cél gép rövid neve.
-SearchBase
Hol keressen számítógép objektumokat a címtárban amiken automatikusan végrehajtja a módosításokat
-AutoProcess
Nem kérdez rá, hogy biztosan végre szeretnénk hajtani minden számítógép előtt. Értéke $true vagy $false. Ha nem adjuk meg a paramétert akkor ez $false
-AddFirewallException
Hozzáadja manuálisan a tűzfalkivételt a lokális tűzfalhoz. Értéke $true vagy $false. Ha nem adjuk meg a paramétert akkor ez $false.
Példák
.\adminwac.ps1 example
Csatlakozik az example nevű géphez és végrehajtja a módosításokat.
.\adminwac.ps1 -target example
Ugyanaz mint az előző.
.\adminwac.ps1 -SearchBase ou=servers,dc=kutyafule,dc=hu
Megkeresi az összes számítógépet a servers OU-ban és végrehajtja rajta a módosításokat
.\adminwac.ps1 -SearchBase ou=servers,dc=kutyafule,dc=hu -Autoprocess $true -AddFirewallException $true
Megkeresi az összes számítógépet a servers OU-ban és végrehajtja rajta a módosításokat egyenkénti jóváhagyás nélkül és létrehozza minden gépen a tűzfalszabályt is.