Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása 9. óra Kocsis Gergely, Kelenföldi Szilárd 2015.04.30.
PowerShell
PowerShell alapok Bemutatás: 2006 PowerShell 1.0 Telepíthető opció Windows Vista és Windows Server 2008-ban Egyszerre CLI (Command Line Interface) és GUI-ba építhető eszköz Aktuális PowerShell verzió: 4.0 (WS2012-be építve) (Lekérdezhető: $PSVersionTable) Minden PowerShell verzió tartalmaz egy alap core funkciókört, emellett azonban az igazi ereje a bővíthetősége.
PowerShell kezelők Konzol (PowerShell): Alap parancssoros interfész PowerShell lehetőségek teljes támogatása Korlátozott szerkesztési lehetőség (tab)
PowerShell kezelők ISE Integrated Scripting Environment (PowerShell ISE): Script szerkesztő és konzol Egyes PowerShell lehetőségek nem támogatottak Fejlett szerkesztési lehetőség IntelliSense Code Hinting
PowerShell parancsok Külső parancsok: Ipconfig.exe, Ping.exe PowerShell alias-ok: Dir, Ls, Mkdir, Type Ezek nem valódi implementációk, csak aliasok natív PowerShell parancsokhoz. Nem minden eredetileg használható kapcsoló működik ezeknél. (pl. Dir, Ls: Get-ChildItem) PowerShell CmdLet-ek: Csak PowerShell-ben bevezetett parancsok pl: Get-Service
Parancs keresése Get-Command -Noun: -Verb: -Module: Vildcards: Keresés a parancsnév tárgy részében Keresés a parancsnév ige részében Keresés adott modulben A keresés során használhatók joker karakterek (különös tekintettel pl. *)
Parancs szintaktika Parancs-Neve ParaméterNév Paraméterérték Lehetséges parancsok végrehajtása több elemen Get-EventLog LogName Application ComputerName CL1,DC1 Akár zárójelezett parancs eredményein is Get-EventLog LogName Application ComputerName (Get-Content C:\computers.txt) Vagy változóban tartalmazott listán is $name = Get-Content C:\computers.txt Get-EventLog LogName Application ComputerName $name
Show-Command Parancs megjelenítése grafikus ablakban minden lehetséges paraméterrel
Objektum rendezése Sort-Object alias: Sort -Property: Mi alapján rendezzen -Descending: Ne növekvő, hanem csökkenő legyen a sorrend
Objektum mérése Measure-Object -Property: alias: Measure Számértékű tulajdonság. Ezután használható: -Minimum -> -Min -Maximum -> -Max -Average -> -Ave (ÉS NEM Avg) -Sum -> -Sum
Objektum mentése és konvertálása ConvertTo- Konvertálja az objektumot, de a pipeline-on belül tartja Később lehet használni az Out-File CmdLet-et fájlba mentésre Export- Közvetlenül fájlba ír ConvertTo-CSV ConvertTo-HTML ConvertTo-XML Export-CSV Export-CliXML ConvertFrom- Get-Content eredményét konvertálja objektummá Import- Közvetlenül fájlból olvas objektummá alakítva
Alapvető szűrési operátorok: -eq egyenlő -ne nem egyenlő -gt nagyobb, mint -lt kisebb, mint -le kisebb, vagy egyenlő -ge nagyobb, vagy egyenlő Szűrés -ceq, -cne, -cgt, -clt, -cle, -cge: Ugyanezen operátorok case sensitive verziója
Szűrés Objektum szűrése: Where-Object alias: Where régi alias:? -FilterScript { expr } (elhagyható) Az expr-ben használható a $PSItem ($_) változó, ami egy aktuális sort jelöl az objektumban Get-Service Where { $PSItem.Status eq 'Running' }
ForEach-Object Objektum csoportos kezelése: ForEach-Object alias: ForEach 1..100 ForEach-Object { Get-Random }
PowerShell Scriptek
Változók Egyszerű változó: $var = 'daily' Set-Variable Name $var Value 700 Tömb változó:
Változók Objektum változók és azok tagjainak elérése:
Scriptek Minta script: [CmdletBinding()] Param( [Parameter(Mandatory=$True)] [string]$computername, [int]$eventid = 4624 ) Get-EventLog -LogName Security -ComputerName $ComputerName Where EventID -eq $EventID Select -First 50
PowerShell és AD adminisztráció
Felhasználói fiókok Cmdlet New-ADUser Set-ADUser Remove-ADUser Set-ADAccountPassword Set-ADAccountExpiration Unlock-ADAccount Enable-ADAccount Disable-ADAccount Leírás Felhasználói fiók létrehozása Felhasználói fiók tulajdonságainak módosítása Felhasználói fiók törlése Felhasználói fiók jelszavának beállítása Felhasználói fiók hatályossági idejének módosításe Felhasználói fiók hozzáférésének újraengedélyezése miután lezárásra került Felhasználói fiók engedélyezése Felhasználói fiók tiltása
Felhasználói fiókok New-ADUser paraméterek: AccountExpirationDate ChangePasswordAtLogon Enabled HomeDrive Surname AccountPassword Department HomeDirectory GivenName Path Egy felhasználó létrehozása: (a jelszót a bilentyűzetről kéri be) New-ADUser "Sten Faerch" -AccountPassword (Read-Host -AsSecureString "Enter password") -Department IT
Csoportok Cmdlet New-ADGroup Set-ADGroup Get-ADGroup Remove-ADGroup Add-ADGroupMember Get-ADGroupMember Remove-ADGroupMember Add-ADPrincipalGroupMembership Get-ADPrincipalGroupMembership Remove-ADPrincipalGroupMembership Leírás Csoport létrehozás Csoport Módosítás Megjelenítés Törlés Tag hozzáadása Tagok listája Tag eltávolítása Tagság adása objektumnak Objektum tagságainak kiírása Tagság eltávolítása
Csoportok New-ADGroup paraméterek: Name GroupScope (DomainLocal, Global, Universal) DisplayName GroupCategory (Distribution, Security) ManagedBy Path Egy csoport létrehozása: New-ADGroup -Name "CustomerManagement" -Path "ou=managers,dc=test,dc=lab" -GroupScope Global -GroupCategory Security
OU-k Cmdlet New-ADOrganizationalUnit Set-ADOrganizationalUnit Get-ADOrganizationalUnit Remove-ADOrganizationalUnit Leírás OU létrehozás OU Módosítás OU megjelenítés OU Törlés New-ADOrganizationalUnit paraméterek: Name, Path, ProtectedFromAccidentalDeletion Egy új OU létrehozása: New-ADOrganizationalUnit -Name Sales Path "ou=it,dc=test,dc=lab" -ProtectedFromAccidentalDeletion $true
Gyakorlati feladat