Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama

Sacara historis, utilitas baris perintah ing sistem Unix luwih dikembangake tinimbang ing Windows, nanging kanthi anane solusi anyar, kahanan kasebut wis owah.

Windows PowerShell ngidini administrator sistem ngotomatisasi tugas rutin. Kanthi bantuan, sampeyan bisa ngganti setelan, mungkasi lan miwiti layanan, lan uga nindakake pangopènan aplikasi paling diinstal. Iku bakal salah kanggo ndelok jendhela biru minangka interpreter printah liyane. Pendekatan iki ora nggambarake inti saka inovasi sing diusulake dening Microsoft. Nyatane, kemampuan Windows PowerShell luwih akeh: ing seri artikel cekak kita bakal nyoba ngerteni kepiye solusi Microsoft beda karo alat sing luwih dikenal.

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama

Fitur utama 

Mesthine, Windows PowerShell utamane minangka cangkang printah kanthi basa skrip, asline dibangun ing .NET Framework lan mengko ing .NET Core. Ora kaya cangkang sing nampa lan ngasilake data teks, Windows PowerShell bisa digunakake karo kelas .NET, sing nduweni sifat lan metode. PowerShell ngidini sampeyan mbukak perintah umum lan uga menehi akses menyang obyek COM, WMI, lan ADSI. Iki nggunakake macem-macem panyimpenan, kayata sistem file utawa pendaptaran Windows, kanggo akses sing diarani. panyedhiya. Wigati dimangerteni kamungkinan nanem komponen eksekusi PowerShell menyang aplikasi liyane kanggo ngleksanakake macem-macem operasi, kalebu. liwat antarmuka grafis. Kosok baline uga bener: akeh aplikasi Windows nyedhiyakake akses menyang antarmuka manajemen liwat PowerShell. 

Windows PowerShell ngidini sampeyan:

  • Ngganti setelan sistem operasi;
  • Ngatur layanan lan proses;
  • Ngatur peran lan komponen server;
  • Instal piranti lunak;
  • Ngatur piranti lunak sing diinstal liwat antarmuka khusus;
  • Sematake komponen sing bisa dieksekusi menyang program pihak katelu;
  • Nggawe skrip kanggo ngotomatisasi tugas administrasi;
  • Bisa nganggo sistem file, registri Windows, toko sertifikat, lsp.

Shell lan lingkungan pangembangan

Windows PowerShell ana ing rong wujud: saliyane emulator konsol kanthi cangkang perintah, ana lingkungan skrip terpadu (ISE). Kanggo ngakses antarmuka baris perintah, cukup pilih trabasan sing cocog saka menu Windows utawa mbukak powershell.exe saka menu Run. Jendhela biru bakal katon ing layar, beda karo kemampuan saka cmd.exe antediluvian. Ana autocompletion lan fitur liyane sing dikenal kanggo pangguna cangkang perintah kanggo sistem Unix.

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama

Kanggo nggarap cangkang sampeyan kudu ngelingi sawetara trabasan keyboard:

  • Panah munggah lan mudhun nggulung riwayat kanggo mbaleni printah sing diketik sadurunge;
  • Panah tengen ing mburi baris retypes karakter printah sadurungé dening karakter;
  • Ctrl + Home mbusak teks sing diketik saka posisi kursor menyang wiwitan baris;
  • Ctrl + End mbusak teks saka kursor menyang mburi baris.

F7 nuduhake jendhela kanthi printah sing dilebokake lan ngidini sampeyan milih salah sijine. Konsol uga dianggo kanthi milih teks nganggo mouse, nyalin-tempel, posisi kursor, mbusak, backspace - kabeh sing kita tresnani.

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Windows PowerShell ISE minangka lingkungan pangembangan lengkap kanthi editor kode sing ndhukung panyorotan tab lan sintaks, desainer komando, debugger sing dibangun, lan program liyane sing nyenengake. Yen sampeyan nulis hyphen sawise jeneng printah ing editor lingkungan pembangunan, sampeyan bakal nampa kabeh paramèter kasedhiya ing dhaftar gulung-mudhun, nuduhake jinis. Sampeyan bisa miwiti PowerShell ISE liwat trabasan saka menu sistem utawa nggunakake file eksekusi powershell_ise.exe.

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama

Cmdlets 

Ing Windows PowerShell, sing disebut. cmdlet. Iki minangka kelas NET khusus sing nyedhiyakake macem-macem fungsi. Dijenengi miturut prinsip "Action-Object" (utawa "Verb-Noun, yen sampeyan seneng), lan konektivitas sing dipisahake hyphen meh padha karo predikat lan subyek ing ukara basa alami. Contone, Get-Bantuan secara harfiah tegese "Entuk-Bantuan" utawa ing konteks PowerShell: "Tampilake-Bantuan". Nyatane, iki minangka analog saka perintah man ing sistem Unix, lan manual ing PowerShell kudu dijaluk kanthi cara iki, lan ora kanthi nelpon cmdlet nganggo tombol –help utawa /?.. Aja lali babagan dokumentasi online kanggo PowerShell: Microsoft wis cukup rinci.

Saliyane Get, cmdlet uga nggunakake kriya liyane kanggo nuduhake tumindak (lan ora mung kriya, kanthi tegas). Ing dhaptar ing ngisor iki kita menehi sawetara conto:

Add - nambah;
Clear - resik;
Enable - nguripake;
Disable - mateni;
New - nggawe;
Remove - mbusak;
Set - takon;
Start - mlaku;
Stop - mandheg;
Export - ekspor;
Import - ngimpor.

Ana sistem, pangguna lan cmdlet opsional: minangka asil eksekusi, kabeh padha ngasilake obyek utawa macem-macem obyek. Padha ora cilik sensitif, i.e. Saka sudut pandang interpreter printah, ora ana bedane antarane Get-Help lan njaluk-help. Simbol ';' digunakake kanggo misahake, nanging mung dibutuhake yen sawetara cmdlet dieksekusi ing siji baris. 

Cmdlet Windows PowerShell diklompokaké dadi modul (NetTCPIP, Hyper-V, lsp.), lan ana cmdlet Get-Command kanggo nggoleki kanthi obyek lan tumindak. Sampeyan bisa nuduhake bantuan kaya iki:

Get-Help Get-Command

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama

Kanthi gawan, printah nampilake bantuan cepet, nanging paramèter (argumen) dikirim menyang cmdlet yen perlu. Kanthi bantuan, sampeyan bisa, contone, njaluk rinci (-Parameter rinci) utawa bantuan lengkap (-Full), uga nampilake conto (-Conto parameter):

Get-Help Get-Command -Examples

Bantuan ing Windows PowerShell dianyari nganggo cmdlet Update-Help. Yen baris printah dadi dawa banget, argumen cmdlet bisa ditransfer menyang sabanjure kanthi nulis karakter layanan '' lan mencet Enter - mung rampung nulis printah ing siji baris lan nerusake ing baris liyane ora bakal bisa.

Ing ngisor iki sawetara conto cmdlet umum: 

Get-Process - nuduhake pangolahan sing mlaku ing sistem;
Get-Service - nuduhake layanan lan statuse;
Get-Content - nampilake isi file.

Kanggo cmdlet lan utilitas eksternal sing kerep digunakake, Windows PowerShell nduweni sinonim singkat - alias. Contone, dir minangka alias kanggo Get-ChildItem. Ana uga analog saka printah saka sistem Unix ing dhaptar sinonim (ls, ps, etc.), lan cmdlet Get-Help diarani printah bantuan. Dhaptar sinonim lengkap bisa dideleng nggunakake Get-Alias ​​​​cmdlet:

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama

Skrip, Fungsi, Modul, lan Basa PowerShell

Skrip Windows PowerShell disimpen minangka file teks biasa kanthi ekstensi .ps1. Sampeyan ora bisa mbukak kanthi ngeklik kaping pindho: sampeyan kudu klik-tengen kanggo mbukak menu konteks banjur pilih "Run in PowerShell". Saka console sampeyan bakal kudu nemtokake path lengkap kanggo script, utawa pindhah menyang direktori cocok lan nulis jeneng berkas. Skrip sing mlaku uga diwatesi dening kabijakan sistem, lan kanggo mriksa setelan saiki sampeyan bisa nggunakake cmdlet Get-ExecutionPolicy, sing bakal ngasilake salah sawijining nilai ing ngisor iki:

Restricted — skrip mlaku dilarang (kanthi standar);
AllSigned - mung skrip sing ditandatangani dening pangembang sing dipercaya sing diidini mbukak;
RemoteSigned - Diijini mbukak skrip sing ditandatangani lan dhewe;
Unrestricted - Diijini kanggo mbukak script sembarang.

Administrator duwe rong pilihan. Sing paling aman kalebu skrip tandha, nanging iki minangka sihir sing serius - kita bakal ngatasi ing artikel ing ngisor iki. Saiki ayo njupuk dalan sing paling ora tahan lan ganti kabijakan:

Set-ExecutionPolicy RemoteSigned

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Kanggo nindakake iki, sampeyan kudu mbukak PowerShell minangka administrator, sanajan sampeyan bisa nggunakake parameter khusus kanggo ngganti kabijakan kanggo pangguna saiki.

Skrip ditulis ing basa pemrograman berorientasi obyek, printah kasebut dijenengi miturut prinsip sing padha karo cmdlet sing wis dibahas sadurunge: "Action-Object" ("Verb-Noun"). Tujuan utamane yaiku ngotomatisasi tugas administrasi, nanging minangka basa sing diinterpretasikake kanthi lengkap sing duwe kabeh konstruksi sing dibutuhake: lompat kondisional, puteran, variabel, susunan, obyek, penanganan kesalahan, lsp. Sembarang editor teks cocok kanggo nulis skrip, nanging paling trep kanggo mbukak Windows PowerShell ISE.

Sampeyan bisa ngirim parameter menyang skrip, nggawe wajib, lan uga nyetel nilai standar. Windows PowerShell uga ngidini sampeyan nggawe lan nelpon fungsi kanthi cara sing padha karo cmdlet, nggunakake fungsi construct lan kurung kriting. A script karo fungsi diarani modul lan wis .psm1 extension. Modul kudu disimpen ing direktori sing ditetepake ing variabel lingkungan PowerShell. Sampeyan bisa ndeleng kanthi nggunakake printah ing ngisor iki:

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

Conveyor

Ing conto pungkasan, kita nggunakake desain sing akrab karo pangguna cangkang Unix. Ing Windows PowerShell, bar vertikal uga ngidini sampeyan ngirim output saka siji printah menyang input liyane, nanging ana prabédan sing signifikan ing implementasine pipeline: kita ora ngomong babagan set karakter utawa sawetara teks. Cmdlet sing dibangun utawa fungsi sing ditemtokake pangguna ngasilake obyek utawa susunan obyek, lan uga bisa nampa minangka input. Kaya cangkang Bourne lan akeh peneruse, PowerShell nggunakake pipa kanggo nyederhanakake tugas sing rumit.

Conto paling gampang saka pipa katon kaya iki:

Get-Service | Sort-Object -property Status

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Cmdlet Get-Service dieksekusi dhisik, banjur kabeh layanan sing ditampa diterusake menyang cmdlet Sort-Object kanggo ngurutake properti Status. Argumentasi apa asil saka bagean sadurunge pipeline diterusake gumantung saka jinise - biasane InputObject. Masalah iki bakal dibahas kanthi luwih rinci ing artikel khusus kanggo basa pamrograman PowerShell. 

Yen dikarepake, sampeyan bisa nerusake chain lan pass asil Urut-Obyek kanggo cmdlet liyane (bakal dieksekusi saka kiwa menyang tengen). Miturut cara, pangguna Windows uga duwe akses menyang desain sing akrab karo kabeh Unixoids kanggo output saben kaca: 

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

Mlaku tugas ing latar mburi 

Cukup asring perlu kanggo mbukak printah tartamtu ing latar mburi supaya ora ngenteni asil saka eksekusi ing sesi shell. Windows PowerShell duwe sawetara cmdlet kanggo kahanan iki:

Start-Job - miwiti tugas latar mburi;
Stop-Job - mungkasi tugas latar mburi;
Get-Job - ndeleng dhaptar tugas latar mburi;
Receive-Job - ndeleng asil tugas latar mburi;
Remove-Job - mbusak tugas latar mburi;
Wait-Job - nransfer tugas latar mburi bali menyang console.

Kanggo miwiti tugas latar mburi, kita nggunakake cmdlet Start-Job lan nemtokake printah utawa set printah ing kurung kriting:

Start-Job {Get-Service}

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Tugas latar mburi ing Windows PowerShell bisa dimanipulasi kanthi ngerti jenenge. Pisanan, ayo sinau carane nampilake:

Get-Job

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Saiki ayo nuduhake asil Job1:

Receive-Job Job1 | more

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Iku cukup prasaja.

Eksekusi perintah remot

Windows PowerShell ngidini sampeyan mbukak printah lan skrip ora mung ing lokal, nanging uga ing komputer remot lan malah ing kabeh klompok mesin. Ana sawetara cara kanggo nindakake iki:

  • Akeh cmdlet duwe parameter -ComputerName, nanging kanthi cara iki ora bakal bisa, contone, kanggo nggawe conveyor;
  • Cmdlet Enter-PSSession ngidini sampeyan nggawe sesi interaktif ing mesin remot; 
  • Nggunakake cmdlet Invoke-Command Sampeyan bisa mbukak printah utawa skrip ing siji utawa luwih komputer remot.

Versi PowerShell

Wiwit dirilis pisanan ing 2006, PowerShell wis akeh owah-owahan. Alat iki kasedhiya kanggo akeh sistem sing mlaku ing platform hardware sing beda (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 lan OS X. Rilis paling anyar 6.2 dirilis ing 10 Januari 2018. Skrip sing ditulis kanggo versi sadurungé bisa uga bisa digunakake ing pungkasan, nanging bisa uga ana masalah karo transfer mbalikke, amarga ing pirang-pirang taun pangembangan, akeh cmdlet anyar sing muncul ing PowerShell. Sampeyan bisa ngerteni versi cangkang perintah sing diinstal ing komputer nggunakake properti PSVersion saka variabel sing dibangun ing $PSVersionTable:

$PSVersionTable.PSVersion

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Sampeyan uga bisa nggunakake cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama
Bab sing padha bisa ditindakake kanthi nggunakake cmdlet Get-Host. Nyatane, ana akeh pilihan, nanging kanggo nggunakake, sampeyan kudu sinau basa pamrograman PowerShell, sing bakal ditindakake. artikel sabanjure

Hasil 

Microsoft wis kasil nggawe cangkang printah sing kuat banget kanthi lingkungan terpadu sing trep kanggo ngembangake skrip. Sing mbedakake saka alat sing kita kenal ing jagad Unix yaiku integrasi sing jero karo sistem operasi kulawarga Windows, uga piranti lunak kanggo dheweke lan platform .NET Core. PowerShell bisa diarani cangkang berorientasi obyek amarga cmdlet lan fungsi sing ditemtokake pangguna ngasilake obyek utawa susunan obyek lan bisa nampa minangka input. Kita mikir kabeh administrator server Windows kudu duwe alat iki: wektu wis liwati nalika bisa nindakake tanpa baris printah. Nihan console majeng utamané perlu ing VPS murah sing nganggo Windows Server Core, nanging sing crita temen beda.

Apa Windows PowerShell lan apa sing dipangan? Bagean 1: Fitur Utama

Mung pangguna pangguna sing bisa melu survey. mlebunggih.

Topik apa sing kudu dirembug dhisik ing artikel sabanjure ing seri kasebut?

  • 53,2%Pemrograman ing PowerShell123

  • 42,4%Fungsi lan Modul PowerShell98

  • 22,1%Kepriye tandhane naskah dhewe?51

  • 12,1%Nggarap panyimpenan liwat panyedhiya28

  • 57,6%Ngotomatisasi administrasi komputer nggunakake PowerShell133

  • 30,7%Ngatur piranti lunak lan nglebokake executable PowerShell menyang produk pihak katelu71

231 pangguna milih. 37 kedhaftar abstained.

Source: www.habr.com

Add a comment