Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci

Dina sajarahna, utilitas garis paréntah dina sistem Unix langkung saé dikembangkeun tibatan Windows, tapi kalayan munculna solusi énggal, kaayaan parantos robih.

Windows PowerShell ngamungkinkeun pangurus sistem pikeun ngajadikeun otomatis seueur tugas rutin. Kalayan éta, anjeun tiasa ngarobih setélan, ngeureunkeun sareng ngamimitian jasa, sareng ogé ngalaksanakeun pangropéa dina kalolobaan aplikasi anu dipasang. Ieu bakal salah mun ngarasa jandela biru salaku juru paréntah sejen. Pendekatan ieu henteu ngagambarkeun hakekat inovasi anu diajukeun ku Microsoft. Nyatana, kamungkinan Windows PowerShell langkung lega: dina séri tulisan pondok, urang bakal nyobian terang kumaha solusi Microsoft bénten sareng alat anu urang langkung akrab.

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci

Fitur utama 

Tangtu, Windows PowerShell utamana cangkang scripting, asalna diwangun dina .NET Framework sarta engké dina .NET Core. Beda sareng cangkang anu nampi sareng ngabalikeun data téks, Windows PowerShell tiasa dianggo sareng kelas .NET anu gaduh sipat sareng metode. PowerShell ngamungkinkeun anjeun ngajalankeun paréntah umum sareng masihan anjeun aksés ka objék COM, WMI, sareng ADSI. Éta ngagunakeun sababaraha panyimpen, sapertos sistem file atanapi pendaptaran Windows, pikeun aksés anu disebut. panyadia. Eta sia noting kamungkinan embedding PowerShell komponén laksana dina aplikasi sejenna pikeun nerapkeun rupa operasi, incl. ngaliwatan panganteur grafis. Sabalikna ogé leres: seueur aplikasi Windows nyayogikeun aksés kana antarmuka manajeménna ngalangkungan PowerShell. 

Windows PowerShell ngamungkinkeun anjeun:

  • Robah setélan sistem operasi;
  • Ngatur jasa sareng prosés;
  • Konpigurasikeun peran server sareng komponenana;
  • Pasang parangkat lunak;
  • Ngatur software dipasang ngaliwatan interfaces husus;
  • Lebetkeun komponén anu tiasa dieksekusi dina program pihak katilu;
  • Jieun skrip pikeun ngajadikeun otomatis tugas administrasi;
  • Gawé sareng sistem file, pendaptaran Windows, toko sertipikat, jsb.

Shell jeung lingkungan ngembangkeun

Windows PowerShell aya dina dua bentuk: salian émulator konsol sareng cangkang paréntah, aya lingkungan skrip terpadu (ISE). Pikeun ngaksés antarbeungeut garis paréntah, kantun pilih potong kompas anu cocog tina ménu Windows atanapi jalankeun powershell.exe tina menu Run. Jandéla biru bakal némbongan dina layar, nyata béda dina kamampuan tina cmd.exe antediluvian. Aya autocompletion sareng fitur-fitur sanés anu biasa pikeun pangguna cangkang paréntah pikeun sistem Unix.

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci

Pikeun damel sareng cangkang, anjeun kedah émut sababaraha potong kompas keyboard:

  • Panah luhur jeung ka handap ngagulung sajarah pikeun ngulang paréntah diketik saméméhna;
  • Panah katuhu dina tungtung hiji garis retypes karakter paréntah saméméhna ku karakter;
  • Ctrl + Home mupus teks anu diketik tina posisi kursor ka awal baris;
  • Ctrl + End mupus téks ti kursor ka tungtung garis.

F7 nembongkeun jandela jeung paréntah diketik tur ngidinan Anjeun pikeun milih salah sahijina. Konsol ogé tiasa dianggo sareng pilihan téks nganggo beurit, salin-témpél, posisi kursor, ngahapus, backspace - sadayana anu urang resep.

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
Windows PowerShell ISE mangrupikeun lingkungan pangembangan anu lengkep sareng pangropéa kode anu ngadukung tab sareng panyorot sintaksis, desainer paréntah, debugger anu diwangun, sareng program program anu sanés. Upami anjeun nyerat hyphen saatos nami paréntah dina pangropéa lingkungan pangembangan, anjeun bakal nampi sadaya parameter anu sayogi dina daptar turun-handap, nunjukkeun jinisna. Anjeun tiasa ngajalankeun PowerShell ISE boh ngaliwatan potong kompas tina menu sistem atanapi nganggo file laksana powershell_ise.exe.

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci

Cmdlets 

Dina Windows PowerShell, anu disebut. cmdlét. Ieu kelas .NET husus nu nyadiakeun rupa-rupa pungsi. Éta ngaranna Aksi-Objék (atawa Kecap pagawéan-Nomina, upami anjeun resep), sarta link hyphen-dipisahkeun nyarupaan predikat jeung subjék dina kalimah basa alam. Contona, Meunang-Bantuan sacara harfiah hartina "Meunang-Bantuan", atawa dina konteks PowerShell: "Témbongkeun-Bantuan". Nyatana, ieu mangrupikeun analog tina paréntah lalaki dina sistem Unix, sareng manual dina PowerShell kedah dipénta ku cara ieu, sanés ku nyauran cmdlet nganggo konci –help atanapi /?.. Tong hilap ngeunaan dokuméntasi online pikeun PowerShell: Microsoft gaduh éta cukup rinci.

Salian Get, cmdlet nganggo kecap pagawéan sanés pikeun nunjukkeun tindakan (sareng sanés ngan ukur kecap pagawéan, sacara ketat). Dina daptar di handap ieu kami masihan sababaraha conto:

Add - nambahan;
Clear - beresih;
Enable - Hurungkeun;
Disable - Pareuman;
New - nyieun;
Remove - mupus;
Set - nanya;
Start - ngajalankeun;
Stop - Eureun;
Export - ékspor;
Import - impor.

Aya sistem, pangguna sareng pilihan cmdlet: salaku hasil tina palaksanaan, aranjeunna sadayana uih deui hiji obyék atanapi sakumpulan objék. Aranjeunna henteu sénsitip hurup, i.e. ti sudut pandang juru paréntah, teu aya bédana antara Meunang-Pitulung jeung meunang-pitulung. Karakter ';' dipaké pikeun misahkeun, tapi wajib nempatkeun éta ngan lamun sababaraha cmdlets dieksekusi dina garis sarua. 

Cmdlet Windows PowerShell dikelompokkeun kana modul (NetTCPIP, Hyper-V, jsb.), sareng aya cmdlet Get-Command pikeun milarian ku objék sareng tindakan. Anjeun tiasa ningalikeun pitulung sapertos kieu:

Get-Help Get-Command

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci

Sacara standar, paréntah nampilkeun pitulung ringkes, tapi parameter (argumen) dikirimkeun ka cmdlet upami diperyogikeun. Kalayan bantosanana, anjeun tiasa, contona, kéngingkeun pitulung lengkep (parameter -Detail) atanapi lengkep (parameter -Full), ogé ningalikeun conto (parameter -Conto):

Get-Help Get-Command -Examples

Pitulung dina Windows PowerShell diropéa ku Update-Help cmdlet. Lamun baris paréntah tétéla panjang teuing, argumen cmdlet bisa dipindahkeun ka hareup ku nulis karakter layanan "" jeung mencét Lebetkeun - ngan rengse nulis paréntah dina hiji garis tur nuluykeun on sejen moal jalan.

Ieu sababaraha conto cmdlet umum: 

Get-Process - némbongkeun prosés ngajalankeun dina sistem;
Get-Service - nunjukkeun jasa sareng statusna;
Get-Content - mintonkeun eusi file.

Pikeun cmdlet sareng utilitas éksternal anu sering dianggo, Windows PowerShell ngagaduhan sinonim pondok - landian. Contona, dir mangrupa landian pikeun Get-ChildItem. Aya ogé analog tina paréntah tina sistem Unix dina daptar sinonim (ls, ps, jsb), sareng cmdlet Meunang-Pitulung disebut ku paréntah pitulung. Daptar lengkep sinonim tiasa ditingali nganggo Get-Alias ​​​​cmdlet:

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci

Skrip, Fungsi, Modul, sareng Basa PowerShell

Skrip Windows PowerShell disimpen salaku file téks polos sareng ekstensi .ps1. Anjeun teu tiasa ngajalankeun éta ku ngaklik dua kali: anjeun kedah klik katuhu pikeun muka ménu kontéks sareng pilih "Jalankeun dina PowerShell". Ti konsol anjeun bakal kudu nangtukeun jalur pinuh kana naskah, atawa buka diréktori luyu jeung nulis ngaran file. Skrip anu ngajalankeun ogé diwatesan ku kawijakan sistem, sareng pikeun mariksa setélan ayeuna anjeun tiasa nganggo cmdlet Get-ExecutionPolicy, anu bakal ngabalikeun salah sahiji nilai ieu:

Restricted - skrip peluncuran ditumpurkeun (sacara standar);
AllSigned - ngan ukur peluncuran skrip anu ditandatanganan ku pamekar anu dipercaya anu diidinan;
RemoteSigned - diwenangkeun ngajalankeun ditandatanganan sarta Aksara sorangan;
Unrestricted - diwenangkeun ngajalankeun sagala Aksara.

Administrator gaduh dua pilihan. Anu paling aman ngalibatkeun skrip nandatanganan, tapi ieu mangrupikeun sihir anu serius - kami bakal nganyahokeunana dina tulisan anu bakal datang. Ayeuna hayu urang nyandak jalan anu sahenteuna lalawanan sareng robih kawijakan:

Set-ExecutionPolicy RemoteSigned

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
PowerShell kedah dijalankeun salaku administrator pikeun ngalakukeun ieu, sanaos anjeun tiasa ngarobih kabijakan pikeun pangguna ayeuna nganggo setélan khusus.

Skrip ditulis dina basa programming obyék-berorientasi, paréntah nu ngaranna nurutkeun prinsip anu sarua sakumaha anu dibahas saméméhna cmdlets: "Aksi-Objék" ("Kata Kerja-Nomina"). Tujuan utami nyaéta pikeun ngajadikeun otomatis tugas administrasi, tapi éta mangrupikeun basa anu diinterpretasi pinuh anu ngagaduhan sadaya konstruk anu diperyogikeun: luncat kondisional, puteran, variabel, susunan, objék, penanganan kasalahan, jsb. Sakur pangropéa téksu saé pikeun skrip, tapi langkung saé ngajalankeun Windows PowerShell ISE.

Anjeun tiasa ngalebetkeun parameter kana naskah, ngajantenkeun wajib, sareng ogé nyetél nilai standar. Windows PowerShell ogé ngidinan Anjeun pikeun nyieun jeung nelepon fungsi dina cara nu sarua salaku cmdlets, ngagunakeun construct Fungsi jeung braces Curly. A Aksara kalawan fungsi disebut modul sarta ngabogaan extension .psm1. Modul kudu disimpen dina diréktori anu ditetepkeun dina variabel lingkungan PowerShell. Anjeun tiasa ningali aranjeunna nganggo paréntah di handap ieu:

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

Conveyor

Dina conto anu terakhir, kami nganggo desain anu biasa pikeun pangguna cangkang Unix. Dina Windows PowerShell, bar nangtung ogé ngamungkinkeun anjeun pikeun ngirimkeun kaluaran hiji paréntah ka input anu sanés, tapi aya béda anu signifikan dina palaksanaan pipa: urang henteu deui ngobrolkeun sakumpulan karakter atanapi sababaraha téks. Diwangun-di cmdlet atawa fungsi-diartikeun pamaké balik objék atawa arrays objék, sarta ogé bisa nampa aranjeunna salaku input. Sapertos cangkang Bourne sareng seueur panerusna, PowerShell nganggo pipa pikeun nyederhanakeun tugas anu rumit.

Conto pipa pangbasajanna sapertos kieu:

Get-Service | Sort-Object -property Status

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
Mimiti, cmdlet Meunang-Service dieksekusi, teras sadaya jasa anu ditampi ku éta disalurkeun ka cmdlet Sort-Object pikeun diurutkeun ku harta Status. Argumen mana hasil tina bagian saméméhna tina pipa anu diliwatan gumantung kana jenis na - biasana éta InputObject. Masalah ieu bakal dibahas langkung rinci dina tulisan anu dikhususkeun pikeun basa pamrograman PowerShell. 

Upami anjeun hoyong, anjeun tiasa neraskeun ranté sareng lulus hasil operasi Sort-Objék ka cmdlet anu sanés (aranjeunna bakal dieksekusi ti kénca ka katuhu). Ku jalan kitu, pamaké Windows ogé boga aksés ka konstruksi pikeun pagination akrab jeung sakabéh Unixoids: 

Get-Service | Sort-Object -property Status | more

Ngajalankeun tugas di latar tukang 

Cukup sering, anjeun kedah ngajalankeun paréntah anu tangtu di latar tukang, ku kituna henteu ngantosan hasil palaksanaanna dina sési cangkang. Windows PowerShell gaduh sababaraha cmdlet pikeun hal ieu:

Start-Job - ngajalankeun tugas latar tukang;
Stop-Job - ngeureunkeun tugas tukang;
Get-Job - tingali daptar tugas latar tukang;
Receive-Job - ningali hasil palaksanaan tugas latar;
Remove-Job - mupus tugas latar tukang;
Wait-Job - mindahkeun tugas tukang deui konsol nu.

Pikeun ngamimitian tugas tukang, kami nganggo Start-Job cmdlet sareng nangtukeun paréntah atanapi set paréntah dina kurung keriting:

Start-Job {Get-Service}

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
Tugas latar dina Windows PowerShell tiasa dimanipulasi ku terang namina. Kahiji, hayu urang diajar kumaha nembongkeun aranjeunna:

Get-Job

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
Ayeuna hayu urang nunjukkeun hasil padamelan Job1:

Receive-Job Job1 | more

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
Sagalana geus geulis basajan.

Palaksanaan paréntah jauh

Windows PowerShell ngidinan Anjeun pikeun ngaéksekusi paréntah jeung skrip teu ukur dina komputer lokal, tapi ogé dina komputer jauh, komo dina sakabéh grup mesin. Aya sababaraha cara pikeun ngalakukeun ieu:

  • Seueur cmdlet gaduh parameter -ComputerName, Tapi ku cara kieu eta moal jalan, contona, nyieun conveyor a;
  • Cmdlet Enter-PSSession ngidinan Anjeun pikeun nyieun sési interaktif dina mesin jauh; 
  • Ngagunakeun cmdlet Invoke-Command Anjeun tiasa ngajalankeun paréntah atanapi skrip dina hiji atanapi langkung komputer jauh.

Vérsi PowerShell

PowerShell parantos robih pisan ti saprak mimiti dileupaskeun taun 2006. Alatna sayogi pikeun seueur sistem anu ngajalankeun dina platform hardware anu béda (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux jeung OS X. release panganyarna 6.2 dirilis dina 10. Januari 2018. Skrip anu ditulis pikeun vérsi samemehna sigana tiasa dianggo dina vérsi engké, tapi backporting tiasa janten masalah sabab PowerShell parantos ngenalkeun sajumlah ageung cmdlet énggal salami sababaraha taun pangwangunan. Anjeun tiasa mendakan versi cangkang paréntah anu dipasang dina komputer nganggo sipat PSVersion tina variabel anu diwangun dina $PSVersionTable:

$PSVersionTable.PSVersion

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
Anjeun ogé tiasa nganggo cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci
Hal anu sami dilakukeun sareng cmdlet Get-Host. Nyatana, aya seueur pilihan, tapi pikeun ngagunakeunana anjeun kedah diajar basa pamrograman PowerShell, anu bakal urang laksanakeun dina artikel salajengna

hasil 

Microsoft geus junun nyieun cangkang bener kuat jeung lingkungan terpadu merenah pikeun ngembangkeun skrip. Beda sareng alat anu biasa pikeun urang di dunya Unix ku integrasi jero sareng sistem operasi kulawarga Windows, kitu ogé sareng parangkat lunak pikeun aranjeunna sareng platform .NET Core. PowerShell tiasa disebat cangkang berorientasi obyék sabab cmdlet sareng fungsi anu didefinisikeun ku pangguna ngabalikeun obyék atanapi susunan objék sareng tiasa janten input. Kami nganggap yén sadaya pangurus server dina Windows kedah gaduh alat ieu: waktosna parantos lami nalika aranjeunna tiasa ngalakukeun tanpa garis paréntah. Cangkang konsol canggih utamana diperlukeun dina VPS béaya rendah urang ngajalankeun Windows Server Core, Tapi éta carita sagemblengna béda.

Naon Windows PowerShell sareng naon anu didahar? Bagian 1: Fitur konci

Ngan pamaké nu kadaptar bisa ilubiung dina survey. Daptar, Punten.

Topik naon nu kudu dibahas heula dina artikel-artikel saterusna dina séri éta?

  • 53,2%Pemrograman dina PowerShell123

  • 42,4%PowerShell98 Fungsi jeung Modul

  • 22,1%Kumaha cara nandatanganan naskah sorangan?51

  • 12,1%Gawe sareng repositories ngaliwatan panyadia (panyadia)28

  • 57,6%Ngaotomatiskeun Administrasi Komputer nganggo PowerShell133

  • 30,7%Pangaturan parangkat lunak sareng nyelapkeun executable PowerShell dina produk pihak katilu71

231 pamaké milih. 37 pamaké abstained.

sumber: www.habr.com

Tambahkeun komentar