15Jul
A Geek School kiadásában segítünk megérteni a PowerShell szkriptnyelvét, amely a Windows rendszerbe épül, és rendkívül hasznos az informatikai környezetben.
Bár ez a sorozat nem felépített egy vizsga körül, a PowerShell tanulás az egyik legfontosabb dolog, amit tehetünk, mint hálózati rendszergazda, tehát ha van egy dolog, amit megtanulni, hogy segítsen az informatikai karrierjének, ez az. Plusz, nagyon szórakoztató.
Bevezetés
A PowerShell a leghatékonyabb automatizációs eszköz, amelyet a Microsoft kínál, valamint egy shell és egy szkriptnyelv.
Kérjük, vegye figyelembe, hogy ez a sorozat a Windows 8 és Server 2012 szervizcsomaggal ellátott PowerShell 3 rendszeren alapul. Ha Windows 7 operációs rendszert futtat, töltse le a PowerShell 3 frissítést a folytatás előtt.
Ismerje meg a konzolt és az ISE-t
A PowerShell-ből, a konzolból és az integrált parancsfájl-környezetből - ISE-ként is ismert módon kétféle módon lehet együttműködni. Az ISE jelentősen javult a PowerShell 2 szoftverrel szállított szörnyű verziótól, és megnyitható a Win + R billentyűkombináció megnyomásával, hogy megjelenjen egy futódoboz, majd írja be a powershell_ise parancsot és nyomja meg az enter billentyűt.
Ahogy láthatja az ISE-t, osztott nézetet kínál, így gyorsan forgathatja a szkriptet, miközben továbbra is képes látni az eredményt az ISE alsó felében. Az ISE alsó fele, ahol a parancsfájl eredményei kinyomtathatók, REPL parancsként is használhatók - hasonlóan a parancssorhoz. A v3 ISE végül támogatást nyújtott az intellisense számára mind a parancsfájlban, mind az interaktív konzolban.
A PowerShell konzol segítségével a PowerShell konzolt is kölcsönhatásba léphet, ami a legtöbb ilyen sorozathoz használható.A PowerShell konzol a parancssorhoz hasonlóan viselkedik - egyszerűen beírja a parancsokat, és kifeszíti az eredményeket. A Windows PowerShell konzol megnyitásához nyomja meg ismét a Win + R billentyűzetkombinációt egy futtatási mező megnyitásához és írja be a powershell parancsot, majd nyomja meg az enter billentyűt. Az
REPL kéri, hogy ilyenek legyenek az azonnali kielégülésre fantasztikusak: parancsot adsz meg, és eredményeket kapsz. Miközben a konzol nem kínál intellisense-t, akkor valami úgynevezett tabulátor-készítést kínál, amely ugyanúgy működik, mint egyszerűen: egyszerűen indítsa el a parancsot, és nyomja meg a lapot, hogy megkeresse a lehetséges egyezéseket.
Az
súgó használata A PowerShell korábbi verzióiban a Windows telepítésekor a súgófájlok szerepeltek. Ez jó megoldás volt a legtöbb esetben, de jelentős problémát okozott nekünk. Amikor a PowerShell súgócsoportnak le kellett állítania a súgófájlokat, a PowerShell fejlesztők még mindig foglalták a kódolást és változtattak. Ez azt jelentette, hogy amikor a PowerShell szállított, a súgófájlok helytelenek voltak, mert nem tartalmazták a kóddal kapcsolatban újabb módosításokat. A probléma megoldásához a PowerShell 3 nem tartalmaz súgófájlokat a fiókból, és tartalmaz egy frissíthető súgórendszert. Ez azt jelenti, hogy mielőtt bármit megtennél, letölteni szeretnéd a legfrissebb súgófájlokat. Ezt megteheti egy PowerShell konzol megnyitásával és futtatásával:
Update-Help
Gratulálunk az első PowerShell parancs futtatásához! Az igazság az, hogy a Frissítés-Súgónak sokkal több lehetősége van, mint egyszerűen csak futni, és látni fogja őket, hogy meg szeretnénk tekinteni a parancs segítségét. A parancs segítségének megtekintéséhez egyszerűen adja át a Get Help parancs Name paraméterének megfelelő parancsot, például:
Get-Help -Name Update-Help
Valószínűleg kíváncsi, hogyan kell értelmezniMindazonáltal ez a szöveg, úgy értem, miért van két információ a szintaktikai szakasz alatt, és miért van annyi zárójel a helyén? Először is: az ok, hogy a szintaktikai szakaszban két információblokk van, mert különböző módon mutatják be a parancsot. Ezeket technikailag paraméterkészleteknek nevezik, és csak egyszer használhatóak( különböző paraméterekből nem lehet paramétereket keverni).A fenti képernyőképen látható, hogy a felső paraméterkészletnek van egy SourcePath paramétere, míg az alsó nem. Ennek az az oka, hogy a legmagasabb paraméterkészletet használja( a SourcePath-ot is beleértve), ha frissítette a súgófájljait a hálózat egy másik gépéről, amely már letöltötte őket, miközben nem kell megadnia a forrásútvonalat, hacsak meg akartam ragadni a Microsoft legújabb fájljait.
A második kérdés megválaszolásához létezik egy bizonyos szintaxis, amely segít a fájlok követésében, és itt van:
- A paraméter név és típusának szögletes zárójelei opcionális paraméterek, és a parancs anélkül működik, hogy finom lenne.
- A paraméterek neve körüli szögletes zárójelek azt jelzik, hogy a paraméterek pozícióparaméterek.
- A szögben levő zárójelben található paraméterek jobb oldalán található adatok azt jelzik, hogy milyen paramétert vár a paraméter.
Amíg meg kell tanulnod a súgófájl szintaxisának olvasását, ha egy adott paraméterrel kapcsolatban még mindig bizonytalan vagy, csak töltsd össze -Töltsd át a get help parancs végét, és görgess le a paraméterekhez, ahol még egy kicsit többet mondminden paramétert.
Get-Help -Name Update-Help -Teljes
Az utolsó dolog, amit tudni kell a súgórendszerről, hogy hogyan tudja használni a parancsok felfedezéséhez, ami valójában nagyon egyszerű.Látja, a PowerShell szinte bárhol elfogadja a helyettesítő karaktereket, így a Get-Help paranccsal együtt könnyedén felfedezheti a parancsokat. Például keresek olyan parancsokat, amelyek a Windows szolgáltatásokkal foglalkoznak:
Get-Help -Name * szolgáltatás *
Biztos, hogy ezek az információk talán nem hasznosak a denevéren, de bízz bennem, időt vesz igénybe és tanulj meg használnia segélyrendszer. Mindig hasznos, még a fejlett szkripteknek is, akik már évek óta ezt csinálják.
Biztonság
Ez nem lenne megfelelő bevezetés a biztonság megemlítése nélkül. A PowerShell csapata számára a legnagyobb aggodalom az, hogy a PowerShell lesz a legfrissebb és legnagyobb támadási pont a szkriptek számára. Helyeztek néhány biztonsági intézkedést annak biztosítására, hogy ez ne történjen meg, szóval nézzük meg őket.
A védelem legegyszerűbb formája abból fakad, hogy a PS1 fájlkiterjesztés( a PowerShell parancsfájl jelölésére használt bővítmény) nem regisztrálva van egy PowerShell állomáson, amely ténylegesen bejegyzett a Notepad-al. Ez azt jelenti, hogy ha duplán kattintunk egy fájllal, a futás helyett a jegyzettömb segítségével nyílik meg.
Másodszor, nem tudja futtatni a parancsfájlokat a parancsértelmezőből, csak írja be a parancsfájl nevét, meg kell adnia a parancsfájl teljes elérési útját. Tehát, ha a C meghajtón szkriptet akarsz futtatni, írd be:
C: \ runme.ps1
Vagy ha már a C meghajtó gyökerén vagyunk, használhatod az alábbiakat:
. \ Runme.ps1
Végül a PowerShell valamilyen végrehajtási házirendet hívott le, amelyek megakadályozzák a régi parancsfájlok futtatását. Valójában alapértelmezés szerint nem tudsz parancsfájlokat futtatni, és a végrehajtási irányelveket módosítani kell, ha engedélyezni szeretné őket. Négy figyelemre méltó végrehajtási irányelv létezik:
- Korlátozott : Ez a PowerShell alapértelmezett beállítása. Ez a beállítás azt jelenti, hogy egyetlen parancsfájl sem futtatható, függetlenül annak aláírásától. Az egyetlen dolog, ami a PowerShell-ben futtatható ezzel a beállítással, egyedi parancs.
- AllSigned: Ezzel a beállítással a szkriptek futtathatók a PowerShell-ben. A szkriptnek társított digitális aláírással kell rendelkeznie egy megbízható kiadótól. A szkriptek futtatása a megbízható kiadók előtt történik.
- 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ájlok társított digitális aláírással rendelkezzenek egy megbízható kiadótól. 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 az aláírás nélküli szkriptek futtatását, beleértve az összes internetes fájlból és konfigurációs fájlból is. Ez magában foglalja az Outlook és a Messenger programban található fájlokat. A kockázat itt szkriptek futása aláírás vagy biztonság nélkül. Azt kezdtük, hogy ezt a beállítást soha nem adjuk meg.
Az aktuális végrehajtási házirend beállításának megismeréséhez nyissa meg a PowerShell konzolt, és írja be:
Get-ExecutionPolicy
A tanfolyamhoz és a legtöbb egyéb körülményhez a RemoteSigned házirend a legjobb, ezért folytassa és megváltoztassa a házirendet az alábbiak szerint.
Megjegyzés: Ezt egy megnövelt PowerShell konzoltól kell elvégezni.
Set-ExecutionPolicy RemoteSigned
Ez az egész ebben az időben emberek, látom, holnap még egy PowerShell szórakozás.
Jognyilatkozat: A PowerShell parancs megfelelő terméke cmdlet, és mostantól fogjuk használni ezt a helyes terminológiát. Sokkal inkább úgy érezték, megfelelőnek ítélik őket a bevezetés parancsára.
Ha bármilyen kérdése van, akkor tweet @taybgibb, vagy hagyj egy megjegyzést.