PowerShell

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
PowerShell
software
Siglă
Windows Powershell rulează pe Windows 7
Windows Powershell rulează pe Windows 7
Tip Terminal
Dezvoltator Microsoft Corporation
Data primei versiuni 14 noiembrie 2006
Ultima versiune 7.1.3 (11 martie 2021)
Sistem de operare Microsoft Windows
macOS
Linux
Limba C #
Licență Licență MIT de la versiunea 6.0.0
( Licență gratuită )
Site-ul web PowerShell

PowerShell, cunoscut inițial ca Microsoft Shell, MSH sau cu numele de cod Monada și apoi ca Windows PowerShell este un înveliș caracterizat prin interfața linie de comandă (CLI) și un limbaj de scripting , dezvoltat de Microsoft , bazată pe programarea orientată pe obiecte și pe Cadrul Microsoft .NET .

Microsoft a intenționat inițial să implementeze PowerShell alături de Windows Vista , dar ulterior a definit diferite date de implementare pentru PowerShell. Necesită versiunea 2.0 a .NET Framework și este acceptată pe Windows XP , Windows Server 2003 , Windows Vista , Windows Server 2008 , Windows 7 , Windows 8 și Windows 10 disponibile în edițiile x86 , x64 și Itanium . A fost prezent în versiunea 2 pe Windows 7 din care nu poate fi dezinstalat. Este posibilă instalarea Powershell pe Windows 2000 (după instalarea cadrului), dar sistemul rezultat este complet non-standard și neacceptat.

De asemenea, formează baza interfeței administrative pentru Microsoft Exchange Server 2007 în care orice operațiune este efectuată prin linia de comandă, iar interfața GUI este situată pe un strat deasupra acestor comenzi.

De la versiunea 6.0 din august 2016, PowerShell a devenit software gratuit, iar Microsoft l-a făcut disponibil și pentru Linux și macOS . [1]

Istorie

Fiecare distribuție a MS-DOS și Microsoft Windows a încorporat întotdeauna o interfață de linie de comandă : command.com în versiunile bazate pe MS-DOS , cmd.exe în cele bazate pe Windows NT : acestea nu au fost totuși capabile să reproducă sau să automatizează toate funcțiile administrative disponibile prin GUI , deși situația s-a îmbunătățit cu Windows Server 2003 . Acest lucru s-a datorat unei combinații de limitări inerente instrumentelor echivalente din linia de comandă sau faptului că Microsoft nu a furnizat utilități fiabile de acest tip de mult timp. [2]

De asemenea, spre deosebire de mediile Unix , nici command.com și nici cmd.exe nu respectă standardul POSIX.2 . Serviciile pentru UNIX includ un pdksh care respectă acest standard, dar atât acesta, cât și alte shell-uri UNIX care sunt disponibile nu pot îndeplini multe sarcini de rutină, care rămân legate de GUI-ul Windows. Deși Serviciul Suite pentru UNIX face acum parte din Windows Server 2003 R2 și va fi inclus în unele ediții de Windows Vista, în trecut a fost pus la dispoziție ca supliment plătit (de exemplu, kitul de resurse Windows 2000). ceea ce a împiedicat adoptarea sa pe scară largă.

Utilizatorii au fost respinși de lipsa unei documentații adecvate a caracteristicilor liniei de comandă. În schimb, multe aplicații grafice Unix sunt doar pachete pentru instrumentele din linia de comandă, care vin cu documentație.

Microsoft a încercat să remedieze unele dintre aceste limitări introducând Windows Script Host în 1998, concomitent cu distribuirea Windows 98 . Era un nou nivel de scriptare care putea implementa un număr mare de limbaje de scriptare pentru a controla aplicațiile. Totuși, Script Host a avut și limitări semnificative: nu a fost integrat cu shell-ul, documentația sa nu era foarte accesibilă și a fost considerată în curând un pericol pentru securitatea sistemului, după ce mai mulți viruși au evidențiat slăbiciunea substanțială a modelului său. Siguranță.

Windows Server 2003 și unele versiuni de Windows XP includ o linie de comandă script gazdă numită Cscript.exe (aceasta este în esență o porțiune autonomă din Windows Script Host de mai sus), care nu este integrată cu shell-ul existent (cmd. Exe). Aceste sisteme de operare oferă, de asemenea, alte linii de comandă ad hoc (de exemplu, netsh ), care, de asemenea, nu sunt complet integrate.

O limitare fundamentală la automatizarea sarcinilor în Windows a fost faptul că interfețele sale de administrare native erau deschise instrumentelor grafice proprietare ale Microsoft și oricărei interfețe de scriptare pe care Microsoft ar putea alege să le furnizeze. Întrucât GUI a fost interfața principală, a fost dificil să se furnizeze „împachetări” capabile de a fi scriptate - o situație care este exact opusă celei a majorității implementărilor UNIX , unde o linie de comandă capabilă să execute scripturile a furnizat funcționalități de bază.

Microsoft a proiectat PowerShell pentru a face aceste probleme mai puțin insurmontabile și pentru a face procesul de dezvoltare de noi aplicații grafice și de linie de comandă mai puțin împovărător prin integrarea unui limbaj de scriptare mai sigur într-un nou shell de comandă extensibil, care a fost capabil să efectueze și să automatizeze aceleași sarcini administrative de bază care sunt efectuate prin intermediul interfeței grafice din Windows. Interfața cu utilizatorul de gestionare Exchange Server 2007 , de exemplu, se bazează pe PowerShell. În majoritatea sarcinilor de zi cu zi, PowerShell poate înlocui cmd.exe și Windows Script Host (WSH). Cu toate acestea, din motive de compatibilitate inversă, atât cmd.exe cât și WSH vor continua să fie acceptate de Windows. Microsoft s-a angajat să construiască instrumentele grafice ale viitorului deasupra PowerShell, asigurându-se că funcționalitatea administrativă de bază continuă să fie utilizabilă prin linia de comandă, de-a lungul liniilor unui sistem de operare Unix.

Microsoft a lansat a doua versiune beta publică a „Monad” pe 11 septembrie 2005 , iar a treia a fost lansată pe 10 ianuarie 2006 .

Microsoft a anunțat la 25 aprilie 2006 că WSH își va schimba numele în Windows PowerShell și va deveni o parte semnificativă a ofertei sale de instrumente de gestionare a sistemului [3] .

Primul candidat la lansarea PowerShell a fost lansat în același timp cu anunțul. Al doilea candidat la eliberare a fost eliberat pe 26 septembrie 2006 . Versiunea 1.0 a fost lansată pe 14 noiembrie 2006 . Versiunea 2.0 este standard pe Windows 7 . Versiunea 3.0, disponibilă pentru Windows 7 SP1 și Windows 2008 Server R2 SP1, este standard pe Windows 8 și Windows Server 2012, ca parte a Windows Management Framework V3 mai larg, din care face parte și WinRM.

Versiunea 6 a fost lansată pe 2 august 2016 și produce software open source sub licența MIT [4] și o face disponibilă și pentru Linux și Mac OS. De fapt, numele este schimbat prin eliminarea Windows din nume și lăsarea numai a PowerShell.

Descriere

Principii

Numele de cod al PowerShell, Monad , provine din monadologia lui Gottfried Leibniz , o filozofie în care universul este format din elemente fundamentale, monadele , dispuse într-o „ armonie prestabilită ”. În mod similar, PowerShell este combinația de sarcini complexe și o serie de componente, cmdleturile ( comanda permite ), care sunt clase .NET concepute pentru a profita de caracteristicile mediului. Diferența fundamentală dintre abordarea Unix și cea a PowerShell constă în faptul că, mai degrabă decât să creeze o „conductă” (literalmente tub ) bazată pe intrări și ieșiri textuale, PowerShell transmite date de la un cmdlet la altul ca obiecte (date cu un structură definită).

Ieșirea unui cmdlet, dacă încercați să îl accesați prin linia de comandă, este convertită automat în text; în schimb, dacă încercați să-l utilizați într-un alt cmdlet, acesta va fi convertit în cel mai potrivit obiect pentru intrarea acelui cmdlet. În acest fel, diverse utilități utilizate în mod obișnuit în conductele Unix, precum grep și awk , nu mai sunt necesare și permit o combinație interactivă sau într-un mediu de scriptare a elementelor individuale, care altfel ar fi necesitat un limbaj de programare mai puternic. complex. De exemplu, o listă de procese care rulează nu va consta din textul care le descrie, ci din obiectele care o compun, astfel încât este posibil să invocați metode pe aceste obiecte fără a face trimitere în mod explicit la nicio structură sau bibliotecă .

Caracteristici

  • Limbaj de scriptare similar cu C # , cu multe caracteristici dedicate utilizatorilor experți, cum ar fi suport direct pentru tabele de hash , construcții de comutare bazate pe expresii regulate, descompunerea matricelor , posibilitatea de a stoca metode anonime ca date pentru executarea ulterioară. Există, desigur, toate caracteristicile pe care le-ați aștepta să le găsiți într-un limbaj de scriptare, cum ar fi iterația (for / foreach / while), construcțiile condiționate (if / switch), câmpurile vizuale variabile (global / script / local / privat ) și capacitatea de a defini funcții.
  • Toate cmdleturile moștenesc unele caracteristici, ceea ce permite utilizatorului să aleagă, de exemplu, nivelul de interacțiune și modul de gestionare a erorilor; Luați în considerare, de exemplu, „suspend”, care vă permite să introduceți un shell nou de comandă, să investigați o problemă și apoi să continuați cu comanda originală. Programatorul este prevăzut cu un mecanism simplu încorporat pentru a defini solicitările care trebuie afișate în astfel de situații. Comandetele care returnează ceva extern acceptă opțiunile -WHATIF și -CONFIRM. -WHATIF simulează executarea procedurii, comunicând utilizatorului posibilul rezultat. -CONFIRM informează utilizatorul despre ceea ce se va întâmpla și îi permite să decidă ce să facă.
  • Un model de furnizor extensibil oferă posibilitatea de a accesa și manipula nu numai sistemul de fișiere , ci și alte structuri ierarhice de date. De exemplu, PowerShell integrează un furnizor pentru registrul Windows care permite accesul la copacii „HKLM” (HKEY_LOCAL_MACHINE) și „HKCU” (HKEY_CURRENT_USER). În acest fel, jurnalul poate fi vizualizat cu comenzi precum „HKLM dir: \ SOFTWARE \ Microsoft” din promptul shell. PowerShell furnizează furnizori pentru biblioteca de certificate de securitate, variabile de mediu și shell, funcții și pseudonime; utilizatorii își pot crea proprii furnizori și îi pot integra în PowerShell.
  • Opțiunile din linia de comandă sunt de obicei cuvinte întregi, dar pot fi referite mai repede specificând doar numărul minim de litere necesare pentru a le distinge de celelalte (de exemplu, opțiunea -mostra-informazioni-dettagliate poate fi numită specificând doar -m dacă nu există altele opțiunile încep cu „m”).
  • Completare automată extensibilă de utilizator a comenzilor. Gândiți-vă că cmd.exe în versiunile recente de Windows poate completa doar numele fișierelor și directorilor, spre deosebire de ceea ce se întâmplă în shell-uri precum bash și zsh .
  • Abilitatea de a atribui ieșirea unei comenzi unei variabile, care devine un obiect sau o serie de obiecte care pot fi afișate în orice mod doriți.

Windows PowerShell ISE

Windows PowerShell Integrated Scripting Environment ( ISE ) este o aplicație introdusă începând cu PowerShell 2.0 [5] . Cu această versiune de PowerShell puteți rula comenzi, testați și depanați scripturi într-o singură interfață cu mai multe vizualizări (și cu grafică Windows). Panourile sunt specifice comenzilor, scripturilor și rezultatelor.

Notă

  1. ^ PowerShell este open source și este disponibil pe Linux | Blog și actualizări Azure | Microsoft Azure , la azure.microsoft.com . Adus la 22 august 2020 .
  2. ^ DOS este încă în viață, ascuns în Windows 10 - Wired , în Wired , 17 ianuarie 2017. Adus pe 4 februarie 2017 .
  3. ^ (EN) Jeffrey Snover, Windows PowerShell (Monad) Has Arrived , Windows PowerShell Team blog, MSDN, 25 aprilie 2006. Accesat la 26 aprilie 2006.
  4. ^ (EN) LICENSE.txt (TXT), pe Powershell, Github. Adus la 22 august 2020 .
  5. ^ Stefano Serafino, Windows PowerShell: ce este și pentru ce este (ghid complet) | „L” | , pe Memex Computer , 18 mai 2017.

Perspective

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh2008003638 · BNE (ES) XX5237721 (data)