Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama

Secara historis, utilitas baris perintah pada sistem Unix dikembangkan lebih baik daripada di Windows, tetapi dengan munculnya solusi baru, situasinya telah berubah.

Windows PowerShell memungkinkan administrator sistem untuk mengotomatiskan sebagian besar tugas rutin. Dengannya, Anda dapat mengubah pengaturan, menghentikan dan memulai layanan, dan juga melakukan pemeliharaan pada sebagian besar aplikasi yang terinstal. Salah jika menganggap jendela biru sebagai penerjemah perintah lainnya. Pendekatan ini tidak mencerminkan inti dari inovasi yang diusulkan oleh Microsoft. Faktanya, kemungkinan Windows PowerShell jauh lebih luas: dalam serangkaian artikel singkat, kami akan mencoba mencari tahu perbedaan solusi Microsoft dari alat yang lebih kami kenal.

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama

Fitur utama 

Tentu saja, Windows PowerShell pada dasarnya adalah shell skrip, awalnya dibuat di .NET Framework dan kemudian di .NET Core. Tidak seperti shell yang menerima dan mengembalikan data teks, Windows PowerShell bekerja dengan kelas .NET yang memiliki properti dan metode. PowerShell memungkinkan Anda menjalankan perintah umum dan juga memberi Anda akses ke objek COM, WMI, dan ADSI. Ia menggunakan berbagai penyimpanan, seperti sistem file atau registri Windows, untuk akses yang disebut. penyedia. Perlu diperhatikan kemungkinan menyematkan komponen PowerShell yang dapat dieksekusi di aplikasi lain untuk mengimplementasikan berbagai operasi, termasuk. melalui antarmuka grafis. Hal sebaliknya juga terjadi: banyak aplikasi Windows menyediakan akses ke antarmuka manajemennya melalui PowerShell. 

Windows PowerShell memungkinkan Anda untuk:

  • Mengubah pengaturan sistem operasi;
  • Kelola layanan dan proses;
  • Konfigurasikan peran dan komponen server;
  • Instal perangkat lunak;
  • Kelola perangkat lunak yang diinstal melalui antarmuka khusus;
  • Sematkan komponen yang dapat dieksekusi dalam program pihak ketiga;
  • Membuat skrip untuk mengotomatiskan tugas administrasi;
  • Bekerja dengan sistem file, registri Windows, penyimpanan sertifikat, dll.

Shell dan lingkungan pengembangan

Ada Windows PowerShell dalam dua bentuk: selain emulator konsol dengan shell perintah, ada Integrated Scripting Environment (ISE). Untuk mengakses antarmuka baris perintah, cukup pilih pintasan yang sesuai dari menu Windows atau jalankan PowerShell.exe dari menu Run. Jendela biru akan muncul di layar, sangat berbeda kemampuannya dari cmd.exe kuno. Terdapat pelengkapan otomatis dan fitur lain yang familiar bagi pengguna shell perintah untuk sistem Unix.

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama

Untuk bekerja dengan shell, Anda perlu mengingat beberapa pintasan keyboard:

  • Panah atas dan bawah menelusuri riwayat untuk mengulangi perintah yang diketik sebelumnya;
  • Panah kanan di akhir baris mengetik ulang perintah sebelumnya karakter demi karakter;
  • Ctrl+Home menghapus teks yang diketik dari posisi kursor ke awal baris;
  • Ctrl+End menghapus teks dari kursor hingga akhir baris.

F7 menampilkan jendela dengan perintah yang diketik dan memungkinkan Anda memilih salah satunya. Konsol ini juga berfungsi dengan pemilihan teks dengan mouse, salin-tempel, penentuan posisi kursor, penghapusan, spasi mundur - semua yang kami suka.

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
Windows PowerShell ISE adalah lingkungan pengembangan lengkap dengan editor kode bertab dan disorot sintaksis, pembuat perintah, debugger bawaan, dan kesenangan pemrograman lainnya. Jika Anda menulis tanda hubung setelah nama perintah di editor lingkungan pengembangan, Anda akan mendapatkan semua opsi yang tersedia di daftar drop-down dengan indikasi jenisnya. Anda dapat meluncurkan PowerShell ISE baik melalui pintasan dari menu sistem, atau menggunakan file yang dapat dieksekusi powershell_ise.exe.

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama

Cmdlet 

Di Windows PowerShell, yang disebut. cmdlet. Ini adalah kelas .NET khusus yang menyediakan berbagai fungsi. Mereka diberi nama Action-Object (atau Verb-Noun, jika Anda mau), dan tautan yang dipisahkan tanda hubung menyerupai predikat dan subjek dalam kalimat bahasa alami. Misalnya, Dapatkan-Bantuan secara harfiah berarti "Dapatkan-Bantuan", atau dalam konteks PowerShell: "Tampilkan-Bantuan". Faktanya, ini adalah analog dari perintah man di sistem Unix, dan manual di PowerShell harus diminta dengan cara ini, dan bukan dengan memanggil cmdlet dengan kunci --help atau /?. Jangan lupa tentang dokumentasi PowerShell online: Microsoft memilikinya dengan cukup detail.

Selain Dapatkan, cmdlet menggunakan kata kerja lain untuk menunjukkan tindakan (dan sebenarnya bukan hanya kata kerja). Dalam daftar di bawah ini kami memberikan beberapa contoh:

Add - menambahkan;
Clear - jernih;
Enable - menyalakan;
Disable - mematikan;
New - membuat;
Remove - menghapus;
Set - bertanya;
Start - berlari;
Stop - berhenti;
Export - ekspor;
Import - impor.

Ada cmdlet sistem, pengguna, dan opsional: sebagai hasil eksekusi, semuanya mengembalikan objek atau array objek. Mereka tidak peka huruf besar-kecil, mis. dari sudut pandang penerjemah perintah, tidak ada perbedaan antara Dapatkan-Bantuan dan dapatkan-bantuan. Karakter ';' digunakan untuk pemisahan, tetapi wajib untuk meletakkannya hanya jika beberapa cmdlet dijalankan pada baris yang sama. 

Cmdlet Windows PowerShell dikelompokkan ke dalam modul (NetTCPIP, Hyper-V, dll.), dan ada cmdlet Get-Command untuk mencari berdasarkan objek dan tindakan. Anda dapat menampilkan bantuan seperti ini:

Get-Help Get-Command

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama

Secara default, perintah menampilkan bantuan singkat, tetapi parameter (argumen) diteruskan ke cmdlet sesuai kebutuhan. Dengan bantuan mereka, Anda dapat, misalnya, mendapatkan bantuan terperinci (parameter -Rincian) atau lengkap (parameter -Penuh), serta menampilkan contoh (parameter -Contoh):

Get-Help Get-Command -Examples

Bantuan di Windows PowerShell diperbarui oleh cmdlet Update-Help. Jika baris perintah terlalu panjang, argumen cmdlet dapat dipindahkan ke argumen berikutnya dengan menulis karakter layanan '`' dan menekan Enter - menyelesaikan penulisan perintah pada satu baris dan melanjutkan pada baris lainnya tidak akan berhasil.

Berikut ini beberapa contoh cmdlet yang umum: 

Get-Process - tampilkan proses yang berjalan dalam sistem;
Get-Service — menunjukkan layanan dan statusnya;
Get-Content - menampilkan isi file.

Untuk cmdlet dan utilitas eksternal yang sering digunakan, Windows PowerShell memiliki sinonim pendek - alias (dari bahasa Inggris Alias). Misalnya, dir adalah alias untuk Get-ChildItem. Daftar sinonim juga mencakup analog perintah dari sistem Unix (ls, ps, dll.), dan cmdlet Get-Help dipanggil dengan perintah bantuan. Daftar sinonim lengkap dapat dilihat menggunakan cmdlet Get-Alias:

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama

Skrip, Fungsi, Modul, dan Bahasa PowerShell

Skrip Windows PowerShell disimpan sebagai file teks biasa dengan ekstensi .ps1. Anda tidak dapat meluncurkannya dengan mengklik dua kali: Anda perlu mengklik kanan untuk memanggil menu konteks dan memilih item “Jalankan di PowerShell”. Dari konsol, Anda harus menentukan path lengkap ke skrip, atau pergi ke direktori yang sesuai dan menulis nama file. Skrip yang berjalan juga dibatasi oleh kebijakan sistem, dan untuk memeriksa pengaturan saat ini, Anda dapat menggunakan cmdlet Get-ExecutionPolicy, yang akan mengembalikan salah satu nilai berikut:

Restricted — peluncuran skrip dinonaktifkan (secara default);
AllSigned - hanya peluncuran skrip yang ditandatangani oleh pengembang tepercaya yang diperbolehkan;
RemoteSigned - diizinkan menjalankan skrip yang ditandatangani dan dimiliki;
Unrestricted - diperbolehkan menjalankan skrip apa pun.

Administrator mempunyai dua pilihan. Yang paling aman melibatkan penandatanganan skrip, tetapi ini adalah sihir yang cukup serius - kita akan membahasnya di artikel mendatang. Sekarang mari kita mengambil jalan yang paling sedikit perlawanannya dan mengubah kebijakan:

Set-ExecutionPolicy RemoteSigned

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
PowerShell harus dijalankan sebagai administrator untuk melakukan hal ini, meskipun Anda dapat mengubah kebijakan untuk pengguna saat ini dengan pengaturan khusus.

Skrip ditulis dalam bahasa pemrograman berorientasi objek, yang perintahnya diberi nama sesuai dengan prinsip yang sama seperti cmdlet yang dibahas sebelumnya: “Objek Aksi” (“Kata Kerja-Kata Benda”). Tujuan utamanya adalah untuk mengotomatiskan tugas-tugas administratif, tetapi ini adalah bahasa interpretasi lengkap yang memiliki semua konstruksi yang diperlukan: lompatan bersyarat, loop, variabel, array, objek, penanganan kesalahan, dll. Editor teks apa pun boleh digunakan untuk pembuatan skrip, tetapi yang terbaik adalah menjalankan Windows PowerShell ISE.

Anda dapat meneruskan parameter ke skrip, menjadikannya wajib, dan menetapkan nilai default. Selain itu, Windows PowerShell memungkinkan Anda membuat dan memanggil fungsi dengan cara yang sama seperti cmdlet, dengan menggunakan konstruksi Fungsi dan kurung kurawal. Skrip dengan fungsi disebut modul dan memiliki ekstensi .psm1. Modul harus disimpan dalam direktori yang ditentukan dalam variabel lingkungan PowerShell. Anda dapat melihatnya dengan perintah berikut:

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

Konveyor

Pada contoh terakhir, kami telah menggunakan konstruksi yang familier bagi pengguna shell Unix. Di Windows PowerShell, bilah vertikal juga memungkinkan Anda meneruskan output dari satu perintah ke input perintah lainnya, namun ada perbedaan signifikan dalam implementasi pipeline: kita tidak lagi berbicara tentang sekumpulan karakter atau semacamnya. teks. Cmdlet bawaan atau fungsi yang ditentukan pengguna mengembalikan objek atau array objek, dan juga dapat menerimanya sebagai input. Seperti shell Bourne dan banyak penerusnya, PowerShell membuat tugas-tugas kompleks menjadi lebih mudah dengan pipeline.

Contoh pipeline paling sederhana terlihat seperti ini:

Get-Service | Sort-Object -property Status

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
Pertama, cmdlet Get-Service dijalankan, dan kemudian semua layanan yang diterima diteruskan ke cmdlet Sort-Object untuk diurutkan berdasarkan properti Status. Argumen mana yang meneruskan hasil dari bagian pipa sebelumnya bergantung pada tipenya - biasanya itu adalah InputObject. Masalah ini akan dibahas lebih detail dalam artikel tentang bahasa pemrograman PowerShell. 

Jika mau, Anda dapat melanjutkan rantai dan meneruskan hasil operasi Sortir-Objek ke cmdlet lain (hasilnya akan dieksekusi dari kiri ke kanan). Omong-omong, pengguna Windows juga memiliki akses ke konstruksi penomoran halaman yang familiar bagi semua Unixoids: 

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

Menjalankan tugas di latar belakang 

Seringkali, perintah tertentu perlu dijalankan di latar belakang agar tidak menunggu hasil eksekusinya di sesi shell. Windows PowerShell memiliki beberapa cmdlet untuk kasus ini:

Start-Job - meluncurkan tugas latar belakang;
Stop-Job — menghentikan tugas latar belakang;
Get-Job — melihat daftar tugas latar belakang;
Receive-Job — melihat hasil pelaksanaan tugas latar belakang;
Remove-Job — menghapus tugas latar belakang;
Wait-Job - mentransfer tugas latar belakang kembali ke konsol.

Untuk memulai tugas latar belakang, kami menggunakan cmdlet Start-Job dan menentukan perintah atau kumpulan perintah dalam kurung kurawal:

Start-Job {Get-Service}

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
Tugas latar belakang di Windows PowerShell dapat dimanipulasi dengan mengetahui namanya. Pertama, mari pelajari cara menampilkannya:

Get-Job

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
Sekarang mari kita tunjukkan hasil pekerjaan Job1:

Receive-Job Job1 | more

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
Semuanya cukup sederhana.

Eksekusi perintah jarak jauh

Windows PowerShell memungkinkan Anda menjalankan perintah dan skrip tidak hanya di komputer lokal, tetapi juga di komputer jarak jauh, dan bahkan di seluruh grup mesin. Ada beberapa cara untuk melakukan ini:

  • Banyak cmdlet yang memiliki parameter -ComputerName, tetapi dengan cara ini tidak akan berhasil, misalnya, membuat konveyor;
  • cmdlet Enter-PSSession memungkinkan Anda membuat sesi interaktif pada mesin jarak jauh; 
  • Menggunakan cmdlet Invoke-Command Anda dapat menjalankan perintah atau skrip di satu atau lebih komputer jarak jauh.

Versi PowerShell

PowerShell telah banyak berubah sejak dirilis pertama kali pada tahun 2006. Alat ini tersedia untuk banyak sistem yang berjalan pada platform perangkat keras berbeda (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. Rilis terbaru 6.2 dirilis pada 10 Januari 2018. Skrip yang ditulis untuk versi sebelumnya kemungkinan besar akan berfungsi di versi yang lebih baru, namun backporting dapat menjadi masalah karena PowerShell telah memperkenalkan sejumlah besar cmdlet baru selama bertahun-tahun pengembangan. Anda dapat mengetahui versi shell perintah yang diinstal pada komputer menggunakan properti PSVersion dari variabel bawaan $PSVersionTable:

$PSVersionTable.PSVersion

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
Anda juga dapat menggunakan cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama
Hal yang sama dilakukan dengan cmdlet Get-Host. Sebenarnya ada banyak pilihan, tetapi untuk menggunakannya Anda perlu mempelajari bahasa pemrograman PowerShell, yang akan kita lakukan di artikel berikutnya

Hasil 

Microsoft telah berhasil membuat shell yang sangat kuat dengan lingkungan terintegrasi yang nyaman untuk mengembangkan skrip. Ini berbeda dari alat yang kita kenal di dunia Unix dengan integrasi mendalam dengan sistem operasi keluarga Windows, serta dengan perangkat lunak untuk mereka dan platform .NET Core. PowerShell bisa disebut shell berorientasi objek karena cmdlet dan fungsi yang ditentukan pengguna mengembalikan objek atau array objek dan dapat menjadikannya sebagai input. Kami berpendapat bahwa semua administrator server di Windows harus memiliki alat ini: waktu telah berlalu ketika mereka dapat melakukannya tanpa baris perintah. Shell konsol tingkat lanjut sangat dibutuhkan VPS berbiaya rendah kami yang menjalankan Windows Server Core, tapi itu cerita yang sama sekali berbeda.

Apa itu Windows PowerShell dan dimakan dengan apa? Bagian 1: Fitur Utama

Hanya pengguna terdaftar yang dapat berpartisipasi dalam survei. Masuk, silakan.

Topik apa yang harus dibahas pertama kali dalam artikel berikutnya dalam seri ini?

  • 53,2%Pemrograman di PowerShell123

  • 42,4%Fungsi dan Modul PowerShell98

  • 22,1%Bagaimana cara menandatangani skrip Anda sendiri?51

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

  • 57,6%Mengotomatiskan Administrasi Komputer dengan PowerShell133

  • 30,7%Manajemen perangkat lunak dan penyematan executable PowerShell di produk pihak ketiga71

231 pengguna memilih. 37 pengguna abstain.

Sumber: www.habr.com

Tambah komentar