Attila's profileTuróczy Attila (MCP, MCT...PhotosBlogLists Tools Help

Blog


    December 18

    Letölthető a Visual Studio 2008 / NET 3.5 training kit

    Ez training kit prezentációkat, demókat és Hands-on Laborokat tartalmza. Segítségével elsajátíthatjuk a Visual Studio 2008 és .NET 3.5 új lehetőségeit.
    Többek között a következő technológiákat mutatja be:

    • LINQ
    • C# 3.0
    • VB 9.0
    • WPF
    • WCF
    • WF
    • CardSpace
    • SilverLight
    • Mobil Development
    • stb

    Én mindenkinek ajánlom figyelmébe a Hands-on Labokat, nagyon sokat lehet belőlük tanulni.

    A csomagot bárki szabadon letölthetti a a közel 130 Megás fájlt a Microsoft oldaláról.
    http://www.microsoft.com/downloads/details.aspx?FamilyID=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&displaylang=en

    December 11

    Hány MCP van világszerte?

    Tegnapi blogomban írtam, hogy MCP-ből ill MCTS-ből nincs is olyan sok világszerte. És többen irtak mailt, hogy mégis pontosan mekkora ez a szám. Nos az ő számúkra itt a válasz:

    Microsoft credential

    Certification

    Worldwide achievers

    Microsoft Certified Technology Specialist (MCTS)

    .NET Framework 2.0: Distributed Applications

    .NET Framework 2.0: Web Applications

    .NET Framework 2.0: Windows Applications

    SQL Server 2005: Business Intelligence Development

    SQL Server 2005

    BizTalk Server 2006: Custom Applications

    Business Desktop Deployment Solution Accelerator 2.0

    Business Desktop Deployment with the BDD

    Microsoft Exchange Server 2007: Configuration

    Microsoft Office Live Communications Server 2005

    Microsoft Office SharePoint Server 2007: Application Development

    Microsoft Office SharePoint Server 2007: Configuration

    Microsoft Team Foundation Server: Configuration and Development

    Windows Mobile 5.0: Application Development

    Windows Mobile 5.0: Configuration

    Windows SharePoint Services 3.0: Application Development

    Windows SharePoint Services 3.0: Configuration

    Windows Vista: Configuration

    3,551

    10,294

    5,988

    370

    20,289

    1,434

    1,950

    1,317

    1,679

    662

    575

    2,306

    226

    114

    178

    426

    1,478

    6,753

    Microsoft Certified Architect (MCA)

    Database

    Infrastructure

    Messaging

    Solutions

    10

    34

    61

    52

    Microsoft Certified Application Developer (MCAD)

     

    75,325

    Microsoft Certified Solution Developer (MCSD)

    Microsoft .NET

    Visual Studio 6.0

    31,657

    46,163

    Microsoft Certified Professional Developer (MCPD)

    Enterprise Application Developer

    Web Developer

    Windows Developer

    2,639

    2,147

    798

    Microsoft Certified Database Administrator (MCDBA)

    SQL Server 2000

    148,244

    Microsoft Certified Desktop Support Technician (MCDST)

    Windows XP

    36,370

    Microsoft Certified IT Professional (MCITP)

    Business Intelligence Developer

    Consumer Support Technician

    Database Administrator

    Database Developer

    Enterprise Support Technician

    Enterprise Messaging Administrator

    182

    201

    3,232

    1,316

    1,654

    540

    Microsoft Certified Systems Engineer (MCSE)

    Windows Server 2003

    Windows 2000

    Windows NT 4.0

    92,990

    288,563

    395,752

    Microsoft Certified Systems Engineer (MCSE): Messaging

    Windows Server 2003

    Windows 2000

    8,397

    8,780

    Microsoft Certified Systems Engineer (MCSE): Security

    Windows Server 2003

    Windows 2000

    12,518

    7,990

    Microsoft Certified Systems Administrator (MCSA)

    Windows Server 2003

    Windows 2000

    143,584

    145,958

    Microsoft Certified Systems Administrator (MCSA): Messaging

    Windows Server 2003

    Windows 2000

    51,054

    29,879

    Microsoft Certified Systems Administrator (MCSA): Security

    Windows Server 2003

    Windows 2000

    14,907

    4,836

    Microsoft Certified Learning Consultant (MCLC)

     

    51

    Microsoft Certified Trainer (MCT)

     

    12,409

    Microsoft Certified Professional (MCP)

     

    2,176,764

    Érdekesség, hogy inkább az IT vizsgák a népszerüek. Az NT 4.0 -ás vizsgát majdnem 400.000 tették le. A Developer vizsgák nem ilyen népszerűek. De mint látszik mindenkép érdemes le MCPzni, már csak a Welcome kit miatt is :-)

    December 10

    Miért is érdemes MCP-zni?

    Sokan sokfélét mondanak az MCP-ről. Sokan úgy tartják nem érdemes MCP-zni, hisz többre megyünk, ha folyton a padot koptatjuk, és csak azt tanuljuk amit a suliban leadnak. Így fogunk diplomát kapni.
    De bizony eljön az az idő amikor végzünk, és megpróbálunk elhelyezkedni az IT szakmába. És próbáljuk szépíteni az önéletrajzunkat, hogy ezt is tanultam meg azt is, de úgy igazán papírom nincs róla, hogy az adott témakörbe elmerültem volna. Márpedig manapság a "papír" fontos. És bizony az fog előnnyel indulni egy-egy jobban fizető állásért akinek meg vannak a képesítései egy-egy témából.
    De mégis mennyivel nagyobb az előnyünk? Nos, ma mikor hazajöttem a következő üzenet várt a postaládámba:

    Kedves Attila!
    Kérem ne vegye tolakodásnak megkeresésemet, de így ismeretlenül a segítségét szeretném kérni.
    Cégünk munkaerő közvetítéssel foglalkozik. Jelenleg .NET-es fejlesztőket keresünk, és Önre a blogjában találtam rá, mint aki e szakterületen szerzett minősítéseket (MCTS). Természetesen Önnek is szívesen ajánlom a .NET-es programozói pozícióinkat, bár a munkavégzés helye Budapest. Első körben azonban arra gondoltam, megkérdezem akadhat-e ismerőse, aki ezen a területen dolgozik, illetve hogy létezhet-e olyan névjegyzék, amiben az e minősítést szerzettek szerepelnek. Nem könnyű ilyen tudással, képesítéssel programozókat találni, így gondoltam egy életem, egy halálom, írok Önnek clip_image001

    Szép napot kívánva, üdvözlettel:
    S. Veronika
    (Cég neve)

    Az emberre az alig néhány száz ember által olvasott blogjában is rátalálnak. :-)
    Két hete lettem MCTS, és anélkül, hogy kerestem volna állást rám találtak, csak azért mert meg van egy adott cég által hitelesített minősítésem.

    Megéri MCP-zni?
    Szerintem mindenkép!

    UI: Aki még nem MCPzet le az hajtson rá, mert ez így tényleg megéri. MCTS WinAPP ből a világon összesen 5988 személynek van minősítése (novemberi adat). Érdekesség a Windows Serverből ez a szám 250.000 feletti.

    December 07

    PowerShell alapok - Rendszergazdáknak

    A PowerShell egy teljesen új generációs parancssoros felügyeleti eszköz. Ahhoz, hogy megértsük és átlássuk a működését ismerkedjünk meg a Powershell kialakulásának okaival, és mibenlétével.

    Miért is volt szükség a PowerShellre?

    Azok a felhasználók (Magukat „Igazi Programozóknak” nevezik) akik igazán egy Unix-terminál előtt ülve érzik magukat elemükben, a Windows rendszereken kényelmetlenül mozogtak. Nem igazán volt számukra igazi alternatíva.

    Mi is volt?

    o Command Prompt – kicsit régi, kicsit nehézkes, kicsit korlátolt (De a miénk :-) )

    o Windows Scripting Hosting (WSH) - egész jó, hisz a COM objektumok egész sok és sokféle problémára nyújtanak megfelelő megoldást. De a WSH is korlátolt az interaktivitás területén.

    Mi lehet a megoldás?

    Adott a Microsoft .NET framework, amely rengeteg problémára nyújt megoldást, de a keretrendszer által készített programokat le kell fordítani, hiszen csak programozók használják. De a fejlesztők úgy gondolták, hogy ki kellene aknázni a keretrendszer által nyújtott lehetőségeket a rendszergazdáknak is.

    Tehát összefoglalva szükség volt egy robosztus, minden körülmények között helytálló Shellre. Egy olyan shellre amely:

    · Olyan interaktív, mint a bash

    · Olyan jól és rugalmasan programozható, mint a Perl

    · És beágyazható, mint a TCL

    Így született meg tehát a PowerShell (CodeName: Monad). Tehát a Powershell egy vadonatúj scriptrendszer mely .NET objektumokkal zsonglőrködik. Ennek jelentőségét a Pipe (csövezésnél) értjük meg igazán. A PowerShellben használt parancsokat cmdleteknek nevezzük.

    Nézzük meg közelebbről mire is képes ez az új generációs parancssoros felügyeleti eszköz.

    Mivel az előadás célja nem egy teljes PowerShell ismertetése és bemutatása, ezért elsősorban az öntanulás beindítása a cél.

    Help

    Tehát kezdjük a help paranccsal.

    clip_image006

    Mint látjuk a rendszer teljesen önleíró. Láthatjuk a parancsokat, aliasaokat (ezekről később szót ejtünk). Válasszunk ki egy parancsot a listából. Mondjuk nézzünk meg közelebbről a Get-ChildItem –et. Írjuk be a következőt: help Get-ChildItem

    clip_image008

    Ekkor megkapunk minden információt az adott parancsról. De ha ez számunkra még mindig nem lenne elég, adjuk ki a következő parancsot: help Get-ChildItem –example

    clip_image010

    Ekkor példa scripeteket kapunk bőséges leírással, ami azért a kezdeti lépéseket rendkívül megkönnyíti.

    Alias

    A következő parancs legyen az alias. Bármilyen meglepő, ezzel a paranccsal ki lehet listázni az úgynevezett aliasokat.
    clip_image012

    Amint látjuk, hogy a régi DOS-os parancsoknak megtalálhatóak a PowerShellbeli megfelelői. PÉLDÁUL: a DIR parancs nem más, mint a Get-ChildItem. De meglehet találni néhány Linuxos parancsot is Például az ls –t. Tehát azok, akik csak régi DOS-os vagy linuxos ismeretekkel rendelkeznek nekiállhatnak a PowerShell használatához és tanulásához.

    Csővezetés

    Akik találkoztak már linuxal számukra nem ismeretlen a csővezetés fogalma. A futtatott parancsokat egymáshoz lehet csatolni a pipe ’ | ’ karakter segítségével. Ami annyit tesz, hogy a parancs eredményét nem az outputra borítja, hanem a következő lépésnek adja oda a végrehajtási sorban. A korábbi parancskörnyezetek az egyes parancsok között csak stringet tudtak közvetíteni. Ennek van egy komoly hátránya, gondoljunk csak bele, mi van akkor, ha kivonatoljuk mondjuk egy DIR parancsból a dátumokat vagy például a Read Only flageket? Ez a script, hogyan futna egy arab, vagy egy kínai windowson? Elég lehetetlen feladatnak tűnik. De mégis, hogy működik ez a PowerShellben? Nos, mivel a powershell .Net objektumokat, használ ezért mindaddig objektumokkal dolgozik, amíg valamit ki nem kell borítani a képernyőre, de tovább is dobhatjuk egy pipe segítségével anélkül, hogy információt vesztenénk. Képernyőre íráskor természetesen stringeket ír ki.

    clip_image014

    Ki írjuk a futó processzek listájából az első 6 elemet.

    Változók használata

    A PowerShellben természetesen lehet használni változókat is.
    Jelölésük: $valtozonev
    Mint ahogy megszokhattuk a változóknak tudunk értéket adni, valamint akár egy teljes parancs eredményét eltárolhatjuk a változóban.

    Például.: $x = get-childitem

    clip_image016

    Ekkor az x változóban el lesz tárolva a Get-ChildItem eredménye. Ahhoz, hogy a változóból kinyerjük az értéket egyszerűen írjuk be a parancssorba a változó nevét: $x, és a képernyőn megjelenik a benne tárolt érték.

    clip_image018

    Természetesen a változóknál is lehet a csővezetést alkalmazni.

    PÉLDÁUL: $x | select-object –first 3

    clip_image020

    Ez a parancs csak az első 10 elemet írja ki a képernyőre. (A select-object paranccsal később részletesebben foglalkozunk).

    Get-Member

    A Get-Member parancs nagyon fontos, talán a help után a legfontosabb azoknak, akik komolyan bele akarnak kezdeni a powershell scriptelésébe és használatába. Segítségével megtudhatjuk hogy egy-egy parancs milyen .Nett objektumokat használ, és hogy milyen propertyei és metódusai vannak.

    Hogy ez miért is olyan fontos? Ezt egy példán keresztül mutatom be.

    PÉLDÁUL: Get-ChildItem

    clip_image022

    Látjuk, hogy a Get-ChildItem cmdlet csak néhány információt oszt meg velünk, Például a fileneveket, vagy épp a fájlok hosszát.

    PÉLDÁUL: Get-ChildItem | Get-Member

    clip_image024

    A Get-ChildItem, ugyan mutat néhány elemet, ugyanakkor a powershell segítségével ennél lényegesen többet is megtudhatunk. Láthatjuk, hogy az adott cmdlet melyik névteret használja, vagy épp mely metódusokat és propertyket. A rendszer tehát olyan, mintha informatikusok írták volna informatikusoknak.

    Get-PsDriver

    Ez a parancs megmutatja a PowerShell driveokat.

    clip_image026

    Mint látható nem csak meghajtókon tudunk járkálni, hanem a registryben, vagy épp a tanúsítványtárban, de akár a környezeti változókat is piszkálhatjuk. A registryben való kutatáshoz egyszerűen írjuk be, hogy cd HKCU: és már be is léptünk a Current userbe. A registrybe való járkálás nem jelenthet senkinek különösebb problémát, az értékek megváltoztatása viszont már macerásabb, ugyanis a kulcsokat külön kell kezelni az értéktől, valamint a kulcsokhoz tartozó default értékek miatt is bonyolultabb. (Ha igény lesz rá, egy tanfolyam keretében bemutatásra kerül, hosszabb lélegzetvételű folyamat)

    PowerShell üzemmódok

    A powershellnek 2 üzemmódja van, az egyik a kiértékelő, a másik a parancs üzemmód.

    Parancs üzemmód:

    Ha parancsot írok, ami betűvel kezdődik és megtalálja a parancskészletében, Például a DIR parancs akkor az adott parancs értelemszerűen végrehajtódik.

    Kiértékelő üzemmód:

    Ha viszont olyat adok meg, amit nem fedez föl a parancskészletében, de kitudja értékelni akkor a kiértékelő üzemmódba vált át.

    PÉLDÁUL: írjuk be, hogy 1,2,3,4,5

    clip_image028

    Ez a PowerShell számára egy halmaz definícó volt, amit úgy értékelt ki, hogy kiírta őket a képernyőre. Mint láttuk a PowerShell nem írta ki, hogy „bad command or filename” köszönhető ez a kiértékelő üzemmódnak.

    Na de mi van akkor, ha azt írom a parancssorba, hogy 1mb?

    clip_image030

    A válasz: 1048576 byte.

    Ebből is látszik mennyire informatikus közeli ez az új parancssor.

    Szűrések

    Oszlopok szerinti szűrés (select-object)

    Ezen parancs segítségével szűrhetjük azt, hogy milyen oszlopok jelenjenek meg az adott parancs eredményeként.

    PÉLDÁUL: get-childItem | select-object –property name, length

    clip_image032

    A select-object segítségével most csak a name és a length oszlop fog megjelenni.

    Érdekesség, hogy a select-object –first – last kapcsolókkal adhatjuk meg, hogy hány elem jelenjen meg az eredményben. (Értelemszerűen az első 10 –first 10 utolsó 10 –last 10 kapcsolót használjuk)

    Például.: get-eventlog -logname application | select-object -first 10

    clip_image034

    Megkapjuk az első 10 bejegyzést az alkalmazások eventlogjából.

    Ez hasznos is lehet, hisz több ezer bejegyzés is előfordulhat az eventlogba, és ha azt mind a képernyőre dobnánk, eltartana egy darabig amíg a rendszer ezt elvégezné.

    Sorok szerinti szűkítés (where-object)

    A where–object parancs segítségével bizonyos feltételnek megfelelően szűkíthetjük a sorokat.
    PÉLDÁUL: írjuk, be hogy get-process

    clip_image036

    Ekkor megkapjuk a legfontosabb információkat az összes processzről.

    Na de mi most azt szeretnénk, hogy csak azokat a processzeket írja ki amelyeknek a workingset –je nagyobb mint 25MB.

    Get-Process | where-object {$_.workingset –gt 25mb}

    clip_image038

    $_ az aktuálisan használt sort jelzi, míg a –gt a graterthent (nagyobb, mint) jelöli. A PowerShell ugyanis kényes a <> operátorok használatára.

    Számoljunk (Measure-object)

    Ez a parancs egy nagyon ötletes, ugyanis a hozzá beérkező objektumok bizonyos propertyjei alapján tud készíteni összegzést, átlagot, countot stb.

    Például.: get-childItem | measure-object –property length sum

    clip_image040

    De akár text fájlokon is alkalmazhatjuk a measure-object –et, ugyanis léteznek speciális kapcsolói erre az esetre.

    Például:

    -line: sorokat számolja meg

    -word: a szavakat számolja meg

    -character: a karaktereket számolja meg egy szövegben.

    És akkor jöjjön egy kis scriptelés a végére:

    E-mail küldés powershell segítségével.

    Először vizsgáljuk meg közelebbről magát a scriptet. (A PowerShell scriptek kiterjesztése *.ps1)

    $mail = new–object System.net.mail.mailmessage(„kitol@server.hu”,”kinek@server.hu”,”Tárgy”,”Üzenetem”)

    $server = new-object System.Net.Mail.SmtpClient(192.168.2.1);

    $server.send($mail);

    Mint látjuk, a new-object segítségével egy .NET objektumot példányosítunk, és használjuk a megfelelő paraméterek segítségével. Az adott paramétereket az object-browserből kinézhetjük. A Visual Studioban a View->Object Browser menüpont alatt (Ctrl + W + J) érhetjük el. Mint ahogy a mellékelt ábrán is látható, ha a megfelelő paramétereket használjuk, megalkothatjuk a levelet. clip_image042

    $mail = new–object System.net.mail.mailmessage(„kitol@server.hu”,”kinek@server.hu”,”Tárgy”,”Üzenetem”)

    Ebben a sorban a $mail változóba eltároljuk az egészet objektumot, amely vár arra, hogy őt elküldjék.

    De neki nincs send metódusa amivel elküldhetjük a levelünket.

    $server = new-object System.Net.Mail.SmtpClient(192.168.2.1);

    $server.send($mail);

    A System.Net.Mail névtérnek viszont van egy SmtpClientje aminek van send metódusa. És ez a send metódus ép egy mailmessage objektumot vár paraméternek.(Ezt is kikereshetjük az Object Browser segítségével) Az SmtpClient példányosításánál pedig a Host címe kell. És ha ezekkel megvagyunk már küldhetjük és a levelünket.

    Remélem sikerült a powershell iránt felkelteni az érdeklődést, és beindítani az öntanulás folyamatát. Én mindenkinek csak ajánlani tudom e rendszer részletes megismerését, hisz ez a jövő, és ha az ember mind rendszergazda vagy egyszerűen tudatos felhasználó örömét fogja lelni e rendkívül használható új rendszerben.