Powershell s exchange 2007 rendszerfel gyelet
Download
1 / 20

PowerShell és Exchange 2007 rendszerfelügyelet - PowerPoint PPT Presentation


  • 58 Views
  • Uploaded on

PowerShell és Exchange 2007 rendszerfelügyelet. Fóti Marcell NetAcademia Oktatóközpont MCT, MCSE, MVP, MZ/X [email protected] 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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' PowerShell és Exchange 2007 rendszerfelügyelet' - channery-wong


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Powershell s exchange 2007 rendszerfel gyelet

PowerShell és Exchange 2007 rendszerfelügyelet

Fóti Marcell

NetAcademia Oktatóközpont

MCT, MCSE, MVP, MZ/X

[email protected]


A rendszer fel p t s nek ttekint se
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


A parancsok szintaxisa
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: |


A help haszn lata aliasok psdrive ok
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)


Navig ci
Navigáció

  • Set-Location (CD)

    • Set-Location C:

    • CD HKLM:

    • SL Cert:

    • CHDIR Env:

  • Get-Childitem (DIR)

    • LS, DIR, GCI


Munka objektumcsoportokkal collection
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}


Munka objektumkupacokkal
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


Nyal nks gok
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



E2007 eq pofonegyszer
E2007 -eq “Pofonegyszerű”


Exchange task model
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.


Mihez van cmdlet
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


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


T rgyak azonos t sa
„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


Keres s
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*’ }


Pipelining cs vez s
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 }


Balesetmegel z s
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


N h ny egyszer p lda
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 $_


Exchange 2007 id g p s akkor elkezdett meredeken zuhanni a tco
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"


Resources
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/


ad