A Geek Iskola megtanulja, hogyan kell automatizálni a Windows-ot PowerShell segítségével
A Geek Iskola ebben a kiadásában segítünk Önnek megérteni, hogy milyen erős PowerShell szkriptnyelvet épített be a Windows rendszerbe, és rendkívül hasznos az informatikai környezetben..
Bár ez a sorozat nem egy vizsga köré szerveződik, a tanulás a PowerShell az egyik legfontosabb dolog, amit hálózati rendszergazdaként tehetünk, így ha van egy dolog, amit megtanulhat, hogy segítse az informatikai karrierjét, ez az. Plusz, ez nagyon szórakoztató.
Bevezetés
A PowerShell a Microsoft által kínált leghatékonyabb automatizálási eszköz, valamint mind a shell, mind a szkriptnyelv.
Kérjük, vegye figyelembe, hogy ez a sorozat a PowerShell 3-on alapul, amely Windows 8 és Server 2012 rendszerrel szállítja. Ha Windows 7 rendszert futtat, töltse le a PowerShell 3 frissítést, mielőtt folytatná.
Ismerje meg a konzolt és az ISE-t
Két lehetőség van a PowerShell-rel való kölcsönhatásra a dobozból, a konzolról és az integrált parancsfájl-környezetről, más néven ISE-ként. Az ISE jelentősen javult a PowerShell 2-vel szállított rettenetes változattól, és megnyitható a Win + R billentyűzetkombináció megnyomásával, hogy megjelenjen egy futó doboz, majd gépelje be a powerhell_ise parancsot és nyomja meg az enter billentyűt.
Amint láthatja az ISE-t, az osztott nézet úgy néz ki, hogy gyorsan szkripteket készíthet, miközben továbbra is láthatja az eredményt az ISE alsó felében. Az ISE alsó felét, ahol a szkript eredményei kinyomtatódnak, REPL parancsként is használhatjuk - hasonlóan a parancssorhoz. A v3 ISE végül is támogatta az intellisense-t mind a szkriptablakban, mind az interaktív konzolban.
Alternatív megoldásként a PowerShell segítségével is együttműködhet a PowerShell konzol segítségével, ami a legtöbb ilyen sorozathoz használható. A PowerShell konzol úgy viselkedik, mint a parancssor - egyszerűen beírja a parancsokat, és kinyomja az eredményeket. A Windows PowerShell konzol megnyitásához nyomja meg ismét a Win + R billentyűkombinációt, hogy megnyissa a futási mezőt, és írja be a powershell parancsot, majd nyomja meg az enter billentyűt.
A REPL utasítások ilyenek lehetnek azonnali kielégítésre: parancsot ad meg, és eredményeket kap. Míg a konzol nem kínál intellisense-t, a laponkénti befejezésnek is nevezhető, ami ugyanolyan funkciót jelent - egyszerűen kezdjen be egy parancsot, és nyomja meg a tabulátort a lehetséges találatok között.
A súgórendszer használata
A PowerShell korábbi verzióiban a Windows telepítésekor a súgófájlok is szerepeltek. Ez jó megoldás volt, de jelentős problémát hagyott nekünk. Amikor a PowerShell súgócsapának le kellett állnia a segédfájlok használatával, a PowerShell fejlesztők még mindig elfoglaltak voltak és változtattak. Ez azt jelentette, hogy a PowerShell szállítása során a súgófájlok helytelenek voltak, mert nem tartalmazzák a kódon végrehajtott újabb változtatásokat. A probléma megoldásához a PowerShell 3 nem segíti a dobozt, és tartalmaz egy frissíthető súgórendszert. Ez azt jelenti, hogy mielőtt bármit csinál, letöltheti a legújabb súgófájlokat. Ezt úgy teheti meg, hogy megnyit egy PowerShell konzolt és fut:
Update Súgó
Gratulálunk az első PowerShell parancs futásához! Az igazság az, hogy az Update-Help parancsnak sokkal több lehetősége van, mint egyszerűen csak futtatni, és látni szeretnénk, hogy megnézzük a parancs segítségét. A parancshoz tartozó súgó megtekintéséhez egyszerűen át kell adni a segítséget kérő parancs nevét a Get-Help parancs Név paraméteréhez, például:
Get-Help -Name Update-Help
Valószínűleg azon tűnődsz, hogy hogyan értelmezd ezt a szöveget egyébként, úgy értem, miért van két sok információ a szintaxis rész alatt, és miért van annyi zárójel a helyszínen? Először is először: az oka annak, hogy a szintaxis szakaszban két információblokk van, mert különböző módon jelenítik meg a parancsot. Ezeket technikailag paraméterkészleteknek nevezzük, és csak egyszer használhatunk (nem lehet különböző paraméterekből keverni). A fenti képernyőn látható, hogy a felső paraméterkészletnek van SourcePath paramétere, míg az alsó nem. Ennek az az oka, hogy a felső paraméterkészletet (a SourcePath-et tartalmazó) használná, ha frissítené a súgófájljait egy másik, már letöltött hálózaton lévő gépről, miközben nem kell megadnia a forrásútvonalat, ha csak a Microsoft legújabb fájljait akarta megragadni.
A második kérdés megválaszolásához van egy bizonyos szintaxis, amely segít a fájlok követésében, és itt van:
- A szögletes zárójelek a paraméter neve és típusa köré azt jelenti, hogy ez egy opcionális paraméter, és a parancs csak anélkül fog működni.
- A paraméternév körüli négyszögletes zárójelek azt jelzik, hogy a paraméterek pozícióparaméterek.
- A szögletes zárójelben lévő paramétertől jobbra a dolog az adattípust mutatja, amit a paraméter vár.
Miközben megtanulnia kell a súgófájl szintaxisának elolvasását, ha valaha bizonytalan egy adott paraméterről, csak add hozzá a teljes súgó parancs végéhez, és görgessen le a paraméterrészhez, ahol egy kicsit többet fog elmondani mindegyikről paraméter.
Get-Help -Name Update-Help -Teljes
Az utolsó dolog, amit tudnod kell a súgórendszerről, az, hogy hogyan használhatod fel a parancsokat, ami valójában nagyon egyszerű. Látod, a PowerShell szinte bárhol fogadja a helyettesítő karaktereket, így a Get-Help paranccsal együtt használhatja őket a parancsok könnyű felfedezéséhez. Például a Windows szolgáltatásokkal foglalkozó parancsokat keresek:
Get-Help -Name * szolgáltatás *
Persze, ez az információ nem feltétlenül hasznos a denevéren, de bízz bennem, vegye el az időt, és megtanulja, hogyan kell használni a súgórendszert. Mindig hasznos, még a fejlett scripterek számára is, akik ezt évek óta csinálják.
Biztonság
Ez nem lenne megfelelő bevezetés a biztonság említése nélkül. A PowerShell csapat legnagyobb aggodalma az, hogy a PowerShell lesz a legújabb és legnagyobb támadási pont a script kiddies számára. Néhány biztonsági intézkedést tettek annak biztosítására, hogy ez ne történjen meg, ezért nézzük meg őket.
A védelem legalapvetőbb formája abból a tényből ered, hogy a PS1 fájlkiterjesztés (a PowerShell parancsfájl jelzésére használt kiterjesztés) nincs regisztrálva egy PowerShell állomáson, melyet ténylegesen regisztrált a Jegyzettömbben. Ez azt jelenti, hogy ha duplán kattint egy fájlra, akkor a futás helyett megnyílik a jegyzettömb.
Másodszor, nem futtathatsz parancsfájlokat a shellből, csak beírva a parancsfájl nevét, meg kell adnod a parancsfájl teljes elérési útját. Tehát, ha egy parancsfájlt futtatni szeretne a C meghajtón, akkor írnia kell:
C: \ runme.ps1
Vagy ha már a C-meghajtó gyökerében van, akkor a következőt használhatja:
.\ runme.ps1
Végül, a PowerShellnek van valami az úgynevezett Végrehajtási irányelvek, amely megakadályozza, hogy csak egy régi parancsfájlt futtasson. Valójában alapértelmezés szerint nem futtathat semmilyen szkriptet, és módosítania kell a végrehajtási irányelveit, ha engedélyezni kívánja őket futtatni. 4 figyelemre méltó végrehajtási irányelv van:
- Korlátozott: Ez a PowerShell alapértelmezett konfigurációja. Ez a beállítás azt jelenti, hogy az aláírásától függetlenül semmilyen parancsfájl nem futtatható. Ezzel a beállítással egyetlen PowerShell-ben futtatható dolog egyéni parancs.
- AllSigned: Ez a beállítás lehetővé teszi, hogy a parancsfájlok PowerShellben fussanak. A parancsfájlnak megbízható digitális aláírást kell tartalmaznia egy megbízható kiadótól. A parancsfájlok megbízható kiadóktól való futtatása előtt megjelenik egy kérés.
- RemoteSigned: Ez a beállítás lehetővé teszi a szkriptek futtatását, de megköveteli, hogy az internetről letöltött szkript- és konfigurációs fájlokhoz egy megbízható kiadóhoz társított digitális aláírása legyen. A helyi számítógépen futó parancsfájlokat nem kell aláírni. A parancsfájl futtatása előtt nincsenek utasítások.
- Korlátlan: Ez lehetővé teszi a nem aláírt parancsfájlok futtatását, beleértve az internetről letöltött összes szkriptet és konfigurációs fájlt. Ez magában foglalja az Outlook és a Messenger fájljait is. A kockázat itt írja alá a szkriptek aláírását vagy biztonságát. Újra megkezdtük, hogy soha nem hozza meg ezt a beállítást.
Ha meg szeretné tekinteni, hogy az aktuális végrehajtási szabályzat hogyan van beállítva, nyissa meg a PowerShell konzolt és írja be a következőt:
Get-ExecutionPolicy
Ebben a kurzusban és a legtöbb egyéb esetben a RemoteSigned Policy a legjobb, így menjen előre és változtassa meg a házirendet az alábbiak szerint.
Megjegyzés: Ezt egy emelt PowerShell konzolról kell elvégezni.
Set-ExecutionPolicy RemoteSigned
Ez az idő az emberek számára, holnap találkozunk néhány PowerShell szórakozással.
Jogi nyilatkozat: A PowerShell parancs megfelelő kifejezés egy cmdlet, és mostantól ezt a helyes terminológiát fogjuk használni. Csak úgy tűnt, megfelelőbbnek hívta őket a bevezetőnek.
Ha bármilyen kérdése van, akkor tweet me @taybgibb, vagy csak hagyjon megjegyzést.