Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama

Dari segi sejarah, utiliti baris arahan pada sistem Unix dibangunkan dengan lebih baik daripada Windows, tetapi dengan kemunculan penyelesaian baharu, keadaan telah berubah.

Windows PowerShell membenarkan pentadbir sistem mengautomasikan kebanyakan tugas rutin. Dengan itu, anda boleh menukar tetapan, menghentikan dan memulakan perkhidmatan, dan juga melakukan penyelenggaraan pada kebanyakan aplikasi yang dipasang. Adalah salah untuk menganggap tetingkap biru sebagai penterjemah arahan yang lain. Pendekatan ini tidak menggambarkan intipati inovasi yang dicadangkan oleh Microsoft. Malah, kemungkinan Windows PowerShell adalah lebih luas: dalam siri artikel pendek, kami akan cuba memikirkan bagaimana penyelesaian Microsoft berbeza daripada alat yang kami lebih biasa.

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama

Ciri-ciri utama 

Sudah tentu, Windows PowerShell terutamanya cangkerang skrip, pada asalnya dibina pada Rangka Kerja .NET dan kemudian pada Teras .NET. Tidak seperti cangkerang yang menerima dan mengembalikan data teks, Windows PowerShell berfungsi dengan kelas .NET yang mempunyai sifat dan kaedah. PowerShell membolehkan anda menjalankan arahan biasa dan juga memberi anda akses kepada objek COM, WMI dan ADSI. Ia menggunakan pelbagai storan, seperti sistem fail atau pendaftaran Windows, untuk akses kepada yang dipanggil. pembekal. Perlu diperhatikan kemungkinan membenamkan komponen boleh laku PowerShell dalam aplikasi lain untuk melaksanakan pelbagai operasi, termasuk. melalui antara muka grafik. Perkara sebaliknya juga benar: banyak aplikasi Windows menyediakan akses kepada antara muka pengurusan mereka melalui PowerShell. 

Windows PowerShell membolehkan anda:

  • Tukar tetapan sistem pengendalian;
  • Mengurus perkhidmatan dan proses;
  • Konfigurasikan peranan dan komponen pelayan;
  • Pasang perisian;
  • Urus perisian yang dipasang melalui antara muka khas;
  • Benamkan komponen boleh laku dalam program pihak ketiga;
  • Cipta skrip untuk mengautomasikan tugas pentadbiran;
  • Bekerja dengan sistem fail, pendaftaran Windows, kedai sijil, dsb.

Shell dan persekitaran pembangunan

Windows PowerShell wujud dalam dua bentuk: sebagai tambahan kepada emulator konsol dengan shell arahan, terdapat Persekitaran Skrip Bersepadu (ISE). Untuk mengakses antara muka baris arahan, hanya pilih pintasan yang sesuai daripada menu Windows atau jalankan powershell.exe daripada menu Run. Tetingkap biru akan muncul pada skrin, ketara berbeza dalam keupayaan daripada cmd.exe antediluvian. Terdapat autolengkap dan ciri lain yang biasa kepada pengguna cangkerang arahan untuk sistem Unix.

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama

Untuk bekerja dengan shell, anda perlu mengingati beberapa pintasan papan kekunci:

  • Anak panah atas dan bawah menatal sejarah untuk mengulangi arahan yang ditaip sebelum ini;
  • Anak panah kanan di hujung baris menaip semula aksara arahan sebelumnya mengikut aksara;
  • Ctrl+Home memadam teks yang ditaip dari kedudukan kursor ke permulaan baris;
  • Ctrl+End memadam teks dari kursor ke hujung baris.

F7 menunjukkan tetingkap dengan arahan yang ditaip dan membolehkan anda memilih salah satu daripadanya. Konsol juga berfungsi dengan pemilihan teks dengan tetikus, salin-tampal, kedudukan kursor, pemadaman, ruang belakang - semua yang kita suka.

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
Windows PowerShell ISE ialah persekitaran pembangunan yang lengkap dengan editor kod bertab dan diserlahkan sintaks, pembina arahan, penyahpepijat terbina dalam dan keseronokan pengaturcaraan lain. Jika anda menulis tanda sempang selepas nama arahan dalam editor persekitaran pembangunan, anda akan mendapat semua pilihan yang tersedia dalam senarai juntai bawah dengan petunjuk jenis. Anda boleh melancarkan PowerShell ISE sama ada melalui pintasan daripada menu sistem atau menggunakan fail boleh laku powershell_ise.exe.

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama

Cmdlet 

Dalam Windows PowerShell, apa yang dipanggil. cmdlet. Ini adalah kelas .NET khusus yang menyediakan pelbagai fungsi. Ia dinamakan Objek-Aksi (atau Kata Nama-Kata Kerja, jika anda suka), dan pautan yang dipisahkan sempang menyerupai predikat dan subjek dalam ayat bahasa semula jadi. Sebagai contoh, Dapatkan-Bantuan secara literal bermaksud "Dapatkan-Bantuan", atau dalam konteks PowerShell: "Tunjukkan-Bantuan". Sebenarnya, ini adalah analog arahan lelaki dalam sistem Unix, dan manual dalam PowerShell mesti diminta dengan cara ini, dan bukan dengan memanggil cmdlet dengan kekunci --help atau /?. Jangan lupa tentang dokumentasi PowerShell dalam talian: Microsoft mempunyai ia agak terperinci.

Selain Dapatkan, cmdlet menggunakan kata kerja lain untuk menandakan tindakan (dan bukan sahaja kata kerja, secara tegas). Dalam senarai di bawah kami memberikan beberapa contoh:

Add - Tambah;
Clear - jelas;
Enable - hidupkan;
Disable - tutup;
New - mencipta;
Remove - padam;
Set - bertanya;
Start - lari;
Stop - berhenti;
Export - eksport;
Import - import.

Terdapat sistem, pengguna dan cmdlet pilihan: sebagai hasil daripada pelaksanaan, mereka semua mengembalikan objek atau pelbagai objek. Mereka tidak sensitif huruf besar-besaran, i.e. dari sudut pandangan jurubahasa arahan, tiada perbezaan antara Dapatkan-Bantuan dan dapatkan-bantuan. Aksara ';' digunakan untuk pemisahan, tetapi ia adalah wajib untuk meletakkannya hanya jika beberapa cmdlet dilaksanakan pada baris yang sama. 

Cmdlet Windows PowerShell dikumpulkan ke dalam modul (NetTCPIP, Hyper-V, dsb.), dan terdapat cmdlet Get-Command untuk mencari mengikut objek dan tindakan. Anda boleh memaparkan bantuan untuknya seperti ini:

Get-Help Get-Command

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama

Secara lalai, arahan memaparkan bantuan ringkas, tetapi parameter (argumen) dihantar ke cmdlet mengikut keperluan. Dengan bantuan mereka, anda boleh, sebagai contoh, mendapatkan bantuan terperinci (parameter -Terperinci) atau penuh (parameter -Penuh), serta memaparkan contoh (parameter -Contoh):

Get-Help Get-Command -Examples

Bantuan dalam Windows PowerShell dikemas kini oleh cmdlet Bantuan Kemas Kini. Jika baris arahan ternyata terlalu panjang, argumen cmdlet boleh dialihkan ke yang seterusnya dengan menulis aksara perkhidmatan '' dan menekan Enter - hanya selesai menulis arahan pada satu baris dan meneruskan pada baris lain tidak akan berfungsi.

Berikut ialah beberapa contoh cmdlet biasa: 

Get-Process - tunjukkan proses berjalan dalam sistem;
Get-Service β€” tunjukkan perkhidmatan dan statusnya;
Get-Content - memaparkan kandungan fail.

Untuk cmdlet dan utiliti luaran yang kerap digunakan, Windows PowerShell mempunyai sinonim pendek - alias (daripada bahasa Inggeris. Alias). Contohnya, dir ialah alias untuk Get-ChildItem. Senarai sinonim juga termasuk analog perintah daripada sistem Unix (ls, ps, dll.), dan cmdlet Get-Help dipanggil oleh arahan bantuan. Senarai lengkap sinonim boleh dilihat menggunakan cmdlet Get-Alias:

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama

Skrip, Fungsi, Modul dan Bahasa PowerShell

Skrip Windows PowerShell disimpan sebagai fail teks biasa dengan sambungan .ps1. Anda tidak boleh melancarkannya dengan mengklik dua kali: anda perlu klik kanan untuk memanggil menu konteks dan pilih item "Jalankan dalam PowerShell". Daripada konsol, anda sama ada perlu menentukan laluan penuh ke skrip, atau pergi ke direktori yang sesuai dan tulis nama fail. Skrip yang dijalankan juga dihadkan oleh dasar sistem dan untuk menyemak tetapan semasa, anda boleh menggunakan cmdlet Get-ExecutionPolicy, yang akan mengembalikan salah satu daripada nilai berikut:

Restricted β€” skrip pelancaran dinyahdayakan (secara lalai);
AllSigned - hanya pelancaran skrip yang ditandatangani oleh pembangun yang dipercayai dibenarkan;
RemoteSigned - dibenarkan menjalankan skrip yang ditandatangani dan sendiri;
Unrestricted - dibenarkan untuk menjalankan sebarang skrip.

Pentadbir mempunyai dua pilihan. Yang paling selamat melibatkan menandatangani skrip, tetapi ini adalah sihir yang serius - kami akan menanganinya dalam artikel akan datang. Sekarang mari kita ambil jalan yang paling sedikit tentangan dan ubah dasar:

Set-ExecutionPolicy RemoteSigned

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
PowerShell perlu dijalankan sebagai pentadbir untuk melakukan ini, walaupun anda boleh menukar dasar untuk pengguna semasa dengan tetapan khas.

Skrip ditulis dalam bahasa pengaturcaraan berorientasikan objek, arahan yang dinamakan mengikut prinsip yang sama seperti cmdlet yang dibincangkan sebelum ini: "Action-Object" ("Verb-Noun"). Tujuan utamanya adalah untuk mengautomasikan tugas pentadbiran, tetapi ia adalah bahasa tafsiran sepenuhnya yang mempunyai semua binaan yang diperlukan: lompat bersyarat, gelung, pembolehubah, tatasusunan, objek, pengendalian ralat, dsb. Mana-mana editor teks boleh digunakan untuk skrip, tetapi yang terbaik adalah menjalankan Windows PowerShell ISE.

Anda boleh menghantar parameter kepada skrip, menjadikannya diperlukan dan menetapkan nilai lalai. Selain itu, Windows PowerShell membenarkan anda mencipta dan memanggil fungsi dengan cara yang sama seperti cmdlet, dengan menggunakan binaan Fungsi dan pendakap kerinting. Skrip dengan fungsi dipanggil modul dan mempunyai sambungan .psm1. Modul mesti disimpan dalam direktori yang ditakrifkan dalam pembolehubah persekitaran PowerShell. Anda boleh melihatnya dengan arahan berikut:

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

Penghantar

Dalam contoh terakhir, kami telah menggunakan binaan yang biasa kepada pengguna shell Unix. Dalam Windows PowerShell, bar menegak juga membolehkan anda menghantar output satu perintah kepada input yang lain, tetapi terdapat perbezaan yang ketara dalam pelaksanaan saluran paip: kita tidak lagi bercakap tentang satu set aksara atau beberapa jenis teks. Cmdlet terbina dalam atau fungsi yang ditentukan pengguna mengembalikan objek atau tatasusunan objek, dan juga boleh menerimanya sebagai input. Seperti Bourne shell dan banyak penggantinya, PowerShell menjadikan tugas yang kompleks lebih mudah dengan saluran paip.

Contoh saluran paip paling mudah kelihatan seperti ini:

Get-Service | Sort-Object -property Status

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
Mula-mula, cmdlet Get-Service dilaksanakan, dan kemudian semua perkhidmatan yang diterima olehnya dihantar ke cmdlet Sort-Object untuk mengisih mengikut sifat Status. Argumen mana hasil bahagian saluran paip sebelumnya yang dihantar bergantung pada jenisnya - biasanya ia adalah InputObject. Isu ini akan dibincangkan dengan lebih terperinci dalam artikel khusus untuk bahasa pengaturcaraan PowerShell. 

Jika anda mahu, anda boleh meneruskan rantai dan menghantar hasil operasi Sort-Object ke cmdlet lain (ia akan dilaksanakan dari kiri ke kanan). Dengan cara ini, pengguna Windows juga mempunyai akses kepada pembinaan untuk penomboran yang biasa kepada semua Unixoids: 

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

Menjalankan tugas di latar belakang 

Selalunya, adalah perlu untuk menjalankan arahan tertentu di latar belakang, supaya tidak menunggu hasil pelaksanaannya dalam sesi shell. Windows PowerShell mempunyai beberapa cmdlet untuk kes ini:

Start-Job - melancarkan tugas latar belakang;
Stop-Job β€” hentikan tugas latar belakang;
Get-Job β€” lihat senarai tugas latar belakang;
Receive-Job β€” melihat hasil pelaksanaan tugas latar belakang;
Remove-Job β€” memadam tugas latar belakang;
Wait-Job - memindahkan tugas latar belakang kembali ke konsol.

Untuk memulakan tugas latar belakang, kami menggunakan cmdlet Mula-Kerja dan menentukan arahan atau set perintah dalam kurungan kerinting:

Start-Job {Get-Service}

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
Tugas latar belakang dalam Windows PowerShell boleh dimanipulasi dengan mengetahui nama mereka. Mula-mula, mari kita pelajari cara memaparkannya:

Get-Job

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
Sekarang mari tunjukkan hasil kerja Job1:

Receive-Job Job1 | more

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
Semuanya cukup mudah.

Pelaksanaan arahan jauh

Windows PowerShell membolehkan anda melaksanakan arahan dan skrip bukan sahaja pada komputer tempatan, tetapi juga pada komputer jauh, malah pada keseluruhan kumpulan mesin. Terdapat beberapa cara untuk melakukan ini:

  • Banyak cmdlet mempunyai parameter -ComputerName, tetapi dengan cara ini ia tidak akan berfungsi, sebagai contoh, untuk membuat penghantar;
  • Cmdlet Enter-PSSession membolehkan anda membuat sesi interaktif pada mesin jauh; 
  • Menggunakan cmdlet Invoke-Command anda boleh menjalankan arahan atau skrip pada satu atau lebih komputer jauh.

Versi PowerShell

PowerShell telah banyak berubah sejak keluaran pertama pada tahun 2006. Alat ini tersedia untuk banyak sistem yang berjalan pada platform perkakasan yang berbeza (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 dan OS X. Keluaran terkini 6.2 dikeluarkan pada 10 Januari 2018. Skrip yang ditulis untuk versi terdahulu berkemungkinan akan berfungsi dalam versi kemudian, tetapi backporting boleh menjadi masalah kerana PowerShell telah memperkenalkan sejumlah besar cmdlet baharu sepanjang tahun pembangunan. Anda boleh mengetahui versi shell arahan yang dipasang pada komputer menggunakan sifat PSVersion bagi pembolehubah terbina dalam $PSVersionTable:

$PSVersionTable.PSVersion

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
Anda juga boleh menggunakan cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama
Perkara yang sama dilakukan dengan cmdlet Get-Host. Sebenarnya, terdapat banyak pilihan, tetapi untuk menggunakannya, anda perlu mempelajari bahasa pengaturcaraan PowerShell, yang akan kami lakukan dalam artikel seterusnya

Keputusan 

Microsoft telah berjaya mencipta cangkerang yang sangat berkuasa dengan persekitaran bersepadu yang mudah untuk membangunkan skrip. Ia berbeza daripada alat yang biasa kepada kami dalam dunia Unix dengan penyepaduan mendalam dengan sistem pengendalian keluarga Windows, serta dengan perisian untuk mereka dan platform Teras .NET. PowerShell boleh dipanggil shell berorientasikan objek kerana cmdlet dan fungsi yang ditentukan pengguna mengembalikan objek atau tatasusunan objek dan boleh mengambilnya sebagai input. Kami berpendapat bahawa semua pentadbir pelayan pada Windows harus memiliki alat ini: masa telah berlalu apabila mereka boleh melakukannya tanpa baris arahan. Cangkerang konsol lanjutan amat diperlukan pada VPS kos rendah kami yang menjalankan Windows Server Core, tetapi itu cerita yang sama sekali berbeza.

Apakah Windows PowerShell dan dengan apa ia dimakan? Bahagian 1: Ciri Utama

Hanya pengguna berdaftar boleh mengambil bahagian dalam tinjauan. Log masuk, Sama-sama.

Apakah topik yang perlu dibincangkan terlebih dahulu dalam artikel seterusnya dalam siri ini?

  • 53,2% Pengaturcaraan dalam PowerShell123

  • 42,4% Fungsi dan Modul PowerShell98

  • 22,1% Bagaimana untuk menandatangani skrip anda sendiri?51

  • 12,1% Bekerja dengan repositori melalui pembekal (penyedia)28

  • 57,6% Mengautomasikan Pentadbiran Komputer dengan PowerShell133

  • 30,7% Pengurusan perisian dan membenamkan boleh laku PowerShell dalam produk pihak ketiga71

231 pengguna mengundi. 37 pengguna berpantang.

Sumber: www.habr.com

Tambah komen