1 / 20

PowerShell és Exchange 2007 rendszerfelügyelet

PowerShell és Exchange 2007 rendszerfelügyelet. Fóti Marcell NetAcademia Oktatóközpont MCT, MCSE, MVP, MZ/X marcellf@netacademia.net. A rendszer felépítésének áttekintése. Objektumorientált, .net-alapú shell, de Kis-nagybetű érzéketlen Variant változók Típushű objektumok, adatok

phong
Download Presentation

PowerShell és Exchange 2007 rendszerfelügyelet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PowerShell és Exchange 2007 rendszerfelügyelet Fóti Marcell NetAcademia Oktatóközpont MCT, MCSE, MVP, MZ/X marcellf@netacademia.net

  2. A rendszer felépítésének áttekintése • Objektumorientált, .net-alapú shell, de • Kis-nagybetű érzéketlen • Variant változók • Típushű objektumok, adatok • Command és Expression mód • Minden adat – collection • Távoli futtatás egyelőre nincs • Parancssor és PS-Analyzer • .PS1 fájlok

  3. A parancsok szintaxisa • Ige-főnév • Get-Process, Get-Childitem, Get-Help • Stop-Service, Set-Location • A paramétereket mindig a shell dolgozza fel • Egységes formátum • Ha saját parancsot írunk, nem kell paraméterfeldolgozással bíbelődni • Wildcard-ready: *, ?, [] • Utasítás-zárójel: {} • Expression Mode: () • Változók: $alma, $_ • Egy sorban több parancs: ; • Konstansok (1kb, 2mb, 3gb) • Pipe: |

  4. A help használata, aliasok,  PSDrive-ok • Get-Help (-e) • Parancsok, Aliasok, Helpek, Providerek • Get-Command (get-command | group noun) • Parancsok, Aliasok, függvények, alkalmazások • Get-Member (get-date | get-member) („asda”.Substring()) • A lekérdezett objektumok összes metódusa és tulajdonsága • Get-PSDrive • Az összes provider, amit be lehet járni DIR-DURR • DIR Alias: • Kétbetűs aliasok (Set-Location, SL; Stop Process, SP) • SQL-jellegű aliasok (SELECT, WHERE) • Kompatibilitási aliasok (DIR, LS, CD)

  5. Navigáció • Set-Location (CD) • Set-Location C: • CD HKLM: • SL Cert: • CHDIR Env: • Get-Childitem (DIR) • LS, DIR, GCI

  6. Munka objektumcsoportokkal (collection) • Minden parancs objektumhalmazokkal dolgozik • 1, 2, 3, 4 • A halmazok tetszőleges és vegyes típusú elemeket tartalmaznak • Get-Childitemnél fájlok+könyvtárak vegyesen • Dir ; 1, 2, 3, 4 • A halmaz egyes elemeit Foreach-Object-tel lehet egyesével kezelni • foreach {$_} • $_ a halmaz aktuális eleme (1..5 | foreach {“blabla$_"}) • dir | foreach {$_.LastAccessTime - $_.LastWriteTime}

  7. Munka objektumkupacokkal • Select-Object • Oszlopok kiválogatása (kivéve –first, -last) • Where-Object • Sorok kiválogatása {$_} • Sort-Object • Sorbarendezés • Összetett műveletek • Az öt legnagyobb olyan fájl, amit 2007-ben módosítottak • Group-Object • Tetszőleges property alapján • Measure-Object • Statisztika

  8. Nyalánkságok • Fájlkezelés • Get-content, set-content • .net objektumok statikus metódusainak meghívása • [névtér]::Metódus() • WMI-objektumok megszólítása • Get-wmiobject • PowerGadgets

  9. Exchange 2007 scriptelése

  10. E2007 -eq “Pofonegyszerű”

  11. Exchange “Task Model” • A cél a rendszergazdai feladatok egyszerűsítése • A „Task Model” a felügyeleti funkciók logikus csoportosítása • A „task” vagy feladat egy elemi műveletet jelent (pl. move a mailbox) • A feladatokat négy csoportba soroljuk: • Recipient management tasks • Organization management tasks • Server management tasks • Diagnostic Tasks • A feladatok tovább vannak bontva szerverszerepek és funkciók szerint • Roles: Edge/Hub Transport, CAS, Mailbox, UM • Features: AntiSpam, Managed Email, Transport, Rules etc.

  12. Mihez van Cmdlet? • Az összesen 375 cmdlet teljesen lefeldi az Exchange 2007 rendszerfelügyeletét • Kivételek: külső termékek által nyújtott szolgáltatások (IIS, ADUC) és néhány őskövület. • Recipient management • Distribution group, DDG, Mailboxes, mail-enabled contacts, users, Mailbox Policies, Email Address Policies • Organization settings • Transport Rules, Journaling, Routing, Filtering, Managed Folders, Address Lists, OAB, Anti-Spam, ActiveSync, UM • Server settings • Storage group, mailbox and public folder databases, LCR / HA, Virtual directories, SMTP connectors, POP, IMAP • Diagnostics • Queue management, test server health, connectivity, BPA

  13. Súgórendszer • A help parancs segít a cmdletek és kategóriák felderítésében Get-help *User* Get-help -role *UM*Get-help –component *recipient* • További részletek... Get-mailbox -? | more Help remove-storagegroup • Lássuk, mit is adnak vissza az egyes parancsok? Get-Mailbox TestUser | format-list Get-Mailbox TestUser | fl *quota* • A get-member a rendszergazda második (vagy a harmadik?) legjobb barátja Get-storagegroupTestSG | get-member

  14. „Tárgyak” azonosítása • Az összes objektum egyedi azonosítóval (Identity) rendelkezik (név, GUID vagy DN) • Két objektumcsoport van: • Singleton: egypéldányos jószágok • Multiple instance: jószág-csokrok, ahol az azonosító tesz különbséget • Az “Identity” az objektum létrehozásakor kap értéket new-StorageGroup -name SG1 -server SERVER1 • Innentől az Identityjével „találjuk fejbe” set-StorageGroup SG1 -param1 arg1 • Az Identityk láncából „útvonal” képezhető • URL: “ftp://server/container/resource.exe” • Identity: “container\resource1\resource2…” get-MailboxDatabase “Mailbox Store”get-Mailbox redmond\evandremove-AddressList AddressList1\AddressList2 • Így aztán nem kell állandóan a tartománynévre és egyéb irreleváns adatokra hivatkozni! • Ha valakinek az „kényelmes”, az Identitytmegadhatja GUID vagy DN formátumban is

  15. Keresés • Egy parancs általában visszaadja az összes objektumot, ezt a listát szűrhetjük (kliens): Get-TransportServer | where { $_.MessageTrackingEnabled –eq $false } • Dzsóker rulez Get-Mailbox *joe*Get-ExchangeServer *North* Get-SendConnector *.hp.com • Egyes parancsok szerveroldali szűréssel is rendelkeznek Get-Mailbox -filter { DisplayName -like ‘*Test*’ }

  16. Pipelining (csövezés) • Egyszerre egy sereg objektum feldolgozása get-StorageGroup | set-StorageGroup -param1 arg1 -param2 arg2 • Ugyanazon főnéven belül a csövezés mindig működik (cmd1 | cmd2) Get-Mailbox redmond\evand | remove-mailbox • ... és néha a szavakon túl is... Get-Mailbox redmond\evand | Test-MapiConnectivity • Ha nem megy a csövezés, használj “ForEach” parancsot! Get-ExchangeServer | foreach { get-Storagegroup –server $_.Name }

  17. Balesetmegelőzés • Viselj világítós mellényt! • Használd a whatif, confirm, verbose kapcsolókat! • Az összes cmdlets (a get-* kivételével)tudja a –whatif-et • A „gyilkos” parancsok mindig kérdeznek! • Hibás/félresikerült objektumok kezelése: • Ha „hibás”, üzenetet kapunk • …ezt akár kódból mi magunk is ellenőrizhetjük $object = Get-ELCMailboxPolicy ELCp1 if ( $object.IsValid –eq $false ) { $whatsWrong = $object.Validate() $whatsWrong | select-object InvalidData,Description,PropertyDefinition } • A set-* cmdletekkel gyógyítunk $fixedObject | Set-ManagedFolder

  18. Néhány „egyszerű” példa • Hát lássuk, értelmezzük! • Get-Mailbox -server E12admin | foreach { get-MailboxDatabase $_.Database } | group Name • 1..5 | foreach { new-storagegroup -name (“SG $_”) -server E12admin | new-mailboxdatabase “MB” } • Get-DistributionGroupnewEmployees | get-DistributionGroupMember | enable-mailbox -database newDb1 • Get-MessageTrackingLog -MessageSubject "SomeTextFromTheSubject" | Group ClientIP | Select Name | nslookup $_

  19. Exchange 2007 időgépÉs akkor elkezdett meredeken zuhanni a TCO... param( [string]$server = $(read-host "Target server")) new-storagegroup Congress -server $server | out-null new-mailboxdatabase Senate -storagegroup exadmin-mbx-02\Congress | mount-database new-mailboxdatabase House -storagegroup exadmin-mbx-02\Congress | mount-database write-host "Databases created" # get top user $mbxset = (get-mailboxstatistics -server exadmin-mbx-01| sort TotalItemCount -desc)[0..49] $mbxset | foreach{ get-mailbox $_.LegacyDN } | where {$_.Database -like "House*"} | move-mailbox -targetdatabase $server\house | out-null write-host "Representatives moved" $mbxset | foreach{ get-mailbox $_.LegacyDN } | where {$_.Database -like "Senate*"} | move-mailbox -targetdatabase $server\Senate | out-null write-host "Senators moved"

  20. Resources • Exchange 2007 + PowerShellWeblapok, Wiki-k, és Blogok • http://exchangeninjas.com • http://www.viveksharma.com/techlog/ • http://www.msexchangeteam.com • http://blogs.technet.com/evand/ • PowerShell Team Blog • http://blogs.technet.com/powershell/

More Related