Cum se deschide PowerShell, toate metodele. Windows PowerShell: ce este?

Este posibil ca utilizatorii experimentați ai sistemului de operare Windows 10 să fi auzit de utilitarul pentru linia de comandă PowerShell. Cei cu experiență în lucrul cu Windows 7 și 8.1 pot fi, de asemenea, familiarizați cu acesta. După ani de utilizare a aplicației de linie de comandă Windows și a fișierelor .bat, este timpul să faceți cunoștință cu un instrument mai puternic.

PowerShell este un plus valoros la lista de instrumente Windows, iar domeniul său de aplicare poate fi intimidant pentru unii utilizatori. Ce este - un limbaj de scripting sau un shell de comandă? Nu vă faceți griji: în ciuda capacităților extinse, oricine poate stăpâni PowerShell.

Pasul 1: Instalare

În primul rând, avem nevoie de utilitarul PowerShell în sine. Dacă utilizați Windows 10, aveți deja instalată versiunea 5 a PowerShell. Actualizarea Windows 10 Anniversary folosește versiunea 5.1, dar diferența nu este vizibilă. Windows 8 și 8.1 folosesc PowerShell 4, care este, de asemenea, destul de suficient. Instalarea PowerShell pe Windows 7 nu va cauza probleme, dar va trebui totuși să faceți câțiva pași suplimentari. În special, trebuie să instalați suplimentar .Net Framework. Puteți instala Windows Management Framework, care include PowerShell.

PowerShell are două interfețe. Utilizatorii avansați pot opta pentru o interfață GUI completă cunoscută sub numele de Integrated Scripting Environment (ISE). Pentru începători, cel mai bine este să utilizați consola PowerShell, o interfață simplă în stil linie de comandă Windows bazată pe text sau chiar DOS 3.2.

Pentru a rula PowerShell ca administrator în Windows 10, faceți clic pe butonul Start și derulați în jos la Windows PowerShell. Pe Windows 8.1, căutați Windows PowerShell în folderul System din Windows. În Windows 7, shell-ul se află în folderul Accesorii. Ca utilizator obișnuit, PowerShell poate fi lansat în același mod, folosind butonul stâng al mouse-ului în loc de cel drept.

Puteți utiliza căutarea pe orice versiune de Windows. Pentru ușurința utilizării viitoare, puteți fixa PowerShell în bara de activități.

Pasul 2: Comenzi vechi Windows

Sintaxa comenzii Windows din PowerShell funcționează ca de obicei. De exemplu, CD modifică folderele, dir arată o listă cu toate fișierele și folderele din folderul curent.

În funcție de modul în care lansați consola PowerShell, este posibil să începeți în c:\Windows\system32 sau în c :\Utilizatori\ . Exemplul din captura de ecran folosește comanda CD..(cu un spațiu) pentru a urca câte un nivel, apoi rulați comanda dir pentru a afișa o listă de fișiere și foldere dintr-un director C:\.

Pasul 3: Instalați fișierele de ajutor

Echipe ca CDȘi dir nu sunt comenzi PowerShell active. Acestea sunt așa-numitele aliasuri - înlocuitori pentru comenzile reale PowerShell. Aliasurile sunt utile pentru cei care au o experiență vastă cu linia de comandă. Cu toate acestea, ele nu ating adâncimea PowerShell.

Pentru a începe cu PowerShell, tastați Ajutorși comanda de care aveți nevoie. Captura de ecran arată comanda .

Echipă Ajutor spune ca dir este un alias pentru comanda PowerShell Get-ChildItem. Dacă tastezi get-childitem V PS C:\>, veți vedea același lucru ca atunci când utilizați comanda dir.

După cum s-a menționat în partea de jos a capturii de ecran, fișierele de ajutor pentru PowerShell nu sunt instalate automat. Pentru a le obține, rulați PowerShell ca administrator și tastați update-help. Instalarea fișierelor de ajutor va dura câteva minute poate lipsi un număr de module - de exemplu, în acest caz, Help for NetWNV și SecureBoot nu au fost instalate. Când totul este gata, sistemul complet de ajutor va oferi întotdeauna sfaturile necesare.

Acum tastați comanda obține ajutorși orice comandă de care sunteți interesat („cmdlet” în PowerShell, cmdlet-uri în rusă), va fi afișată descrierea acesteia. De exemplu, get-help get-childitem afișează o listă de opțiuni get-childitem. De asemenea, puteți afișa diferite opțiuni posibile. De exemplu

get-help get-childitem -exemple

oferă șapte exemple detaliate de utilizare get-childitem. Echipă

get-help get-childitem -detaliat

include aceste șapte exemple și explicații detaliate ale fiecărui parametru din cmdlet get-childitem.

Pasul 4: Obțineți ajutor cu setările

În captura de ecran este posibil să fi observat două liste mai jos SINTAXĂ Pentru get-childitem. Având două sintaxe diferite înseamnă că există două moduri de a rula cmdletul. Cum să păstrăm sintaxa separată una de cealaltă și ce înseamnă parametrii? Răspunsul este simplu dacă știi trucul.

Pentru detalii referitoare la parametrii cmdlet-ului get-childitem sau orice alt parametru de utilizare -deplin:

get-help get-childitem -full

Aceasta vă oferă o listă cu ceea ce puteți face cu cmdletul și ce se va întâmpla. Uită-te la captura de ecran.

Revizuind descrierile parametrilor, veți observa că get-childitem face posibilă obținerea unui obiect copil(cum ar fi un nume de subdosar sau un nume de fișier) într-o locație specificată, cu sau fără potrivirea anumitor caractere. De exemplu:

get-childItem „*.txt” -recurse

returnează o listă de fișiere „*.txt” din folderul curent și toate subfolderele (datorită parametrului -recurs). Întrucât

get-childitem „HKLM:\Software”

returnează o listă cu toate cheile de registry de nivel superior în HKEY_LOCAL_MACHINE\Software.

Dacă ați încercat vreodată să intrați în registry folosind linia de comandă Windows sau fișierele .bat, veți aprecia funcționalitatea acestei opțiuni de acces.

Pasul 5: Învățarea numelor

Există un motiv pentru care cmdleturile afișate până acum arată similare: get-childitem, update-help, get-help utilizați un singur model verb-substantiv. Toate cmdleturile PowerShell folosesc această convenție, folosesc un verb înaintea unui singur substantiv. Acest lucru îi va atrage pe cei care au suferit cândva de nume de comenzi inconsecvente în limbile VB și VBA.

Aruncă o privire la cele mai comune cmdleturi:

set-locație: setează locația curentă de lucru într-o anumită locație

obţine-conţinut: Obține conținutul fișierului

obţine-element: Primește fișiere și foldere

element de copiere: copiază un obiect dintr-o locație în alta

eliminare-articol: Șterge fișierele și folderele

: Primește procesele care rulează pe un computer local sau la distanță

obţine-serviciu: Primește serviciile care rulează pe un computer local sau la distanță

invoke-webrequest: Preia conținut dintr-o pagină web de pe Internet

Pentru a vedea cum funcționează un anumit cmdlet, utilizați obține ajutor ca in cazul

get-help copy-item -full

Pe baza descrierii din ajutor, puteți înțelege de ce are nevoie cmdletul. De exemplu, dacă doriți să copiați toate fișierele și folderele din Documente V c:\temp, utilizare

element de copiere c:\users\ \documents\* c:\temp

Introducând această comandă, veți vedea câteva caracteristici interesante ale mediului PowerShell. De exemplu, dacă tastați copie-iși apăsați butonul Tab, PowerShell va completa Element de copiere. Dacă tastați incorect un cmdlet și PowerShell nu îl poate recunoaște, se oferă o descriere completă a faptelor greșite.

Încercați acest cmdlet:

invoke-webrequest askwoody.com

Veți primi o listă scurtă cu titlurile paginii web, imaginile, linkurile și alt conținut. Vă rugăm să rețineți în obține ajutor la listă invoke-webrequest, care „returnează o colecție de formulare, link-uri, imagini și alte elemente HTML importante” – exact ceea ce ar trebui să fie afișat pe ecran.

Unele cmdleturi vă ajută să gestionați PowerShell în sine:

obţine-comandă: lista tuturor cmdlet-urilor disponibile

obţine-verb: lista tuturor verbelor disponibile

limpede-gazdă: Ștergeți ecranul programului gazdă

Diferiții parametri vă permit să reduceți comenzile și să restrângeți gama de opțiuni utile. De exemplu, pentru a vedea o listă cu toate cmdleturile care funcționează cu serviciile Windows, tastați

get-command *-service

Vor fi afișate toate verbele disponibile cu substantivul serviciu. Iată lista lor:

Obține-Service

Serviciu nou

Restart-Service

CV-Serviciul

Set-Service

Start-Service

Stop-Service

Suspendarea serviciului

Puteți combina aceste cmdleturi cu altele.

Pasul 6: Utilizarea țevilor

Dacă sunteți familiarizat cu linia de comandă Windows sau cu fișierele batch, atunci știți despre redirecționare și conducte. Redirecționarea (> simbol) și conductele (simbol |) preiau rezultatul unei acțiuni și îl atașează la o altă locație. De exemplu, puteți redirecționa rezultatul comenzii dirîntr-un fișier text sau transmiteți rezultatul comenzii ping la echipa găsi pentru a filtra rezultate interesante precum

dir > temp.txt

ping askwoody.com | găsiți „pachete” > temp2.txt

Aici la echipa a doua găsi caută un șir pachete, preluat de pe adresa askwoody.com de către echipă pingși concatenează toate liniile care se potrivesc într-un fișier numit temp2.txt.

Prima dintre aceste comenzi funcționează bine în PowerShell. Pentru a rula a doua comandă veți avea nevoie de ceva de genul

ping askwoody.com | pachete select-string | out-file temp2.txt

Utilizarea redirecționării și a conductelor extinde foarte mult capacitățile liniei de comandă Windows: în loc să derulați la nesfârșit ecranul pentru a căuta un șir de text, puteți filtra comenzile Windows de care aveți nevoie.

Powershell are suport teavași nu se limitează la text. PowerShell vă permite să treceți un obiect întreg de la un cmdlet la altul, unde obiectul este o combinație de date (numite proprietăți) și acțiuni (metode) care pot folosi acele date.

Partea dificilă vine atunci când aliniezi obiectele. Obiectele furnizate de un cmdlet trebuie să se potrivească cu tipul de obiecte acceptate de cmdlet-ul primitor. Textul este un tip de obiect foarte simplu, așa că dacă lucrați cu text, alinierea obiectelor este o sarcină simplă. Obiectele rămase nu sunt atât de elementare.

Cum să înțelegi asta? Utilizați cmdlet obţine-membru. Dacă doriți să știți prin ce tip de obiect procesează un cmdlet, rulați-l obţine-membru. De exemplu, dacă încercați să înțelegeți procesele care rulează pe un computer și ați restrâns opțiunile la cmdleturi , iată cum puteți afla rezultatul cmdlet-urilor:

obţine-proces | obţine-membru

Rularea acestui cmdlet produce o listă lungă de proprietăți și metode pentru , dar chiar la începutul listei puteți vedea tipul de obiect care creează :

TypeName: System.Diagnostics.Process

Captura de ecran de mai jos arată și proprietățile intitulat Găsiți-proces de manere, Nume, NPM, PM, SI, VMȘi W.S..

Dacă doriți să manipulați rezultatul Pentru a lucra cu acest cmdlet (în loc să afișați o listă lungă de procese active pe monitor), trebuie să găsiți o altă comandă care să ia ca intrare Sistem.Diagnosticare.Proces. Pentru a găsi cmdletul de care aveți nevoie, utilizați din nou PowerShell:

get-command -Parametertype System.Diagnostics.Process

Acest cmdlet oferă o listă de cmdleturi care pot fi procesate Sistem.Diagnosticare.Proces.

Unele cmdleturi sunt cunoscute pentru că acceptă aproape orice tip de date. Principalul dintre ei este . Acest cmdlet trece prin fiecare obiect trimis prin conductă, unul câte unul și îi aplică criteriile de selecție specificate. Există un marker special numit $_ , care vă permite să utilizați fiecare articol din conductă, unul câte unul.

Să presupunem că doriți să obțineți o listă cu toate procesele care rulează pe un computer cu numele „svchost”, adică doriți să potriviți proprietatea Nume proces svchost. Utilizați comanda:

obţine-proces | unde-obiect ($_.Name -eq „svchost”)

Cmdlet se uită la fiecare obiect Sistem.Diagnosticare.Proces, compară .Nume acest obiect cu „svchost”; dacă există potriviri, acestea sunt afișate pe monitor. Uită-te la captura de ecran.

Pasul 7: Analizați comenzile PowerShell utile

Până acum știți deja suficient pentru a putea deteriora computerul, așa că aveți grijă. Să ne uităm, de exemplu, la comenzile PowerShell solicitate frecvent.

Aceste comenzi funcționează numai pe Windows 10 și numai atunci când rulați PowerShell ca administrator. Sunt concepute pentru a reinstala aplicațiile Windows 10 preinstalate și pot fi utile celor care au dezinstalat mai întâi aceste programe și apoi au decis să le returneze. Comenzile arată astfel:

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -Înregistrați „$($_.InstallLocation)\AppXManifest.xml”)

Dacă executați această comandă, ignorați avertismentele roșii și, când comanda este finalizată, reporniți computerul; toate programele preinstalate în Windows 10 vor apărea la locul lor.

Iată cum funcționează această comandă. Get-AppXPackage verifică toate pachetele de aplicații din profilul utilizatorului. Chiar dacă ștergeți aplicația, aceasta rămâne în lista de profiluri de utilizator.

Cmdlet Get-AppXPackage returnează un obiect TypeName Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, care include numele complet calificat al pachetului de aplicație și locația fișierului manifest XML corespunzător. Dacă rulați cmdletul get-appxpackage, veți vedea o listă lungă de pachete de aplicații. Captura de ecran arată descrierea aplicației Xbox.

Cmdlet Pentru fiecare circulă prin fiecare obiect în AppXPackage prin trimiterea lor către cmdlet Add-AppxPackage. Conform obține ajutor Pentru Add-AppxPackage, există două comutatoare cu cheie:

  • Intrerupator -Inregistreaza-te folosit pentru a înregistra instalațiile existente ale pachetelor de aplicații, puteți seta parametri Dezactivați modul de dezvoltareȘi Inregistreaza-te
  • Intrerupator -Dezactivați modul de dezvoltare spune Windows să reînregistreze un pachet de aplicații existent care a fost dezactivat, neînregistrat sau corupt.

linia " $($_.InstallLocation)\AppXManifest.x ml" descrie unde se află fișierul manifest.xml. Dacă te uiți la fișiere AppXManifest.xml, veți vedea o listă complexă de ID-uri de aplicație, fișiere executabile și un număr mare de elemente vizuale asociate cu aplicația.

După repornire, toate pachetele de aplicații adăugate sunt descărcate și instalate din Windows Store.

A trecut mai bine de un an de la lansarea Windows 7 și Server 2008.

Programatorii, administratorii de sistem și utilizatorii avansați au găsit multe utilizări pentru fereastra albastră, similare cu linia de comandă.

Majoritatea utilizatorilor începători nici măcar nu știu ce este PowerShell (PS).

Dar scripturile pentru PowerShell vă permit să automatizați aproape 100% din acțiunile și scripturile efectuate în sistemul de operare prin linia de comandă și interfața grafică.

Să ne familiarizăm cu principalele capabilități ale acestui program, acordând mai multă atenție funcției de creare și rulare a scripturilor (firmware).

Există nenumărate manuale și documentație pentru program, inclusiv în limba rusă. Scopul articolului– oferă utilizatorului cunoștințe conceptuale, Aduceți la zi, dar dacă merită să cunoaștem mai îndeaproape interpretul și execuția scenariilor din acesta, fiecare va decide singur.

Ce este Windows PowerShell?

PowerShell– un interpret bazat pe .NET Framework, echipat cu propriul limbaj de scripting.

Primul înseamnă că funcționează în modul text: introdu o comandă, o rulezi, iar pe ecran vezi rezultatul execuției acesteia.

Așa cum a fost în MS-DOS și versiuni mai vechi de UNIX.

Al doilea simplifică, accelerează și automatizează semnificativ administrarea și întreținerea sistemelor, aplicațiilor, proceselor și serviciilor conexe de către administratori și utilizatorii obișnuiți.

În comparație cu alți interpreți, PS este diferit:

  • integrare cu – vă permite să creați scripturi puternice prin introducerea codului de program în ele;
  • toate datele returnate sunt obiecte, nu date text/șir, ceea ce înseamnă că sunt transmise altor scripturi și procesate în orice mod.

PowerShell versiunea 2 are următoarele capacități, Să ne uităm la unele dintre ele mai detaliat:

  • Abilitatea de a reprezenta comenzi ca cmdlet-uri– sunt lansate în interiorul interpretului, în caz contrar, comanda este executată într-un proces separat;
  • Utilizarea benzilor transportoare– sunt concepute pentru a transfera date de la o comandă la alta, păstrând în același timp structura și tipul.
  • Transfer de date multi-stream integrat prin rețea cu prioritizare și reluarea conexiunii.
  • Suport pentru parametrii poziționali și numiți.
  • Lucrări de fundal– apelarea asincronă a comenzilor și lansarea de scripturi pe mașini la distanță.
  • Configurarea sesiunilor limitate cu clienți la distanțăși rulează scripturi pe ele.
  • Module– o modalitate de organizare a scripturilor atunci când devin autosuficiente și executate în propriul container fără a afecta mediul modulului.
  • Disponibilitatea unui handler de erori.
  • Mediu grafic pentru limbaj: sintaxă, depanare, evidențiere, completare automată a comenzii cu suport pentru Unicode și marcaje.
  • Adăugarea punctelor de întrerupere la linii, comenzi, operații și variabile pentru depanarea scriptului.
  • Comentarii bloc și interliniare.
  • Suport pentru crearea de aliasuri pentru unele cmdleturi, care sunt convertite în comenzi obișnuite în momentul execuției.
  • Crearea de sesiuni limitate, unde puteți executa o listă strict specificată de comenzi și multe altele.

Codul sursă PowerShell pus la dispoziția tuturor: Orice membru al comunității își poate crea liber propriile extensii pentru a crește funcționalitatea interpretului de linie de comandă.

Puteți începe să stăpâniți un limbaj de scripting integrat fără abilități de programare.

Este puțin probabil că veți putea crea un scenariu complex, dar aproape toată lumea va putea efectua secvențe de acțiuni primitive.

Deși, fără cunoștințe despre conceptele de bază ale PowerShell, este puțin probabil să puteți face ceva în fereastra interpretorului de comenzi. Să începem cu ei.

Cmdleturi

Cmdleturi– comenzi PS deosebite în spatele cărora sunt ascunse o varietate de funcții. Comenzile încorporate în interpret sunt implementate pe principiul verb-substantiv, de exemplu, Get-Process (obținerea unei liste de procese). Această soluție vă permite să înțelegeți esența comenzii doar din numele acesteia (în engleză).

Unele cmdleturi acceptă primirea/transferul de date și matrice de informații, păstrând în același timp structura și tipul acestora. Acest lucru funcționează pe principiul unui transportor (acesta va fi discutat în secțiunea următoare). Indiferent, cmdleturile rulează și procesează obiectele în ordine.

Pentru a implementa cmdleturi, pot fi folosite orice API .NET acceptate create în orice limbă .NET.

Astfel, utilizatorului i se oferă acces la anumite funcții ale programului.

Cmdleturile pot obține acces la informațiile necesare direct sau prin căi unice (litere de unitate și căi de director).

Folosind cmdlet-uri, puteți lucra cu sistemul de fișiere și obiectele depozit de certificate, aplicațiile și serviciile instalate.

Transportor

Când creați scripturi nu foarte primitive sau pentru a efectua orice operații cu date obținute ca urmare a scriptului, uneori trebuie să efectuați și unele acțiuni.

Există un transportor pentru asta. Ca și în UNIX, combină comenzi prin trecerea ieșirii unui cmdlet în intrarea altuia, neschimbată, păstrându-și tipul.

În acest caz, nu este necesară analizarea unui container sau caracter cu caracter a informațiilor.

Informațiile transmise pot include și o funcție. După terminarea lucrării comenzilor combinate, funcția de conversie a informațiilor în formă de text (conversia datelor în șiruri de caractere) este numită folosind formatarea textului.

Scripturi

În ciuda faptului că shell-ul vă permite să automatizați multe acțiuni, trebuie să introduceți comenzi manual, ceea ce nu este foarte convenabil.

Mai ales când aceleași operații trebuie efectuate din nou și din nou.

Și nu te poți descurca fără factorul uman: greșeli de scriere, erori, apăsarea accidentală a tastelor la scrierea liniilor de cod, corectarea sau rescrierea unei linii necesită o atitudine mai prietenoasă cu utilizatorul.

Pentru a efectua lanțuri monotone de acțiuni, PS a implementat scripturi - fișiere text cu o secvență de comenzi în interior care sunt pe înțelesul interpretului.

Scripturile din PowerShell vor simplifica și automatiza și mai mult munca pe PC și întreținerea acestuia, mai ales dacă scriptul conține ramuri, condiții, operațiuni logice și bucle.

Dar aici „tot ce strălucește nu este aur”: să-ți scrii propriul scenariu sau să încarci unul gata făcut (deși ușor adaptat la propriile obiective) nu va funcționa atât de ușor.

Dacă înMicrosoftera permis oricat de multe necazuri făcut scenarii pentruPowerShell , scris de escroci și nedoritori în scopuri egoiste sau huliganiste.

Pentru a rula pe Windows PS, trebuie să treceți controlul lansării acestuia.

Dacă eșuează, iar scriptul trebuie executat, va trebui să modificați configurația obiectelor responsabile de securitatea macro-urilor.

Înainte de a utiliza scripturi

Când utilizați VBS, apar multe probleme de care dezvoltatorii PowerShell au scăpat complet dacă securitatea scriptului nu este redusă pentru a satisface solicitările de script ale utilizatorilor sau pentru a rezolva probleme legate de nivelul de securitate al sistemului de operare.

Rularea unui script descărcat pe computerul unui utilizator este o opțiune simplă și eficientă pentru răspândirea de software rău intenționat sau pentru furtul informațiilor personale de către atacatori.

Totul se întâmplă din cauza ignoranței de bază a conținutului fișierului script (ps1)și dorința de a-și rezolva rapid problemele în detrimentul muncii altora. Obiectele care controlează nivelul de securitate al execuției scriptului creează un mediu în care este imposibil să rulați scriptul.

Rularea intenționată a macrocomenzilor are loc după schimbarea nivelului de securitate, dacă utilizatorul dă voie, realizând ce face și știind cu siguranță ce este în fișierul *.ps1.

Deoarece configurația de securitate este incomodă pentru persoanele care trebuie să implementeze și să ruleze propriile scripturi, este posibil să se schimbe configurația.

Aici puteți fie să reduceți protecția la minimum, fie să manevrezi înțelept între capacitatea de a deschide găuri pentru penetrare și ușurința în lucrul cu PowerShell.

Shell are trei niveluri de securitate:

  • fișierele cu extensia ps1 nu sunt identificate de sistem ca executabile și sunt desemnate ca necunoscute sau text (prin dublu clic se deschid în editorul de text implicit utilizat pe computer);
  • Shell-ul vă permite să executați scripturi după specificarea căii lor complete, fișierele script din directorul curent nu sunt căutate, ceea ce face imposibilă executarea macrocomenzilor aflate în directorul curent;
  • rulează scriptul de politică de execuție încorporat, responsabil pentru adăugarea celui necesar la lista de scripturi permise.

Nici să nu te gândești la schimbarea configurației, coborându-l cel puțin la al doilea nivel, fără a te familiariza cu elementele de bazăPowerShellpână când începi să înțelegi cel puțin superficial conținutul lui *.ps1.

Există și conceptul de politică de execuție, creată pentru a preveni executarea accidentală a scripturilor. Există cinci setări ale politicii de lansare:

  • limitat - instalat implicit, sunt executate doar scripturi semnate de Microsoft, permițându-vă să obțineți informații despre shell-ul hardware și software al computerului;
  • având semnătura fișierelor șterse– puteți executa toate macro-urile, dar fișierele trimise prin poștă trebuie să fie semnate;
  • semnat digital de o sursă de încredere– toate scripturile semnate sunt executate;
  • nelimitat– lansați orice macrocomandă;
  • ocolire– sunt destinate programatorilor care își creează propriul sistem de securitate, în loc să îl folosească pe cel furnizat în shell.

Puteți verifica starea actuală a politicii de execuție folosind comanda „Get-ExecutionPolicy”.Indiferent de politica de securitate, utilizatorul nu va putea rula un script care conține comenzi pe care nu are suficiente privilegii pentru a le executa.

Lansarea PowerShell

Este timpul să trecem de la teorie la practică. Deci, pentru a executa scripturi trebuie să obțineți o semnătură digitală sau (a doua opțiune este mai simplă).

Există mai multe moduri de a deschide o fereastră PowerShell.

Se prezintă sub două forme:

  • consola clasica;

  • PowerShell ISE - adaugă suport pentru file, sintaxă, ajutor contextual, meniuri contextuale și principale, ceea ce facilitează foarte mult lucrul în interpret.

start

Cel mai simplu mod de a apela PS este prin Start.

  1. Deschide meniul(în Windows 7, faceți clic pe „Toate programele”).
  2. Accesați directorul Windows PowerShellși faceți clic pe pictograma dorită.

Orez. 4 – Lansați PS prin Start

De asemenea, puteți apela PS prin sistem integrat de căutare.

Interpret de comandă

Pentru cei cărora le plac metodele de lansare rapide și non-standard, utilizați fereastra Run. Se deschide cu butonul cu același nume în Start și combinația de taste Win + R.

În caseta de dialog scriem "powershell"și apăsați „Enter”.

Câștigă+X

În Windows 10, PS poate fi apelat din meniul WinX. Faptul este că în mod implicit făcând clic pe comandă "Linie de comanda" deschide CMD. Poate fi înlocuit cu PowerShell.

Deschideți „Proprietăți” din bara de activități, în fila „Navigație”, puneți o bifă lângă singura opțiune și salvați setările.

Puteți apela PowerShell prin linia de comandă scriind „powershell” în ea sau rulând fișierul executabil de-a lungul căii: %WINDIR%\ System32\ WindowsPowerShell\v1.0 pentru sisteme pe 32 de biți și la %WINDIR%\ syswow64\ WindowsPowerShell\v1.0 pentru Windows pe 64 de biți de orice ediție.

Orez. 8 – Rulați PS din directorul în care este stocat fișierul său executabil

Stabilirea unei politici de securitate

A mai lasat putin– permiteți PowerShell să execute scripturi. Introduceți comanda „Set-ExecutionPolicy RemoteSigned” și apăsați „Y”.

Asta e tot. Acum puteți rula orice cmdlet-uri și scripturi. Să încercăm, de exemplu, să afișăm o listă de procese active executând „Get-Process”.

Rularea scripturilor

Puteți crea scripturi în orice (este mai bine să rămâneți cu Win, sau ceva similar, cu suport pentru sintaxă sau validare) sau în programul PowerShell ISE.

Acesta din urmă oferă acces convenabil la cmdleturi, abilitatea de a rula, depana și salva scripturi.

Să presupunem că ai scris primul tău script (aceasta este pentru a obține o listă de procese care rulează), l-ai salvat prin meniul „Fișier” și trebuie să-l rulezi. Acest lucru se face în trei moduri:

1 Scriem calea completă către script în PowerShell (sau ISE);

Orez. 13 – Rularea scripturilor din fereastra PowerShell ISE

Important astfel încât să nu existe spații în calea către fișier!

PowerShell– un instrument puternic pentru simplificarea operațiunilor de rutină în Server 2008 și mai nou. Un avantaj important al PowerShell îl reprezintă scripturile și disponibilitatea versiune a programului cu o interfață grafică PS ISE. Comenzile din acesta sunt prezentate sub formă de cmdlet-uri, care vă vor face posibil să vă familiarizați cu shell-ul și să înțelegeți semnificația fiecărei comenzi. Politica de securitate nu va permite unui începător să-și deterioreze computerul scripturile primite din surse necunoscute și modul de depanare, crearea propriilor cmdlet-uri, funcții și mecanisme de tratare a erorilor deschid posibilități nelimitate pentru programatori și administratori.

Există mai multe moduri diferite de a rula scriptul, principalele sunt mai jos:

  1. Lansați PowerShellși rulați scriptul în el (introduceți calea fișierului și numele fișierului, de exemplu, astfel: C:\Scripts\test.ps1, sau accesați folderul script cu comanda cd C:\Scripts și rulați-l cu comanda.\test.ps1) Shell-ul poate fi găsit și lansat în mai multe moduri. O modalitate este prin meniul Start. Pentru Windows 7 - trebuie să mergeți la „Toate programele” - „Accesorii” - „Windows PowerShell” și să lansați shell-ul „Windows PowerShell”. Pentru Windows 10 - trebuie să găsiți grupul cu litera „W” și în el veți găsi „Windows PowerShell”.
  2. Lansați „Windows PowerShell ISE” este un program - un mediu de dezvoltare care vă permite să editați și să depanați scripturi PowerShell, care este, de asemenea, disponibil implicit împreună cu PowerShell însuși. După ce l-ați lansat, trebuie doar să faceți clic pe butonul „Deschidere” sau să accesați meniul Fișier - Deschidere și să selectați scriptul dorit, apoi apăsați pe F5 sau pe butonul „Run Script”. Puteți găsi Windows PowerShell ISE în același loc cu shell-ul PowerShell - în meniul Start .
  3. Lansați linia de comandă standard si scrie in el:
    Powershell -fișier<имя_скрипта> (exemplu: powershell -file myscript.ps1)

Dacă nu ați mai rulat scripturi PowerShell înainte, probabil veți primi următorul mesaj: Nu se poate descărca fișierul<имя_скрипта>, deoarece execuția de script este interzisă pentru acest sistem. Tastați „get-help about_signing” pentru mai multe informații. Acest lucru se datorează faptului că, din motive de securitate și pentru a preveni executarea accidentală a codului rău intenționat, toate scripturile trebuie să fie semnate digital.

Cum se permite executarea unui script PowerShell nesemnat?

1. În PowerShell, înainte de a rula scriptul, rulați comanda pentru a permite executarea scripturilor nesemnate pentru sesiunea curentă de shell:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. La pornire din linia de comandă standard utilizați parametrul -executionpolicy, adică rulați scriptul astfel:

<имя_скрипта>

Ambele metode stabilesc politica doar pentru sesiunea curentă, în timp ce politica de securitate pentru executarea scripturilor PowerShell scrise în registry nu va fi modificată și va rămâne aceeași. Dacă doriți să schimbați politica de securitate a execuției scriptului în „permanentă”, atunci utilizați această metodă:

3. Permite lansarea pentru totdeauna: Lansați PowerShell ca administrator, apoi executați comanda:

Set-ExecutionPolicy RemoteSigned

Notă: Dacă scriptul a fost descărcat de pe Internet, atunci pentru a evita o solicitare de confirmare a lansării, trebuie să utilizați Bypass în loc de RemoteSigned - dezactivând complet orice solicitare și avertismente.

Cum să rulezi un script PowerShell în fundal?

Pentru a face acest lucru, trebuie doar să utilizați parametrul de lansare -WindowStyle, care poate lua următoarele valori: Normal, Minimizat, Maximizat și Ascuns. Astfel, pentru a rula un script nesemnat în fundal, trebuie să rulați comanda:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -fișier<имя_скрипта>

De asemenea, puteți adăuga -NonInteractive dacă doriți, astfel încât scriptul să nu pună întrebări. Astfel, scriptul va fi executat neobservat de utilizator. Aveți grijă când utilizați această metodă.

Rularea unui script PowerShell cu parametri

Lansarea efectivă ar trebui făcută ca și cum ați lansa un program obișnuit sau un fișier bat cu parametri. De exemplu, pentru a rula un script cu parametri din linia de comandă, puteți scrie următoarea comandă:

powershell -executionpolicy RemoteSigned -file<имя_скрипта>param1 param2 "un alt parametru de text"

În script-ul în sine, puteți obține acești parametri astfel:

Param ($var1, $var2, $var3) echo $var1, $var2, $var3

În PowerShell ISE, puteți rula un script cu parametri în același mod folosind panoul de comandă.

Cum să rulați un script PowerShell folosind o comandă rapidă?

Această sarcină poate fi îndeplinită în două moduri:

  1. Creați un fișier bat/cmd în care să scrieți o comandă pentru a rula scriptul (ați citit parametrii de mai sus)
  2. Creați o comandă rapidă către PowerShell, care poate fi găsită în folderul c:\Windows\System32\WindowsPowerShell\v<версия>\ și în proprietățile comenzii rapide din câmpul „Obiect”, adăugați parametrii necesari.

Astfel, de exemplu, pentru a rula un script powershell atunci când utilizatorul se conectează, puteți pur și simplu să creați o comandă rapidă așa cum este descris la punctul 2 și să o plasați la pornire. De asemenea, crearea unei comenzi rapide folosind una dintre metodele de mai sus vă va permite să rulați cu ușurință scriptul ca administrator sau ca orice alt utilizator ca program obișnuit.

Limbajul de scripting PowerShell este un instrument destul de puternic pentru rezolvarea diverselor probleme, dar poate fi folosit nu numai pentru lucruri bune, ci și pentru lucruri rele, așa că folosiți-l cu înțelepciune ;)

PowerShell este o linie de comandă alternativă cu funcționalități extinse. Mulți proprietari de computere care sunt bine versați în procesele de sistem sunt interesați de posibilitățile de utilizare pe Windows 10 și versiunile anterioare ale acestui software pentru a modifica procesele specifice și setările PC-ului pentru ei înșiși.

Nu este nimic complicat în utilizarea PowerShell. Doar urmați toate instrucțiunile din acest articol și veți reuși.

Dacă nu ești un expert în acest subiect, abia începi să studiezi liniile de comandă și acțiunile care pot fi efectuate în ele, îți va fi util să cunoști răspunsurile la întrebările principale despre utilizarea unei astfel de aplicații. De exemplu, cum să rulați Windows PowerShell ISE Windows 10 și să scrieți și să lucrați cu scripturi.

Cum se deschide PowerShell?

Acest lucru se poate face în mai multe dintre următoarele moduri:

  • - veți găsi aplicația în lista generală de componente sub litera W.
  • Folosind căutarea în bara de activități - deschideți-o și introduceți cuvântul PowerShell pentru a căuta.
  • Folosind meniul „Run”, rulați-l prin combinația Win + R și scrieți numele utilitarului, după care va fi găsit în sistem.
  • În Commander, setați acțiunea PowerShell - dar ar trebui să știți că veți lucra cu aplicația printr-o linie care rulează deja, și nu într-o fereastră separată.
  • În Setări Windows, selectați Proprietăți bară de activități și Meniu Start. În fila „Navigație”, bifați caseta de lângă „Înlocuiți linia de comandă cu PowerShell...”. Acum puteți activa utilitarul folosind combinația Win+X.

Cum să scrieți și să rulați scripturi?

Cum să creați un script PowerShell și să îl rulați? Acest lucru se poate face pur și simplu într-un bloc de note - folosindu-l, indicați comenzile de care aveți nevoie în noul document. Apoi salvați-l, dar schimbați formatul în .ps1 - aceasta este extensia pe care o au fișierele acestui utilitar de sistem.

Puteți scrie scripturi în aplicația însăși astfel:

  • Lansează-l.
  • Faceți clic pe elementul „Creați”.
  • Sau faceți clic pe „Fișier” și selectați „Creare” din lista care apare.
  • Scrieți toate comenzile care trebuie executate, salvați fișierul.

Scripturile pot fi totusi scrise si editate in FAR Manager, dar nu pot fi folosite direct intr-o astfel de aplicatie, deoarece afiseaza fisiere de acest tip prin linia standard cmd. Cu toate acestea, alte acțiuni sunt efectuate în același mod ca în utilitarul „nativ”.

Puteți rula scriptul astfel:

  1. Conectați-vă la PowerShell ca administrator.
  2. Utilizați comenzile cd pentru a specifica locația fișierului necesar. De exemplu, e: cd\ cd work .\ filename. Ps1 sau e: \work\filename.ps1
  3. În acest caz, e: este numele hard disk-ului pe care se află fișierul.
  4. Apasa Enter.

Programul vă va afișa cu siguranță un mesaj cu textul „Fișierul ___ .Ps1 nu poate fi încărcat deoarece executarea scriptului este interzisă pe acest sistem...” atunci când executați comanda pentru prima dată. Cert este că Windows este echipat cu protecție împotriva interferențelor datorită dezvoltatorilor, astfel încât niciunul dintre utilizatori nu are în mod implicit acces să efectueze astfel de acțiuni. Dar această limitare poate fi ocolită foarte ușor.

Cum? Textul care apare cu eroarea vă va recomanda să introduceți comanda get-help about_signing pentru a obține mai multe informații. Puteți urma aceste instrucțiuni sau utilizați combinația Set-ExecutionPolicy semnată de la distanță - după ce o introduceți, va fi necesară confirmarea, iar restricția va fi eliminată.

Alte întrebări despre utilizare

Mulți oameni au o întrebare: cum să aflați versiunea PowerShell? Pentru a face acest lucru, faceți următoarele:

  1. Introduceți $PSVersionTable.
  2. Dacă acest lucru nu duce la nimic, atunci aveți versiunea 1.0 - există o comandă $host.version pentru aceasta.
  3. În caz contrar, vor apărea informații detaliate despre ce versiune a aplicației este instalată pe computer.

1. Scrierea unui scenariu

Un script PowerShell (indiferent de versiune) este un fișier text cu extensia *.ps1.

Iată un exemplu de script Power Shell simplu (file systemInfo.ps1):

# Preluați obiectul WMI pentru sistemul de operare

Get-WmiObject Win32_OperatingSystem

Acest fișier poate fi creat și editat, de exemplu, în FAR Manager.

Notăcă FAR Manager, deși poate funcționa în consola Power Shell, execută scripturi de sub el însuși în mediul unei console Windows obișnuite cmd . Adică, FAR Manager poate fi folosit doar pentru a crea și edita scripturi PowerShell, dar nu și pentru a le rula. Dar înainte de a fi dezamăgit, citește punctul 3.

2. Rularea scriptului

Scriptul trebuie executat din consola Power Shell și nu din consola obișnuită Windows. În consola Power Shell, trebuie să mergeți la directorul în care se află scriptul (cu comenzile CD ), apoi rulați scriptul în sine, asigurându-vă că includeți personajele în fața acestuia".\" . De exemplu, avem calea către fișierul script d:\work\systemInfo.ps1 . Apoi comenzile de lansare vor arăta astfel:

CD\

lucrare pe cd

.\systemInfo.ps1

sau așa (specificați doar calea completă către script):

d:\work\systemInfo.ps1

Cel mai probabil, următoarea eroare va apărea la rularea scriptului:

Fișierul D:\work\systemInfo.ps1 nu poate fi încărcat deoarece executarea scriptului nu este permisă pe acest sistem. Tastați „get-help about_signing” pentru mai multe informații.

linie:1 caracter: 18

CategoryInfo: NotSpecified: (:), PSSecurityException

FullyQualifiedErrorId: RuntimeException

Eroarea apare deoarece, implicit, Power Shell are activată politica de securitate maximă, care vă permite să rulați comenzi PowerShell pe linia de comandă, dar nu vă permite să rulați un script cu comenzi PowerShell pe aceeași linie de comandă.

Pentru a activa execuția scripturilor PowerShell, trebuie să creați un fișier *.bat, de exemplu enableScript.bat cu următorul conținut:

powershell -Comand Set-ExecutionPolicy RemoteSigned

Acest fișier *.bat poate fi executat în orice consolă: fie în PowerShell, fie într-o consolă obișnuită cmd . După executarea acestui fișier, scripturile PowerShell vor rula în consola PowerShell.

3. Rularea unui script PowerShell dintr-o consolă Windows cmd obișnuită

Scriptul PowerShell poate fi executat și dintr-o consolă Windows obișnuită. Pentru a face acest lucru, puteți folosi comanda:

Powershell -Fișier ./systemInfo.ps1

În acest fel puteți executa scripturi direct din FAR Manager și vor funcționa.

Dar există o ușoară subtilitate aici. Parametru-Fişier trage doar pe căi locale, chiar dacă calea este relativă„./” . Adică dacă *.ps1 - fișierul se află pe discul local C: sau D: , atunci un astfel de apel va funcționa. Dar dacă încercați să executați un script situat pe o resursă de domeniu, scriptul nu va fi găsit. Poate că acest lucru va fi remediat în versiunile viitoare de PowerShell.