2012. április 17., kedd

PowerShell kezdőknek 2. rész

Sziasztok

Mint ígértem az előző írásomból most összetettebb lekérdezéseket fogok mutatni.
Maradjunk még egyenlőre a Get-ADUser parancsnál.

A példák kedvéért létrehoztam az AD-ban egy külön csoportot.
Majd hét felhasználót:
Világos János                                                                                                          
Vezér Gábor                                                                                                            
Szürke Lajos                                                                                                           
Sötét Kálmán                                                                                                           
Sárga Irén                                                                                                             
Sámán Ubul                                                                                                             
Kakukk Marci

A csoport neve kamilla lett.

A kollégám megkérdezte: Imre miért lett kamilla a csoport neve?
A válaszom:  Fogalmam sincs, de épp kamillateát szürcsöltem a megfázásomra......

Játszadozzunk velük:
1. Listázzuk ki Vezér Gábor beosztottjait:
Get-ADUser -Filter { manager -eq "vezer" } | select name
A kimenetként ezt kapjuk:

2.A lekérdezés az jó lett, de nem igazán szép. Szeretnénk ha a nevek ABC sorrendben jelenjenek meg, akkor:
Get-ADUser -Filter {manager -eq "vezer"} | select name | Sort-Object name
Azért így már csak szebb, mert a kimenetet nem írattam ki azonnal a képernyőre, hanem még továbbküldtem feldolgozásra, hogy 'name' mező szerint rendezze.

3. Listázzuk ki az "S" betűvel kezdődő felhasználókat, akiknek a Vezér Gábor a főnökük, és csak a nevükre vagyunk kíváncsiak. A többi információ most nem kell. Get-ADUser -Filter {( name -like "s*") -and (manager -eq "vezer")} | select name |  Sort-Object name.


Itt már csak kettő felhasználónk maradt, akik ezeket a feltételeket teljesítették.
Ez az első olyan lekérdezés, ami már összetettnek mondható, mert itt már két feltétel volt megadva.

4. Az elöző lekérdezésünk eredményét szeretnénk exportálni, természetesen azt is megtehetjük, akkor:
Get-ADUser -Filter {( name -like "s*") -and (manager -eq "vezer")} | select name |  Sort-Object name | ConvertTo-Csv | Out-File c:\temp\vezerg_beosztott.csv
Az eredmény most nem írodott ki a képernyőre, hanem megtalálható a Temp könyvtárunkban.

Mielőtt tovább mennék lekérdezést részletezném.
A., Get-ADUser -Filter  { ide írom be a szűrőfeltételt }
B., ( szűrőfeltétel 1 ) -és ( szűrőfeltétel 2 ) Látható, hogy ezeket sima zárójelekbe tettem.
C. Természetesen név szerint rendezve
DÉs a legvégén konvertáljuk, és elmentjük a megfelelő helyre.
Ha fordított ABC sorrendet szeretnénk listázni, akkor a Sort-Object name után a -Desc kapcsolóval lehet megtenni.

Ennél bonyolultabb lekérdezés ritkán kellenek a napi életben. Kifizetödőbb ha az ember szrikpt írásába fog. De azt később.

Pár példa, amit folyamatosan bővíteni fogok.:
Csoport tagokról infók:
Kérdezzük le a kamilla nevű csoport tagjait:
Get-ADGroupMember kamilla | select name | Sort-Object name 
Kérdezzük le a tagokat, de a manager neve is szerepeljen a képernyőn:
Get-ADGroupMember kamilla | Get-ADUser -Properties manager | select name, manager
Vagy másféleképpen:
Get-ADGroupMember kamilla | Get-ADUser -Properties * | Format-Table name, manager -AutoSize
Az eredményünk ugyanaz lett, de egy picit rendezettebb formában.
Listázzuk ki a kamilla csoport tagjait és milyen irodában (Office mező)vannak nyílvántartva az AD szerint:
Get-ADGroupMember kamilla | Get-ADUser  -Properties office  | select name, office

Most azt is megtehetnénk, hogy egyenként végigkattintgatunk, és leellenőrizzük, de egyszerű parancs beadásával sok időt takaríthatunk meg. Ha valaki véletlenül nem jó helyen van nyílvántartva azt nagyon egyszerűen meg is tudjuk változtatni. A következő rész erről (is)fog szólni.


Számítógépekről infók:

Keressünk számítógépeket, akik január 1. óta nem jeletkezett be:
Get-ADComputer -Filter {Lastlogondate -le "2012.01.01"} | select name
Szépen ki fogja listázni őket.

Annyit fűznék hozzá, hogy a szerverek az angol, de a területi beállítások az magyar, amin a lekérdezéseket tettem. Ezért a dátumformátum egyes gépeknél eltérő lehet!
Kellenének a gépek IP cimei tájékoztató jelleggel!:
Get-ADComputer -Filter * -Properties IPv4Address | select name,IPv4Address
Windows XP-s gépekről egy lista:
Get-ADComputer -Filter {OperatingSystem -eq "Windows XP Professional"} -Properties * | select name,OperatingSystem
Ugyaez, de SP infó is kellene: (Mennyire vagyunk elmaradva :) )
Get-ADComputer -Filter {OperatingSystem -eq "Windows XP Professional"} -Properties * | select name,OperatingSystem,OperatingSystemServicePackget

Felhasználókról infók:

Letíltott felhasználókról lista:
Get-ADUser -Filter {enabled -eq "False"} | select name
Akiknek soha nem jár le a jelszavuk:
Get-ADUser -Filter {PasswordNeverExpires -eq "True"} | select name
Lejárt jelszóval rendelkező fiók:
Get-ADUser -Filter {AccountExpirationDate -le "2012.04.20"} | select name
A dátumhoz természetesen az aktuális időpontot kell beírni!
Van olyan emberke, akinek nincs email-címe?:
Get-ADUser -Filter {EmailAddress -notlike "*"} | select name

Csoport infók:
Az összes csoport listája:
Get-ADGroup -filter * | select name
Az összes "B" betűvel kezdödő csoport listája:
Get-ADGroup -Filter { name -like "b*"} | select name


Nagyon sok lekérdezést másképpen is le lehetett volna kérdezni, ez már csak szokás kérdése, hogy melyiket használjuk. A következő részben mutatok is rá példát.

Források tudjátok amiből tanulgato:
- Elsők között megemlítem Soós Tibor könyvét! Köszönet neki!
Egyszerűen baromi jó, érthető  könyv, és egy kezdő emberke számára, aki most ízlelgeti a PowerShell-t, annak kiváló indulási alap.
- Powershell saját help-je.
- Microsoft technet.
- És természetesen az internet.
A következő részben  a keresés lesz az egyik téma, és már állítgatni fogjuk a felhasználókat, de most "tömegesen", mert ugyebár egyenkénti kattintgatásra ott a GUI.

Nincsenek megjegyzések:

Megjegyzés küldése