Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 10
  • Koristite Powershell za pokretanje uobičajenih mrežnih naredbi. Šta je Powershell? Potražite pomoć s konceptima

Koristite Powershell za pokretanje uobičajenih mrežnih naredbi. Šta je Powershell? Potražite pomoć s konceptima

Napredni korisnici operativni sistem Windows 10 je možda čuo za ovaj uslužni program komandna linija PowerShell. Oni sa iskustvom u radu sa Windows 7 i 8.1 takođe mogu biti upoznati sa tim. Nakon mnogo godina korištenja komandne aplikacije Windows strings i .bat datoteke, vrijeme je da se upoznate sa funkcionalnijim alatom.

PowerShell je vrijedan dodatak listi Windows alati a njegova veličina može odvratiti neke korisnike. Šta je to - skriptni jezik ili komandna školjka? Ne brinite: uprkos velikim mogućnostima, svako može savladati PowerShell.

Korak 1: Instalacija

Prvo, trebamo sam uslužni program PowerShell. Ako koristite Windows 10, već imate instaliran PowerShell 5. Windows Update 10 Anniversary Update koristi verziju 5.1, ali razlika je neprimjetna. Windows 8 i 8.1 koriste PowerShell 4, što je takođe sasvim dovoljno. Instaliranje PowerShell-a na Windows 7 neće uzrokovati probleme, ali ćete ipak morati poduzeti nekoliko dodatnih koraka. Konkretno, potrebno je dodatno instalirati .Net Framework. Možete instalirati Windows Management Framework, koji uključuje PowerShell.

PowerShell ima dva interfejsa. Napredni korisnici se mogu odlučiti za potpuno GUI sučelje poznato kao Integrated Scripting Environment (ISE). Za početnike, najbolje je koristiti PowerShell konzolu, jednostavan Windows interfejs u stilu komandne linije zasnovan na tekstu, ili čak DOS 3.2.

Da biste pokrenuli PowerShell kao administrator u operativnom sistemu Windows 10, kliknite na dugme Start i pomerite se nadole do Windows PowerShell. U operativnom sistemu Windows 8.1 potražite Windows PowerShell Sistemski folder na Windows-u. U Windows 7, ljuska se nalazi u fascikli Pribor. As redovni korisnik PowerShell se može pokrenuti na isti način, koristeći lijevu tipku miša umjesto desne.

Možete koristiti pretragu na bilo kojoj verziji Windows-a. Za lakšu buduću upotrebu, možete zakačiti PowerShell na traku zadataka.

Korak 2: Stare Windows komande

Sintaksa Windows komande u PowerShell-u radi kao i obično. Na primjer, CD mijenja foldere, dir prikazuje listu svih datoteka i foldera unutar trenutnog foldera.

Ovisno o tome kako pokrećete PowerShell konzolu, možda ćete početi c:\Windows\system32 ili u c :\Korisnici\ . Primjer na snimku ekrana koristi naredbu CD..(sa razmakom) da se pomerite jedan po nivo gore, a zatim pokrenite naredbu dir za prikaz liste datoteka i fascikli u direktorijumu C:\.

Korak 3: Instalirajte datoteke pomoći

Timovi vole CD I dir nisu aktivne PowerShell komande. Ovo su takozvani aliasi - zamjene za prave PowerShell komande. Aliasi su korisni za one koji imaju veliko iskustvo sa komandnom linijom. Međutim, oni ne dotiču dubine PowerShell-a.

Da biste započeli sa PowerShell-om, otkucajte pomoć i komandu koja vam je potrebna. Snimak ekrana prikazuje komandu .

Tim pomoć kaže to dir je alias za naredbu PowerShell Get-ChildItem. Ako kucate get-childitem V PS C:\>, vidjet ćete istu stvar kao kada koristite naredbu dir.

Kao što je navedeno na dnu snimka ekrana, datoteke pomoći za PowerShell se ne instaliraju automatski. Da biste ih dobili, pokrenite PowerShell kao administrator i ukucajte update-help. Instaliranje datoteka pomoći će potrajati nekoliko minuta; određeni moduli mogu nedostajati - na primjer, u ovom slučaju nisu instalirani pomoć za NetWNV i SecureBoot. Kada sve bude spremno, kompletan sistem pomoći će uvijek pružiti potrebne savjete.

Sada upišite naredbu dobiti pomoć i bilo koju komandu koja vas zanima („cmdlet“ u PowerShell-u, cmdlet na ruskom), njen opis će biti prikazan. Na primjer, get-help get-childitem prikazuje listu opcija get-childitem. Također možete prikazati različite moguće opcije. Na primjer

get-help get-childitem -primjeri

pruža sedam detaljnih primjera upotrebe get-childitem. Tim

get-help get-childitem -detailed

uključuje ovih sedam primjera i detaljna objašnjenja svakog parametra u cmdlet-u get-childitem.

Korak 4: Potražite pomoć s postavkama

Na snimku ekrana možda ste primijetili dvije liste ispod SINTAKSA Za get-childitem. Imati dvije različite sintakse znači da postoje dva načina za pokretanje cmdleta. Kako zadržati sintaksu odvojenu jednu od druge i šta znače parametri? Odgovor je jednostavan ako znate trik.

Za detalje o cmdlet parametrima get-childitem ili bilo koji drugi parametar upotrebe -pun:

get-help get-childitem -full

Ovo vam daje listu onoga što možete učiniti sa cmdlet-om i šta će se dogoditi. Pogledajte snimak ekrana.

Pregledajući opise parametara, primijetit ćete to get-childitem omogućava dobijanje objekta dijete(kao što je naziv podfoldera ili naziv datoteke) u navedena lokacija, sa ili bez podudaranja određenih znakova. Na primjer:

get-childItem “*.txt” -recurse

vraća listu "*.txt" datoteka u trenutni folder i sve podmape (zbog parametra -povratak). Dok

get-childitem “HKLM:\Softver”

vraća listu svih ključeva registratora vrhunski nivo V HKEY_LOCAL_MACHINE\Softver.

Ako ste ikada pokušali ući u registar koristeći Windows komandnu liniju ili .bat datoteke, cijenit ćete funkcionalnost ove opcije pristupa.

Korak 5: Učenje imena

Postoji razlog zašto do sada prikazani cmdleti izgledaju slično: get-childitem, update-help, get-help koristiti jedan obrazac glagol-imenica. Sve PowerShell cmdlete koriste ovu konvenciju; koriste glagol ispred jedne imenice. Ovo će se svidjeti onima koji su nekada patili od nekonzistentnih naziva komandi u VB i VBA jezicima.

Pogledajte najčešće cmdlete:

set-location: postavlja trenutnu radnu lokaciju na određenu lokaciju

get-content: Uzima sadržaj datoteke

get-item: preuzima datoteke i fascikle

copy-item: kopira objekt s jedne lokacije na drugu

remove-item: Briše datoteke i foldere

: Pokreće procese na lokalnom ili udaljenom računaru

get-service: Pokreće usluge na lokalnom ili udaljenom računaru

invoke-webrequest: preuzima sadržaj sa web stranice na Internetu

Da vidite kako određeni cmdlet radi, koristite dobiti pomoć kao u slučaju

get-help copy-item -full

Na osnovu opisa u pomoći, možete razumjeti šta cmdlet treba. Na primjer, ako želite kopirati sve datoteke i mape iz Dokumenti V c:\temp, koristiti

copy-item c:\users\ \documents\* c:\temp

Kada unesete ovu naredbu, vidjet ćete nekoliko zanimljive prilike PowerShell okruženja. Na primjer, ako kucate kopija-i i pritisnite dugme Tab, PowerShell će popuniti Copy-Item. Ako neispravno unesete cmdlet i PowerShell ga ne može prepoznati, dat će se potpuni opis onoga što je pogrešno urađeno.

Isprobajte ovaj cmdlet:

invoke-webrequest askwoody.com

Dobićeš kratka lista zaglavlja, slike, veze i drugi sadržaj web stranica. Napomena u dobiti pomoć na listu invoke-webrequest, koji „vraća kolekciju obrazaca, linkova, slika i ostalog važnog HTML elementi" - upravo ono što bi trebalo biti prikazano na ekranu.

Neke cmdlete vam pomažu da upravljate samim PowerShell-om:

get-command: lista svih dostupnih cmdlet-a

get-glagol: lista svih dostupnih glagola

clear-host: Obrišite ekran glavnog programa

Različiti parametri vam omogućavaju da smanjite komande i suzite raspon korisnih opcija. Na primjer, da vidite listu svih cmdlet-a koji rade sa Windows usluge, unesite

get-command *-servis

Biće prikazani svi glagoli dostupni uz imenicu usluga. Evo njihove liste:

Get-Service

New-Service

Restart-Servis

Resume-Service

Set-Servis

Start-Servis

Stop-Servis

Suspend-Service

Možete kombinovati ove cmdlete sa drugim.

Korak 6: Korištenje cijevi

Ako ste upoznati sa Windows komandnom linijom ili batch fajlovi, onda znate za preusmjeravanje i cijevi. Preusmjeravanje (> simbol) i cijevi (simbol |) uzimaju rezultat akcije i pričvršćuju ga na drugu lokaciju. Na primjer, možete preusmjeriti rezultat naredbe dir V tekstualnu datoteku ili proslijedite rezultat naredbe ping timu naći za filtriranje zanimljivih rezultata poput

dir > temp.txt

ping askwoody.com | pronađite “packets” > temp2.txt

Ovdje u drugom timu naći traži niz paketi, preuzet sa adrese askwoody.com od strane tima ping i spaja sve odgovarajuće linije u datoteku pod nazivom temp2.txt.

Prva od ovih naredbi radi dobro u PowerShell-u. Za pokretanje druge naredbe trebat će vam nešto poput

ping askwoody.com | paketi niza odabira | out-file temp2.txt

Korištenje preusmjeravanja i cijevi uvelike proširuje mogućnosti Windows komandne linije: umjesto beskonačnog pomicanja po ekranu da biste tražili tekstualni niz, možete filtrirati Windows komande koje su vam potrebne.

Powershell ima podršku cijev, i nije ograničen na tekst. PowerShell vam omogućava da proslijedite cijeli objekt iz jednog cmdleta u drugi, gdje je objekt kombinacija podataka (nazvanih svojstvima) i akcija (metoda) koje mogu koristiti te podatke.

Teški dio dolazi kada se objekti poredaju. Objekti koje dostavlja jedan cmdlet moraju odgovarati tipu objekata koje prihvata cmdlet primatelj. Tekst je veoma jednostavnog tipa objekata, tako da ako radite s tekstom, poravnavanje objekata je jednostavan zadatak. Preostali objekti nisu tako osnovni.

Kako ovo razumjeti? Koristite cmdlet get-member. Ako želite znati koju vrstu objekta cmdlet obrađuje, pokrenite ga get-member. Na primjer, ako pokušavate razumjeti procese koji se pokreću na računalu i suzili ste svoje mogućnosti na cmdlete , evo kako saznati rezultat cmdlet-a:

get-process | get-member

Pokretanje ovog cmdleta proizvodi dugačku listu svojstava i metoda za , ali na samom početku liste možete vidjeti tip objekta koji kreira :

Ime vrste: System.Diagnostics.Process

Snimak ekrana ispod također pokazuje svojstva pod naslovom get-process Handles, Ime, NPM, PM, SI, VM I W.S..

Ako želite da manipulišete rezultatom za rad sa ovom cmdlet-om (umjesto prikazivanja dugačke liste aktivni procesi na monitoru), morate pronaći drugu komandu koja uzima kao ulaz System.Diagnostics.Process. Da biste pronašli cmdlet koji vam je potreban, ponovo koristite PowerShell:

get-command -Tip parametra System.Diagnostics.Process

Ovaj cmdlet pruža listu cmdlet-a koje mogu obraditi System.Diagnostics.Process.

Neki cmdleti su poznati po prihvatanju gotovo svih vrsta podataka. Glavni među njima je . Ovaj cmdlet prolazi kroz svaki objekt poslan kroz cijevi, jedan po jedan, i na njega primjenjuje specificirane kriterije odabira. Postoji poseban marker tzv $_ , što vam omogućava da koristite svaku stavku u cijevi, jednu po jednu.

Recimo da želite da dobijete listu svih procesa koji se pokreću na računaru sa imenom "svchost", odnosno želite da se podudarate sa svojstvom Ime proces svchost. Koristite naredbu:

get-process | gdje-objekat ($_.Name -eq “svchost”)

Cmdlet gleda svaki predmet System.Diagnostics.Process, upoređuje .Ime ovaj objekat sa "svchost"; ako ima podudaranja, oni se prikazuju na monitoru. Pogledajte snimak ekrana.

Korak 7: Analizirajte korisne PowerShell komande

Do sada već znate dovoljno da biste mogli oštetiti računar, stoga budite oprezni. Pogledajmo, na primjer, često tražene PowerShell komande.

Ove komande rade samo na Windows 10 i samo kada pokrenete PowerShell kao administrator. Dizajnirani su za ponovnu instalaciju unaprijed instaliranih Windows 10 aplikacija i mogu biti korisni onima koji su prvo deinstalirali te programe, a zatim odlučili da ih vrate. Komande izgledaju ovako:

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -Registrirajte “$($_.InstallLocation)\AppXManifest.xml”)

Ako pokrenete ovu komandu, zanemarite crvena upozorenja i kada se komanda završi, ponovo pokrenite računar; svi prethodno instalirani programi u Windows 10 će se pojaviti na svojim mjestima.

Evo kako ova komanda funkcionira. Get-AppXPackage provjerava sve pakete aplikacija u korisničkom profilu. Čak i ako izbrišete aplikaciju, ona ostaje na listi korisničkih profila.

Cmdlet Get-AppXPackage vraća objekat Ime vrste Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, što uključuje puno ime paket aplikacije i lokaciju odgovarajuće XML manifest datoteke. Ako pokrenete cmdlet get-appxpackage, vidjet ćete dugu listu paketa aplikacija. Snimak ekrana prikazuje opis Xbox aplikacije.

Cmdlet Za svaki petlje kroz svaki objekat AppXPackage tako što ćete ih poslati u cmdlet Add-AppxPackage. Prema dobiti pomoć Za Add-AppxPackage, postoje dva ključna prekidača:

  • Prekidač -Registruj se koji se koristi za registraciju postojećih instalacija aplikacijskih paketa, možete postaviti parametre DisableDevelopmentMode I Registrirajte se
  • Prekidač -DisableDevelopmentMode govori Windows-u da ponovo registruje postojeći paket aplikacija koji je onemogućen, neregistrovan ili oštećen.

linija " $($_.InstallLocation)\AppXManifest.x ml" opisuje gdje se datoteka nalazi manifest.xml. Ako pogledate fajlove AppXManifest.xml, vidjet ćeš složena lista identifikatori aplikacije, izvršne datoteke i veliki broj vizuelnih elemenata povezanih sa aplikacijom.

Nakon ponovnog pokretanja, svi dodani paketi aplikacija se preuzimaju i instaliraju iz Windows Store-a.

Od tada je prošlo više od godinu dana Windows izdanje 7 i Server 2008.

Programeri, sistemski administratori i napredni korisnici pronašli su mnogo načina za korištenje plavog prozora, slično komandnoj liniji.

Većina korisnika početnika čak i ne zna šta je PowerShell (PS).

Ali skripte za PowerShell vam omogućavaju da automatizujete skoro 100% radnji i skripti koje se izvode u operativnom sistemu putem komandne linije i GUI.

Hajde da se upoznamo sa glavnim mogućnostima ovog programa, obraćajući više pažnje na funkciju kreiranja i pokretanja skripti (firmvera).

Postoji bezbroj priručnika i dokumentacije za program, uključujući i ruski. Svrha članka– pružiti korisniku konceptualno znanje, ažurirati, ali vrijedi li se pobliže upoznati s tumačem i izvođenjem skripti u njemu, svatko će odlučiti za sebe.

Šta je Windows PowerShell?

PowerShell– tumač baziran na .NET Framework-u, opremljen sopstvenim skript jezikom.

Prvi znači da radi u tekstualnom režimu: unesete komandu, pokrenete je i na ekranu vidite rezultat njenog izvršenja.

Kao što je to bilo u MS-DOS-u i starijim verzijama UNIX-a.

Drugi značajno pojednostavljuje, ubrzava i automatizuje administraciju i održavanje sistema, aplikacija, procesa i povezanih usluga od strane administratora i običnih korisnika.

U poređenju sa drugim prevodiocima, PS je drugačije:

  • integracija sa – omogućava vam da kreirate moćne skripte uvođenjem u njih programski kod;
  • svi vraćeni podaci su objekti, a ne tekstualni/string podaci, što znači da se prosljeđuju drugim skriptama i obrađuju na bilo koji način.

PowerShell verzija 2 ima sledeće mogućnosti, Pogledajmo neke od njih detaljnije:

  • Sposobnost predstavljanja komandi kao cmdlet-a– pokreću se unutar interpretatora, inače se naredba izvršava u posebnom procesu.
  • Korištenje transportera– dizajnirani su za prijenos podataka s jedne komande na drugu uz zadržavanje njihove strukture i tipa.
  • Integrisani multi-stream prijenos podataka preko mreže sa određivanjem prioriteta i nastavkom veze.
  • Podrška za pozicione i imenovane parametre.
  • Pozadinski radasinhroni poziv komande i pokretanje skripti na udaljenim mašinama.
  • Postavljanje ograničenih sesija sa udaljene klijente i pokretanje skripti na njima.
  • Moduli– način organiziranja skripti kada postanu samodovoljne i izvršavaju se u vlastitom kontejneru bez utjecaja na okruženje modula.
  • Dostupnost rukovaoca greškama.
  • Grafičko okruženje za jezik: sintaksa, debuger, isticanje, automatsko dovršavanje komande sa podrškom za Unicode i bookmarks.
  • Dodavanje tačaka prekida linijama, komande, operacije i varijable za otklanjanje grešaka u skripti.
  • Blokirani i međulinijski komentari.
  • Podrška za kreiranje alijasa za neke cmdlete, koje se pretvaraju u obične naredbe u trenutku izvršavanja.
  • Kreiranje ograničenih sesija, gdje možete izvršiti strogo definiranu listu naredbi i još mnogo toga.

PowerShell izvorni kod dostupan svima: Svaki član zajednice može slobodno kreirati vlastite ekstenzije kako bi povećao funkcionalnost tumača komandne linije.

Možete početi savladavati integrirani skriptni jezik bez ikakvih vještina programiranja.

Malo je vjerovatno da ćete moći stvoriti složeni scenarij, ali gotovo svi će moći izvoditi niz primitivnih radnji.

Iako, bez poznavanja osnovnih koncepata PowerShell-a, malo je vjerovatno da ćete moći bilo što učiniti u prozoru tumača naredbi. Počnimo s njima.

Cmdlets

Cmdlets– neobične PS komande, iza kojih se kriju razne funkcije. Komande ugrađene u interpreter implementirane su na principu glagol-imenica, na primjer Get-Process (dobivanje liste procesa). Ovo rješenje vam omogućava da shvatite suštinu naredbe već iz njenog naziva (na engleski jezik).

Neki cmdleti podržavaju primanje/prenos podataka i nizova informacija uz očuvanje njihove strukture i tipa. Ovo radi na principu transportera (o tome će biti riječi u sljedeći odjeljak). Bez obzira na to, cmdleti se pokreću i obrađuju objekte po redu.

Za implementaciju cmdlet-a, mogu se koristiti svi podržani .NET API-ji kreirani na bilo kojem .NET jeziku.

Tako se korisniku daje pristup određenim funkcijama programa.

Cmdlete mogu dobiti pristup potrebnim informacijama direktno ili putem jedinstvenih putanja (slova pogona i putanje direktorija).

Pomoću cmdlet-a možete raditi sa objektima sistema datoteka i skladišta certifikata, instalirane aplikacije i usluge.

Konvejer

Kada kreirate ne baš primitivne skripte ili da izvršite bilo kakve operacije sa podacima dobijenim kao rezultat skripte, ponekad morate izvršiti i neke radnje.

Za ovo postoji transporter. Kao iu UNIX-u, on kombinuje komande tako što prosleđuje izlaz jednog cmdleta u ulaz drugog, nepromenjen, čuvajući njegov tip.

U ovom slučaju nije potrebno raščlanjivanje informacija po kontejneru ili znak po znak.

Prenesene informacije mogu također uključivati ​​funkciju. Nakon završetka rada kombinovanih naredbi, poziva se funkcija pretvaranja informacija u tekstualni oblik (pretvaranje podataka u nizove) pomoću formatiranja teksta.

Skripte

Unatoč činjenici da vam ljuska omogućava automatizaciju mnogih radnji, naredbe morate unositi ručno, što nije baš zgodno.

Pogotovo kada se iste operacije moraju izvoditi iznova i iznova.

A ne možete bez ljudskog faktora: greške u kucanju, greške, slučajno pritiskanje tastera prilikom pisanja redova koda, ispravljanje ili ponovno kucanje reda zahteva lakši pristup korisniku.

Za obavljanje monotonih lanaca radnji, PS je implementirao skripte - tekstualne datoteke sa nizom komandi unutar koje su razumljive interpretatoru.

Skripte u PowerShell-u dodatno će pojednostaviti i automatizirati rad na PC-u i njegovo održavanje, posebno ako skripta sadrži grane, uslove, logičke operacije i ciklusi.

Ali ovdje “nije zlato sve što blista”: pisanje vlastitog scenarija ili postavljanje gotovog (iako ga malo prilagodite svojim ciljevima) neće ići tako lako.

Ako uMicrosoftbilo je dozvoljeno bez obzira na nevolje napravio skripte zaPowerShell , koju su napisali prevaranti i zlobnici u sebične ili huliganske svrhe.

Da biste pokrenuli na Windows PS, morate proći njegovu kontrolu pokretanja.

Ako ne uspije, a skripta se mora izvršiti, morat ćete promijeniti konfiguraciju objekata odgovornih za sigurnost makronaredbi.

Prije korištenja skripti

Prilikom korištenja VBS-a javljaju se brojni problemi kojih su se PowerShell programeri u potpunosti riješili ako se sigurnost skripte ne smanji da bi se zadovoljili zahtjevi korisnika skripte ili riješili problemi vezani za nivo sigurnosti operativnog sistema.

Pokretanje preuzete skripte na računaru korisnika je jednostavna i efikasna opcija za širenje zlonamernog softvera ili krađu ličnih podataka od strane napadača.

Sve se dešava zbog osnovnog neznanja sadržaja skript fajla (ps1) i želja da brzo riješe svoje probleme na račun rada drugih. Objekti koji kontrolišu nivo sigurnosti izvršavanja skripte stvaraju okruženje u kojem je nemoguće pokrenuti skriptu.

Namjerno pokretanje makronaredbi se dešava nakon promjene nivoa sigurnosti, ako korisnik da zeleno svjetlo, shvati šta radi i sa sigurnošću zna šta se nalazi u *.ps1 datoteci.

Budući da je sigurnosna konfiguracija nezgodna za ljude koji trebaju implementirati i pokrenuti vlastite skripte, moguće je promijeniti konfiguraciju.

Ovdje možete ili smanjiti zaštitu na minimum ili mudro manevrirati između mogućnosti otvaranja rupa za prodor i lakoće rada sa PowerShell-om.

Ljuska ima tri nivoa sigurnosti:

  • fajlovi sa ekstenzijom ps1 nisu identifikovani od strane sistema kao izvršni i označeni su kao nepoznati ili tekstualni (od dvostruki klik otvorite u podrazumevanom uređivaču teksta koji se koristi na računaru);
  • Shell vam omogućava da izvršite skripte nakon što navedete njihovu punu putanju, datoteke skripta u trenutnom direktoriju se ne pretražuju, što onemogućuje izvršavanje makronaredbi koje se nalaze u trenutnom direktoriju;
  • pokretanje ugrađene skripte Politike izvršavanja, odgovoran za dodavanje tražene na listu dozvoljenih skripti.

Nemojte ni razmišljati o promjeni konfiguracije, spuštajući ga barem na drugi nivo, bez upoznavanja sa osnovamaPowerShelldok ne počnete barem površno razumijevati sadržaj *.ps1.

Tu je i koncept politike izvršavanja, kreiran da spriječi slučajno izvršavanje skripti. Postoji pet postavki politike pokretanja:

  • ograničeno – podrazumevano instalirane, izvršavaju se samo skripte koje je potpisao Microsoft, što vam omogućava da dobijete informacije o hardverskoj i softverskoj ljusci računara;
  • sa potpisom izbrisane datoteke – možete izvršiti sve makroe, ali datoteke koje se šalju poštom moraju biti potpisane;
  • vlasništvo digitalni potpis iz pouzdanog izvora– sve potpisane skripte se izvršavaju;
  • neograničeno– pokrenite sve makroe;
  • zaobići– namenjen programerima koji stvaraju sopstveni sistem sigurnost umjesto korištenja onog koji se nalazi u ljusci.

Provjeri Trenutna drzava Politike izvršenja mogu se kreirati pomoću naredbe “Get-ExecutionPolicy”.Bez obzira na sigurnosnu politiku, korisnik neće moći pokrenuti skriptu koja sadrži komande za koje nema dovoljno privilegija da ih izvrši.

Pokretanje PowerShell-a

Vrijeme je da pređemo s teorije na praksu. Dakle, za izvršavanje skripte potrebno je da dobijete digitalni potpis ili (druga opcija je jednostavnija).

Postoji nekoliko načina da otvorite PowerShell prozor.

Predstavlja se u dva oblika:

  • klasična konzola;

  • PowerShell ISE - dodaje podršku za tabove, sintaksu, kontekstualnu pomoć, kontekstualne i glavne menije, što uvelike olakšava rad u interpretatoru.

Počni

Najlakši način da pozovete PS je preko Start.

  1. Otvorite meni(u Windows 7 kliknite na „Svi programi“).
  2. Idite u Windows PowerShell direktorij i kliknite na željenu ikonu.

Rice. 6 – Pokrenite PS kroz dijalog “Run”.

Win+X

U Windows 10, PS se može pozvati iz WinX menija. Činjenica je da je po defaultu klikom na naredbu "komandna linija" otvorite CMD. Može se zamijeniti PowerShell-om.

Otvorite “Svojstva” na traci zadataka, na kartici “Navigacija” stavite kvačicu pored jedine opcije i sačuvajte postavke.

PowerShell možete pozvati kroz komandnu liniju tako što ćete u njega napisati "powershell" ili pokrenuti izvršnu datoteku duž putanje: %WINDIR%\ System32\ WindowsPowerShell\v1.0 za 32-bitne sisteme i na %WINDIR%\ syswow64\ WindowsPowerShell\v1.0 za 64-bitni Windows bilo kojeg izdanja.

Rice. 8 – Pokrenite PS iz direktorija u kojem je pohranjena njegova izvršna datoteka

Naučite PowerShell - knjige i resursi

Ovaj članak otvara seriju postova posvećenih PowerShell. Da, vrijeme je za komandnu liniju!

Ukratko - šta je PowerShell?

  • PowerShell - ljuska komandne linije
  • PowerShell komande se izvršavaju u cjevovodu
  • PowerShell okruženje se može proširiti kako bi vam omogućilo korištenje razne tehnologije
  • i što je najvažnije, savladavanje PowerShell-a će vas učiniti boljim administratorom.

Zašto PowerShell?

Dvije tačke su vrijedne pažnje. Prije svega, PowerShell sadrži skriptni jezik; Ovo je vrlo kompaktan jezik, koji sadrži samo dvadesetak ključnih riječi. Ali u stvari, PowerShell, kao što je gore spomenuto, je shell komandne linije, slično kao cmd.exe ili UNIX Bash shell.

Druga stvar: Microsoft ne ohrabruje praksu korištenja GUI konzola na serverima. Činjenica je da serveri mogu da obezbede efikasno funkcionisanje grafičkih interfejsa samo na račun degradiranja performansi servera. Ali korištenje GUI na klijentima, čak i ako su ti klijenti povezani sa serverom, i danas je savršeno prihvatljivo. Da u novim verzijama Windows Server sve funkcije su dostupne prije svega pomoću PowerShell-a, a tek onda (a neke uopće nisu dostupne) korištenjem GUI servera.

PowerShell možete preuzeti sa TechNet web stranice - ali u modernim MS Winodws operativnim sistemima dostupan je iz kutije.

Kako bih vam olakšao početak učenja Windows PowerShell-a, predstavljam vam izbor različitih materijala. Započnimo listu s video kursom iz 2009. godine:

  • Pišemo prvu skriptu i upoznajemo se sa Windows PowerShell-om

Internet resursi:

  • Ovladavanje PowerShell-om - powershell.com

Programi:

  • Pregledač skripti za Windows PowerShell ISE. Ovaj dodatak vam omogućava da lako pronađete potrebne skripte u TechNet centru za skripte na osnovu određenih kriterijuma i parametara. Pored toga sadrži specijalni modul Script Analyzer, koji nakon analize predlaže poboljšanja/promjene koje povećavaju efikasnost napisanog skripta. Ovaj modul je dostupan kao dio Windows PowerShell ISE koji je dio Windows OS-a. Kvaka je u tome što Windows Server i PowerShell ISE zahtijevaju aktivaciju. Sama licenca je plaćena, ali ne očajavajte. Imat ćete oko 180 dana da isprobate ovaj proizvod.
  • Dell PowerGUI - Omogućuje vam da pojednostavite sastavljanje vlastitih PowerShell skripti jednostavnim odabirom potrebnih cmdlet-a koji su prikladni za vaš zadatak i prevlačenjem u na pravim mestima. Idealno za one koji su novi u PowerShell-u, ali imaju osnovno razumijevanje koncepata. PowerGUI je uređivač jednostavan za korištenje koji će vjerovatno poboljšati vaše razumijevanje sklapanja složenijih i naprednijih skripti, posebno ako informacije najbolje naučite vizualno.

Jedan od najosnovnijih izvora znanja je odlična pomoć programa:

Hope ovu listu resursi će vam pomoći u učenju PowerShell. Koje ste knjige i ideje koristili? Ostavite svoj odgovor u komentarima i sretno u savladavanju novih znanja! 😉

Postoje stvari koje radimo svaki dan kao administratori. Windows mreža, ali kada bi se od nas tražilo da ih radimo pomoću komandne linije, za razliku od Linux administratora, to bi bilo prilično problematično za nas Windows administratore. Windows je uvijek bio slab kada su u pitanju alati komandne linije. Po mom mišljenju, sve se promijenilo pojavom Windows Powershell-a. Koristeći Powershell (ili na neki drugi način PS) možete učiniti mnogo toga razne funkciješto ranije nismo mogli. U ovom članku ćemo se fokusirati na to kako nam Powershell može pomoći da izvršimo neke uobičajene mrežne funkcije iz komandne linije. Nastavite čitati da saznate više!

Šta je Powershell?

Powershell se može instalirati funkcija Windows Server 2008: Da biste instalirali Powershell, morate instalirati Powershell funkciju pomoću čarobnjaka za dodavanje funkcija. Proces instalacije traje oko minut, a kada se komponenta instalira, imate pristup nevjerovatnom jeziku za skriptiranje komandne linije. Za razliku od drugih skriptnih jezika na Windowsu, Powershell je dizajniran isključivo za administratore sistema. Powershell koristi .NET i komande ("cmdlets" ili "command-lets") za rad. Kao korisnik PS-a, možete koristiti komande pojedinačno ili ih ulančavati zajedno za obavljanje složenijih zadataka.

Nakon što instalirate PS, moći ćete pokrenuti Start -> Svi programi -> Windows Powershell 1.0 i pritisnite Windows PowerShell. U ovom trenutku, trebali biste vidjeti plavi CLI prozor koji izgleda kao na slici 1.

Slika 1: Windows Powershell komandni prozor

Uvijek možete reći da radite u Powershell-u jer prozor "PS" uvijek ima sljedeći red na početku:

PS C:\Korisnici\Administratori

Sada je taj powershell instaliran i prozor je otvoren, dozvolite mi da vam pokažem neke uobičajene zadatke umrežavanja koji se mogu obaviti u PS-u.

Navedite IP adrese vašeg servera

Da biste dobili listu IP adresa na vašem Windows 2008 Serveru, trebate koristiti sljedeću naredbu:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE - ComputerName . | Select-Object -Property IPAddress

Ovako izgledaju podaci nakon upotrebe ove komande na mom Windows 2008 Serveru:

Slika 2: Navođenje IP adresa pomoću Windows Powershell-a

Kao što možete vidjeti sa slike, izvorni podaci nam pokazuju da imam jedan adapter sa IP V4 adresom i IP V6 adresom na ovom Windows 2008 Serveru. Samo po sebi, ovo nije ništa iznenađujuće, ali razmislite o tome šta možete učiniti s njim koristeći druge funkcije skriptiranja.

Kako nas uči rukovodstvo powershell korisnici, rezultirajući podaci su niz i IP adresu možete vidjeti samo slanjem ovih podataka na "Select-Object" (nakon onemogućavanja IPV6), otprilike ovako:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE - ComputerName . | Select-Object -ExpandProperty IPAddress

Slika 3: Lista IP adresa SAMO sa Windows Powershell-om

Dobivanje liste konfiguracije mrežnog adaptera pomoću Powershell-a

Da vidite osnovnu konfiguraciju vašeg mrežnog adaptera, možete koristiti sljedeću naredbu:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE "ComputerName .

Iako je ovaj članak fokusiran na korištenje PS-a na Windows Server 2008, uslužni program se također može koristiti na Windows XP, Vista ili Server 2003. Evo primjera izlaza iz komande koja se izvodi na mom radna stanica Windows XP:

Slika 4: PowerShell prikazuje konfiguraciju mrežni adapter na Windows XP

Testirajte anketu na računaru koristeći PowerShell

Iako PS Command Prompt i dalje može pokrenuti sve uobičajene Windows komande (poput testnog anketiranja), snaga Powershell-a je u tome što možete uzeti podatke koje primite i promijeniti ih s lakoćom.

Evo primjera kako se to može učiniti, a koji se nalazi u korisničkom vodiču za Windows Powershell. Ovaj primjer analizira rezultate Win32_PingStatus koristeći Select-Object. U ovom slučaju, podaci jednostavno pokazuju vrijeme odgovora i statusni kod.

Evo naredbe koja je korištena:

Get-WmiObject -Class Win32_PingStatus -Filter "Adresa="127.0.0.1"" - ComputerName . | Select-Object -Adresa svojstva,ResponseTime,StatusCode

A evo i rezultata korišćenja komande na mom Windows računaru:

Slika 5: PowerShell podaci koji prikazuju status ankete analiziran pomoću Select-Object

Podijelite folder koristeći Windows Powershell

Biću iskren prema vama. Korištenje Powershell komandi nije uvijek tako jednostavno kao korištenje postojećih Windows komandi s kojima ste već upoznati. Evo primjera.

Sljedeća PS komanda će podijeliti mapu u C:\temp kao "davidtemp" i primijeniti odličnu naredbu na nju:

(Get-WmiObject -List -ComputerName . | Where-Object -FilterScript ($_.Name -eq "Win32_Share")).InvokeMethod("Create",("C:\temp","davidtemp",0.25, "David's Temp folder"))

S druge strane, možete jednostavno koristiti već isprobanu naredbu neto udio:

Net share davidtemp=C:\temp /remark:"Davidov Temp Shared Folder"

Slika 6: PowerShell podaci i tradicionalni net komanda dijeliti

Imajte na umu da naredba Powershell ne samo da nije radila, već mi je donijela strašnu grešku. Isprobao sam ovu naredbu na Windows XP i Vista i bio sam administrator sistema.

S druge strane, tim neto udio vrlo jednostavno i uspjelo je iz prvog pokušaja. I dok pokušavam da vas provedem kroz osnove Powershell-a, ne zaboravite da Powershell može koristiti tradicionalne Windows mrežne komande, koje su u mnogim slučajevima mnogo lakše za korištenje. Međutim, možete se naći u situaciji u kojoj ove tradicionalne komande ne rade sve što vam je potrebno, i tu vam Powershell dolazi u pomoć.

Druge mreže i složenije komande

Ako ćete koristiti samo najosnovnije naredbe mrežnog administratora u Powershell-u, vjerovatno ćete se zbuniti i nećete ih više koristiti jer, kao i svaki drugi skriptni jezik, postoji krivulja učenja.

Međutim, kada savladate krivulju učenja i naučite da koristite jezik, imat ćete alat koji je vrlo efikasan i može vam uštedjeti vrijeme.

Kao što ste možda primijetili iz prethodnih primjera, jedan od parametara za većinu Powershell komandi je "ime računala". Kada stavimo tačku (".") umjesto imena računara, to će biti localhost(naš računar). Međutim, također možemo zamijeniti bilo koju IP adresu ili ime Windows računar u domenu, što nam daje mogućnost da koristimo ove komande ne samo na našem računaru, već i da kreiramo moćne skripte u Powershell-u koje se mogu koristiti na svim računarima u mreži.

Na primjer, evo naredbe koja prenosi IP adresu Dell računara preko LAN-a:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE - ComputerName DELL9400

Evo rezultata ove naredbe:

Slika 7: Powershell rezultati dobijanja IP adrese sa udaljenog računara

A evo i veće slike koja pokazuje potrebne informacije:

Slika 8: Uvećavanje prozora Powershell rezultata za dobijanje IP adrese udaljenog računara

Dakle, sposobnost rada sa udaljenim računarima je glavna karakteristika Powershell-a, ali još jedna moćna karakteristika je mogućnost filtriranja podataka i kombinovanja podataka dobijenih upotrebom različitih komandi.

Pogledaj sljedeći primjer:

"127.0.0.1","localhost","research.microsoft.com" | ForEach-Object -Process (Get-WmiObject -Class Win32_PingStatus -Filter ("Adresa="" + $_ + """) -ComputerName .) | Select-Object -Adresa svojstva,ResponseTime,StatusCode

U ovom primjeru dobijena je lista IP adresa i imena domena. Ova lista je proslijeđena "ForEach-Object". Za svaki od ovih „objekata“ (IP adresa / imena domena), korišten je element PingStatus "Get-WmiObject". Podaci test ankete za svaki naziv domene su zatim provođeni kroz "Select-Object", što je rezultiralo prikazivanjem samo adresa, vremena odgovora i statusnih kodova.

Slika 9: Testirajte anketu koristeći listu prilikom kombinovanja i anketiranja podataka

Po mom mišljenju, ovaj primjer pokazuje neke od mogućnosti Powershell-a. Kao što vidite, možete usmjeriti i preusmjeriti ulaz i izlaz u različitim smjerovima kako biste postigli svoje administrativne ciljeve.

Šta još trebate znati?

Zaključak

Windows Powershell je vrlo moćan uslužni program. Nemoguće je u ovom članku opisati sve što možete učiniti koristeći Powershell, ali se nadam da sam mogao da vam dam opštu sliku o mogućnostima ovog uslužnog programa i da vas inspirišem za dalja istraživanja u ovoj oblasti. Svaki dan postoje nove knjige, kursevi i mnogo materijala na Internetu o Powershell funkcijama koje mogu koristiti administratori Windows sistema. S obzirom da su Windows administratori tako vezani za GUI, biće potrebno vrijeme da Powershell usvoje kompanije koje nemaju hitnu potrebu za alatom. Siguran sam da će administratori koristiti Powershell za kreiranje kraćih skripti koje mogu obavljati složenije zadatke. Nadam se da će Powershell postati sve popularniji širom svijeta!

Posebno se zahvaljujemo Microsoftu na pružanju primjera komandi u dokumentaciji Windows Powershell korisničkog vodiča.

U ovom članku ćemo pogledati takvu tehnologiju iz Microsofta kao što je Windows PowerShell, razgovaraćemo o tome šta je PowerShell, šta su cmdleti i cevovod, kako pisati skripte i module, a takođe ćemo se dotaknuti drugih jednako važnih i korisne karakteristike Windows PowerShell.

Šta je doprinelo nastanku Windows PowerShell-a?

Prije PowerShell-a postojali su ( i postoje) sljedeće alate za automatizaciju i administriranje usluga: Windows komandna linija i Windows skripta Domaćin. Ali ove tehnologije imaju nedostatke.

Windows komandna linija također ima mogućnost obavljanja nekih administrativnih zadataka i mogućnost snimanja algoritma radnji, čuvajući ga kao skriptu (bat fajl), dok možete koristiti određene programske elemente, na primjer, koristiti varijable, kondicionale pa čak i nešto poput ciklusa.

Većina softverskih proizvoda ima interfejs konzole, tj. možemo kontrolisati program pomoću komandne linije, uz uštedu resursa zbog odsustva troškova pokretanja grafičkog interfejsa. Microsoft čak izdaje izdanja bez grafičkog interfejsa za operativni sistem Windows Server servera ( Server Core Windows Server 2016 čak ima i Nano server), ali sve to nije dovoljno, jer su mogućnosti komandne linije ograničene, tj. Nećemo moći da napišemo neku složenu logiku da nešto automatizujemo, a čak i ako možemo, biće potrebno vreme i znanje.

Također nedostatak komandne linije je to za potpuno upravljanje server koji koristimo različite uslužni programi konzole softverskih proizvoda, pa je stoga korištenje komandne linije za administraciju zapravo teško, sa stanovišta činjenice da svi ovi uslužni programi imaju različitu sintaksu, parametre, metode korištenja i kako bi se izvršili tipični zadaci, tj. svakodnevno, sve ovo morate držati u memoriji, a za obavljanje netipičnih zadataka prvo morate pročitati pomoć ili dokumentaciju.

Windows Script Host tehnologija vam omogućava da sve administrativne zadatke obavljate kao komandna linija, uključujući njihovu automatizaciju pisanjem WSH skripti, ali ovdje već možemo koristiti punopravne programske jezike ( VBScript i JScript), tj. mogu se implementirati složena logika i algoritmi. Osim toga, uz pomoć WSH-a upravljamo softverskim proizvodima preko objektnog interfejsa, drugim riječima, Windows Script Host je mnogo više “ hladnjak» nego komandna linija. Ali ova tehnologija takođe nije postala idealan alat za administriranje i automatizaciju ove administracije za sistem administratore, jer je Windows Script Host zahtevao poznavanje gore navedenih programskih jezika, što je zapravo suvišno za sistem administratore. Administratorima je potreban samo jednostavan administrativni alat sa mogućnošću da programiraju neke radnje i uđu dublje u njih objektni modeli Oni ne žele softverske proizvode na VBScript i JScript programskim jezicima.

Kao rezultat, Microsoft je morao da razvije administrativni alat za sistem administratore koji bi 100 posto zadovoljio sve potrebe sistem administratora, kako u pogledu mogućnosti administracije i automatizacije, tako i u smislu pogodnosti i lakoće korišćenja, tako se pojavio Windows PowerShell.

Šta je Windows PowerShell?

Windows PowerShell je Windows skriptni jezik i komandna školjka dizajnirana za administraciju i konfiguraciju Windows operativnih sistema. PowerShell je izgrađen na vrhu CRL okvira i .NET Framework-a, a za razliku od komandne linije, koja prihvata i vraća tekst, Windows PowerShell radi sa objektima. Svaki objekat u PowerShell-u ima svojstva i metode koje možete koristiti za manipulisanje tim objektima.

U Windows PowerShell-u, Microsoft je razvio koncept cmdlet-a ( cmdlete), što je sistem imenovanja naredbi " Glagol-imenica». Ovaj sistem omogućava administratorima sistema da brzo savladaju i pojednostave svoj rad sa PowerShell-om.

Uz Windows PowerShell možete:

  • Pristup sistemu datoteka;
  • Upravljanje registrom;
  • Upravljanje uslugama;
  • Upravljanje procesima;
  • Konfigurišite operativni sistem;
  • Instalirajte softver;
  • Instalirajte uloge i komponente servera;
  • Administriranje i konfigurisanje uloga i komponenti servera;
  • Pisati i koristiti skripte za automatizaciju upravljanja i administracije;
  • Obavljajte druge zadatke administratora sistema.

Windows PowerShell sadrži mnoge često korišćene uslužne programe i komande koje možete pokrenuti iz komandne linije, kao što su ipconfig, ping i drugi. Ovo je učinjeno kako bi se olakšao prelazak sistemskih administratora sa komandne linije na PowerShell.

Takođe, radi praktičnosti, mnoge često korišćene komande i uslužni programi u PowerShell-u imaju sinonime ( Alias), na primjer cls je sinonim za Clear-Host cmdlet, dir je sinonim za Get-ChildItem ( potpuna lista sinonima može se vidjeti pokretanjem Get-Alias ​​cmdleta).

Da bi pojednostavio pretragu željene komande, PowerShell ima posebnu cmdlet Get-Command, pomoću koje možete pretraživati ​​i po glagolu i po imenici. Sve komande u Windows PowerShell-u grupisane su u module ( npr. Hyper-V, NetTCPIP), što takođe olakšava pronalaženje prave komande.

Nakon što je tražena naredba pronađena, možete pogledati upute za rad sa ovom komandom, tj. pomoć, postoji poseban Get-Help cmdlet za ove svrhe, na primjer sljedeća naredba će pokazati pomoć za Get-Command cmdlet:

Get-Help Get-Command

Pomoć u Windows PowerShell-u može biti kratka, detaljna ( parametar -Detaljno), pun ( parametar -Puna), a možete prikazati i samo primjere ( parametar - Primjeri). Sljedeća naredba će prikazati samo primjere korištenja Get-Command cmdleta:

Get-Help Get-Command -Primjeri

PowerShell pomoć je ažurirana, tj. može se ažurirati naredbom Update-Help.

Windows PowerShell verzije

Prva verzija PowerShell-a 1.0 pojavila se 14. novembra 2006. i izdata je kao posebna distribucija koja se mogla instalirati na sljedeće verzije Windows operativnih sistema: Windows XP servisni paket 2, Windows Server 2003 servisni paket 1 i Windows Vista.

U Windows Serveru 2008, PowerShell 1.0 je došao kao komponenta koja je takođe morala biti instalirana.

Počevši od Windows 7 i Windows Server 2008 R2, PowerShell dolazi kao integralna komponenta sistema ( one. unapred instaliran, nema potrebe da ga instalirate). Ispod je tabela korespondencije između verzije PowerShell-a i verzije operativnog sistema Windows ( one. koja verzija PowerShell-a je instalirana prema zadanim postavkama na kojoj verziji Windows-a):

PowerShell verzija Windows verzije
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

Sa svakom novom verzijom PowerShell-a postaje sve više i više moćan alat administracije, poređenja radi, prvi PowerShell je imao oko 130 cmdleta, a u PowerShell 5.0 ih ima već više od 600!

Znati trenutna verzija PowerShell može koristiti svojstvo PSVersion ugrađene varijable $PSVersionTable, na primjer, pokrenite sljedeću naredbu:

$PSVersionTable.PSVersion

Ili pokrenite cmdlet

Get-Variable -Name PSVersionTable –ValueOnly

gdje će vrijednost PSVersion biti PowerShell verzija.

PowerShell jezik

PowerShell je objektno orijentirani skriptni programski jezik. Koristi se za pisanje komandi za kontrolu svih komponenti Windows operativnog sistema Windows shell PowerShell, kao i za pisanje skripti za automatizaciju administrativnih zadataka u integrisanom okruženju Windows skripte PowerShell (ISE). Iako je PowerShell jezik kreiran za administrativne zadatke, on je punopravni programski jezik za skriptiranje, budući da ima programske konstrukcije koje su prisutne u svakom programskom jeziku, kao što su: uslovi, petlje, rukovanje greškama, rad sa varijablama, objektima i nizovi.

PowerShell jezik ima jedinstvenu sintaksu za pisanje naredbi i strukturu imenovanja za ove komande zasnovanu na principu “ Glagol-imenica", šta on radi dati jezik intuitivno i za programere i za sistem administratore.

Windows PowerShell

Windows PowerShell je okruženje za izvršavanje naredbi i skripti u PowerShell-u. Ova školjka ima iste mogućnosti kao i komandna linija, kao što su: pohranjivanje historije izvršenja naredbi, prilagođavanje izgleda ljuske, dovršavanje izvršavanja naredbe kombinacijom tipki Ctrl+C, kao i mnoge druge mogućnosti koje nisu u komandnoj liniji ljuska, na primjer tako divna karakteristika kao što je " isticanje sintakse» ( uveden u PowerShell 5.0).

Postoji nekoliko načina za pokretanje PowerShell-a, na primjer:

  • Iz komandne linije upisivanjem PowerShell;
  • Kroz dijaloški okvir " Izvrši» ( prečica na tastaturi Win+R), takođe kucajući PowerShell;
  • U Windows 7 - Start->Svi programi -> Pribor -> Windows PowerShell -> Windows PowerShell;
  • U Windows 8.1 ili Windows Server 2012 R2 - Start->Svi programi -> Sistemski alati -> Windows PowerShell;
  • U Windows 10 ili Windows Server 2016 - Start->Svi programi -> Windows direktorij PowerShell( u grupi W) -> Windows PowerShell.

Primjer pokretanja PowerShell-a u Windows Serveru 2016

Snimak ekrana PowerShell-a u Windows Serveru 2016

Komande u PowerShell-u

Cmdlet (cmdlet) - Ovo Windows tim PowerShell, sa kojim možete komunicirati sa objektima operativnog sistema kako biste njima upravljali. Ove naredbe su dio jezika PowerShell. Cmdleti su izgrađeni po principu “ Glagol-imenica", odvojeno crticom (-); drugim riječima, prvo označavamo šta treba učiniti, a crticom označavamo šta treba učiniti. Na primjer, Get-Help cmdlet, gdje je Get glagol koji znači " Get", a pomoć je imenica " Upomoć"u kontekstu PowerShell-a" Prikaži – Pomoć" PowerShell cmdlet komande vraćaju rezultate kao objekte, što je jedna od glavnih razlika u odnosu na Windows komandnu liniju, u kojoj komande vraćaju samo tekst na ekran.

Pored cmdlet-a za dobijanje podataka (Get), postoje i tipovi cmdlet-a kao što su:

  • Dodaj – dodavanje podataka;
  • Jasno – jasno;
  • Omogućiti – omogućiti;
  • Onemogućiti – isključiti;
  • Novo – kreiraj;
  • Ukloniti – ukloniti;
  • Set – set;
  • Start - start;
  • Stop – stop;
  • Izvoz – izvoz;
  • Uvoz – uvoz;
  • I još mnogo toga.

Potpuna lista cmdlet-a u Windows PowerShell-u može se vidjeti pomoću posebnog Get-Command cmdleta. Na primjer, pokrenite ga s parametrom cmdlet -CommandType, kao rezultat, lista cmdlet-a će biti prikazana na vašem ekranu.

Get-Command -CommandType cmdlet

Kao što ste već shvatili, cmdlet-i imaju parametre pomoću kojih možemo specificirati akcije cmdlet-a. Parametri mogu biti obavezni ili opcioni; na primjer, Get-Command cmdlet nema potrebne parametre.

Slika ispod pokazuje način traženja cmdleta po glagolu ( Glagolski parametar). U ovom slučaju, prikazali smo listu cmdlet-a koji mogu ponovo pokrenuti nešto.

Tim

Get-Command -Glagol Restart

Da biste tražili cmdlet po imenici, morate koristiti parametar Noun. Na primjer, ispod imamo listu cmdlet-a koji rade sa uslugama.

Tim

Get-Command -Noun Service

Ako ne pronađete željeni cmdlet pod punim imenom, možete koristiti masku u *Text* formatu.

Pipeline u PowerShell-u

Jedna od glavnih karakteristika Windows PowerShell-a je mogućnost korišćenja cevovoda prilikom izvršavanja komandi.

Konvejer– ovo je prijenos rezultata cmdleta preko vertikalne trake (|) na drugi cmdlet. U isto vrijeme, kao što se sjećate, u PowerShell cmdletima rade s objektima i vraćaju objekte; u skladu s tim, objekti se također prenose duž cjevovoda.

Uz pomoć pokretne trake možete obavljati složene zadatke u jednostavnom i na zgodan način bez potrebe za pisanjem složenih algoritama i skripti.

Na primjer, hajde da saznamo ime najveće datoteke u direktoriju "C:\Windows\System32" ( jednostavan primjer cjevovoda).

Tim

Get-ChildItem -Path "C:\Windows\System32" -File | Sortiraj-Dužina objekta -Descending | Odaberite-Objekat-Prvi 1

  • Get-ChildItem – cmdlet za dobivanje objekata u navedenom direktoriju;
  • Sort-Object je cmdlet za sortiranje objekata, u našem slučaju sortiramo po veličini datoteke ( dužina - silazna);
  • Select-Object je cmdlet za odabir željenih svojstava objekta; u našem slučaju prikazujemo standardna polja i samo prvi objekt, tj. veliki fajl ( parametar -Prvi 1).

Svi cmdleti su međusobno odvojeni okomitom trakom. Rezultat svakog cmdleta se prosljeđuje kao ulaz u drugi cmdlet, tj. prvo dobivamo sve objekte u navedenom direktoriju, zatim sortiramo rezultat i na kraju odabiremo prvi objekt.

Pozadinsko izvršavanje zadataka

Windows PowerShell ima mogućnost pokretanja poslova u pozadini, što je mehanizam pomoću kojeg možete pokrenuti naredbu ( na primjer, za koji je potrebno mnogo vremena da se završi) V pozadini, tj. nakon pokretanja, vraćate se na trenutnu sesiju i možete nastaviti sa radom bez čekanja da se naredba završi. Ova prilika Trebat će vam kada treba da pokrenete naredbu za koju je potrebno dosta vremena da se završi, a kao što znate, za to vrijeme je PowerShell sesija blokirana dok se naredba ne završi, a vi morate nastaviti sa radom.

Možete upravljati svim zadacima koji se izvršavaju u pozadini, na primjer, pregledati listu zadataka, zaustaviti zadatak, izbrisati zadatak i, naravno, pogledati rezultat zadatka.

Windows PowerShell ima sljedeće cmdlete za rad sa poslovima u pozadini:

  • Start-Job – pokretanje pozadinskog zadatka;
  • Stop-Job – zaustavi pozadinski zadatak
  • Get-Job – pogledajte listu pozadinskih zadataka;
  • Receive-Job – pogledajte rezultat pozadinskog zadatka;
  • Remove-Job – uklanjanje pozadinskog zadatka;
  • Wait-Job – prenesite pozadinski zadatak na prednji plan, kako bi se čekao njegov završetak.

Da biste radili u pozadini, potrebno je da napišete naredbu Start-Job, au vitičastim zagradama () komandu ili skup naredbi koje želite pokrenuti u pozadini.

Na primjer, pokrenimo neki zadatak ( prikaži listu usluga) u pozadini, zatim pogledajte listu pozadinskih poslova i prikažite rezultat našeg posla ( one. spisak usluga).

Pokrenite zadatak u pozadini

Start-Job (Get-Service)

Gledamo listu zadataka koji se izvršavaju u pozadini

Prikaz rezultata Job1

Posao primanja1

Kao što vidite, sada imamo zadatak sa statusom “ Završeno“, tj. već je završeno ( Get-Service jednostavno radi brzo).

Da biste vidjeli rezultat pozadinskog zadatka, tj. Get-Service cmdlet, izvršili smo naredbu Receive-Job i prenijeli joj ime posla ( moguća je i vrijednost identifikatora). Kao rezultat toga, prikazali smo listu usluga.

Daljinsko upravljanje pomoću PowerShell-a

Windows PowerShell nije dizajniran samo za lokalna upotreba, ali i za daljinsko izvršavanje naredbi. Ova funkcija je neophodna kako biste mogli da kontrolišete udaljene računare sa svog radnog mesta, tj. pokrenite PowerShell komande.

Postoji nekoliko metoda daljinskog upravljanja:

  • Korištenje parametra –ComputerName (mnogi timovi ga imaju). Drugim riječima, kao parametar prosljeđujete ime računara na kojem želite da izvršite naredbu. Ovaj metod ima nedostatak što je ograničen na izvršenje jedne komande;
  • Korištenje sesija. Cmdlet Enter-PSSession (interaktivna sesija). Na ovaj način se povezujete na udaljeni računar i sve komande koje ćete ukucati PowerShell, će se izvršiti na udaljenom računaru na isti način kao da kucate komande direktno na udaljenom računaru. Metoda takođe ima nedostatak što je sesija ograničena na jedan računar;
  • Korištenje cmdleta Invoke-Command. Koristeći ovu metodu, možete pokrenuti komande ili skripte na jednom računaru ili na nekoliko.

Na primjer, za povezivanje na udaljeni računar ( u primjeru ispod Ime servera) u interaktivnoj sesiji, pokrenite sljedeću naredbu:

Unesite-PSSession ServerName

Skripte, funkcije i moduli u Windows PowerShell-u

Ako ste napisali algoritam, najvjerovatnije ćete željeti da ga sačuvate kako biste ga koristili u budućnosti. Windows PowerShell ima mehanizam za skriptiranje za ovu svrhu.

Suština ovog mehanizma je sljedeća: napišete skup naredbi koje su vam potrebne i spremite ga kao skriptu - ovo je jednostavan tekstualni fajl sa ekstenzijom .PS1.

Zatim, da biste pokrenuli ovu skriptu, jednostavno je pokrenite u PowerShell-u. U ovom slučaju, trebate ili navesti punu putanju do datoteke skripte ili otići u direktorij sa skriptom i pozvati je po imenu.

Bitan!

Podrazumevano, pokretanje skripti na Windows-u je zabranjeno! Da vidite politiku izvršavanja skripte, pokrenite cmdlet Get-ExecutionPolicy. Kao rezultat, vratit će trenutnu politiku, na primjer:

  • Ograničeno – izvršenje bilo koje skripte je blokirano ( zadana vrijednost);
  • AllSigned – dozvoljeno je izvršavanje skripti koje imaju digitalni potpis;
  • RemoteSigned - izvršenje je dozvoljeno lokalna pisma, sve preuzete skripte moraju biti digitalno potpisane;
  • Neograničeno - izvođenje bilo koje skripte je dozvoljeno ( ne preporučuje se jer nije bezbedno!).

Da biste omogućili pokretanje skripti, morate koristiti cmdlet Set-ExecutionPolicy sa jednim od gore navedenih parametara.

Na primjer, da biste dozvolili pokretanje lokalnih skripti, pokrenite sljedeću naredbu i prihvatite promjene pritiskom na Y.

Set-ExecutionPolicy RemoteSigned

Možete proslijediti parametre skripti, učiniti ih obaveznim ili postaviti zadanu vrijednost.

Windows PowerShell pruža mehanizam za kreiranje vlastitih funkcija, koje se, poput ugrađenih cmdleta, mogu koristiti u ljusci PowerShell.

Da biste to uradili, morate navesti ključna riječ Funkcija, a zatim u vitičaste zagrade () napišite algoritam za ovu funkciju, tj. skup komandi ( na primjer, neka često korištena procedura: kreiranje korisnika s određenim pravima, čišćenje određenih direktorija, itd). Zatim sve ovo treba da snimite u skriptu, ali samo sa ekstenzijom .psm1, pošto će ovaj fajl već biti modul.

To nije sve, ova datoteka mora biti smještena u direktorij gdje PowerShell traži module. Postoji nekoliko takvih direktorija ( poseban direktorij u korisničkom profilu, direktorij u kojem je instaliran PowerShell), mogu se vidjeti u varijablama okruženja PowerShell. Da biste to učinili, pokrenite sljedeću naredbu

Get-ChildItem Env:\PSModulePath | Format-Table -AutoSize

Jednom kada stavite modul koji ste napisali u poseban direktorij, možete pristupiti svojim funkcijama kao normalne PowerShell komande.

Windows PowerShell integrisano okruženje za skriptovanje (ISE)

Kako bi bilo zgodno pisati skripte, funkcije i, shodno tome, module, Microsoft kompanija razvio specijal grafički program Integrirano okruženje za pisanje skripti(ISE) - Integrisano okruženje za pisanje skripti. Veoma je zgodno raditi u ovom programu, a ima i moćnu funkcionalnost ( kreiranje više kartica sa skriptama, izlazno područje, ugrađeni program za otklanjanje grešaka i još mnogo toga).

Možete ga pokrenuti ovako:

  • U operativnom sistemu Windows 7 - Start->Svi programi ->Pribor ->Windows PowerShell -> Windows PowerShell ISE;
  • U Windows 10 ili Windows Server 2016 - Start->Svi programi -> Windows PowerShell direktorij ( u grupi W) -> Windows PowerShell ISE.

Bilješka! ISE neće raditi Windows sistem Server instaliran u verziji Server Core.

Snimak ekrana PowerShell Integrated Scripting Environment (ISE) u Windows Server 2016

To je sve za mene, nadam se da vam je materijal bio koristan! Sretno!

Najbolji članci na ovu temu