If-Koubou

Geek School: Pelajari Cara Mengotomatiskan Windows dengan PowerShell

Geek School: Pelajari Cara Mengotomatiskan Windows dengan PowerShell (Bagaimana caranya)

Dalam edisi Geek School ini, kami akan membantu Anda memahami bahasa scripting PowerShell yang kuat yang dibangun langsung ke Windows, dan sangat berguna untuk mengetahui di lingkungan TI.

Meskipun rangkaian ini tidak terstruktur di sekitar ujian, mempelajari PowerShell adalah salah satu hal terpenting yang dapat Anda lakukan sebagai administrator jaringan, jadi jika ada satu hal yang ingin Anda pelajari untuk membantu karier TI Anda, inilah saatnya. Plus, ini sangat menyenangkan.

pengantar

PowerShell adalah alat otomasi terkuat yang ditawarkan Microsoft, dan keduanya adalah shell dan bahasa scripting.

Harap dicatat bahwa seri ini didasarkan pada PowerShell 3, yang dikirimkan dengan Windows 8 dan Server 2012. Jika Anda menjalankan Windows 7, unduh pembaruan PowerShell 3 sebelum melanjutkan.

Temui Konsol dan ISE

Ada dua cara berinteraksi dengan PowerShell di luar kotak, Konsol dan Lingkungan Scripting Terpadu - juga dikenal sebagai ISE. ISE telah jauh lebih baik dari versi menyeramkan yang dikirimkan dengan PowerShell 2 dan dapat dibuka dengan menekan kombinasi keyboard Win + R untuk membuka kotak run, kemudian mengetik powershell_ise dan menekan enter.

Seperti yang Anda lihat olahraga ISE tampilan split sehingga Anda dapat dengan cepat skrip sementara masih bisa melihat hasilnya di bagian bawah ISE. Bagian bawah ISE, di mana hasil skrip Anda dicetak, juga dapat digunakan sebagai prompt REPL - seperti command prompt. The v3 ISE akhirnya menambahkan dukungan untuk intellisense baik di panel skrip maupun konsol interaktif.

Atau, Anda dapat berinteraksi dengan PowerShell menggunakan PowerShell Console, yang akan saya gunakan untuk sebagian besar seri ini. Konsol PowerShell berperilaku seperti prompt perintah - Anda cukup memasukkan perintah dan memuntahkan hasilnya. Untuk membuka Windows PowerShell Console, tekan lagi kombinasi keyboard Win + R untuk membuka kotak run dan ketik powershell lalu tekan enter.

BANTUAN REPL seperti ini luar biasa untuk kepuasan instan: Anda memasukkan perintah dan Anda mendapatkan hasil. Meskipun Konsol tidak menawarkan intellisense, ia menawarkan sesuatu yang disebut tab completion yang fungsinya sama - cukup ketik perintah dan tekan tab untuk menggilir kemungkinan kecocokan.

Menggunakan Sistem Bantuan

Di versi PowerShell sebelumnya, file bantuan disertakan saat Anda menginstal Windows. Ini adalah solusi yang baik untuk sebagian besar tetapi meninggalkan kami dengan masalah yang signifikan. Ketika tim bantuan PowerShell harus berhenti mengerjakan file bantuan, para pengembang PowerShell masih sibuk mengkode dan membuat perubahan. Ini berarti bahwa ketika PowerShell dikirimkan, file bantuan tidak benar karena mereka tidak berisi perubahan baru yang telah dilakukan pada kode. Untuk mengatasi masalah ini, PowerShell 3 hadir tanpa file bantuan di luar kotak dan termasuk sistem bantuan yang dapat diupdate. Ini berarti sebelum Anda melakukan apa pun, Anda akan ingin mengunduh file bantuan terbaru. Anda dapat melakukannya dengan membuka Konsol PowerShell dan menjalankan:

Pembaruan-Bantuan

Selamat telah menjalankan perintah PowerShell Anda yang pertama! Yang benar adalah bahwa perintah Update-Help memiliki lebih banyak pilihan daripada hanya menjalankannya, dan untuk melihatnya kita akan ingin melihat bantuan untuk perintah. Untuk melihat bantuan untuk perintah, Anda cukup meneruskan nama perintah yang Anda inginkan dengan bantuan ke parameter Nama dari perintah Dapatkan-Bantuan, misalnya:

Dapatkan-Bantuan -Nama Pembaruan-Bantuan

Anda mungkin bertanya-tanya bagaimana menafsirkan semua teks itu, maksud saya mengapa ada dua banyak informasi di bawah bagian sintaks dan mengapa ada begitu banyak tanda kurung di semua tempat? Hal pertama yang pertama: alasan ada dua blok informasi di bawah bagian sintaks karena mereka mewakili cara berbeda untuk menjalankan perintah. Ini secara teknis disebut set parameter dan Anda hanya dapat menggunakan satu per satu (Anda tidak dapat mencampur parameter dari set yang berbeda). Pada screenshot di atas Anda dapat melihat bahwa set parameter teratas memiliki parameter SourcePath sedangkan bagian bawah tidak. Alasannya adalah karena Anda akan menggunakan set parameter teratas (yang termasuk SourcePath) jika Anda memperbarui file bantuan Anda dari komputer lain di jaringan Anda yang telah mengunduhnya, sementara Anda tidak perlu menentukan jalur sumber jika Anda hanya ingin mengambil file terbaru dari Microsoft.

Untuk menjawab pertanyaan kedua, ada sintaks tertentu yang membantu file mengikuti dan di sini adalah:

  • Tanda kurung persegi di sekitar nama parameter dan jenisnya berarti itu adalah parameter opsional dan perintah akan bekerja dengan baik tanpa itu.
  • Kurung persegi di sekitar nama parameter berarti parameternya adalah parameter posisi.
  • Hal di sebelah kanan parameter dalam kurung siku memberitahu Anda tipe data parameter mengharapkan.

Meskipun Anda harus belajar membaca sintaks file bantuan, jika Anda tidak yakin tentang parameter tertentu, tambahkan saja -Penuh ke akhir perintah bantuan dan gulir ke bawah ke bagian parameter, di mana ia akan memberi tahu Anda sedikit lebih banyak tentang setiap parameter. parameter.

Dapatkan-Bantuan -Nama Pembaruan-Bantuan -Full

Hal terakhir yang perlu Anda ketahui tentang sistem bantuan adalah bagaimana Anda dapat menggunakannya untuk menemukan perintah, yang sebenarnya sangat mudah. Anda lihat, PowerShell menerima wildcards hampir di mana saja, jadi menggunakannya bersama dengan perintah Get-Help memungkinkan Anda untuk dengan mudah menemukan perintah. Sebagai contoh, saya mencari perintah yang berhubungan dengan Windows Services:

Layanan Get-Help -Name * *

Tentu, semua informasi ini mungkin tidak berguna bagi kelelawar, tetapi percayalah, luangkan waktu dan pelajari cara menggunakan sistem bantuan. Ini berguna sepanjang waktu, bahkan untuk para skrip tingkat lanjut yang telah melakukan ini selama bertahun-tahun.

Keamanan

Ini tidak akan menjadi pengantar yang tepat tanpa menyebutkan keamanan.Kekhawatiran terbesar untuk tim PowerShell adalah PowerShell menjadi titik serangan terbaru dan terbesar untuk script kiddies. Mereka telah menempatkan beberapa langkah pengamanan untuk memastikan bahwa ini tidak terjadi, jadi mari kita lihat mereka.

Bentuk perlindungan paling dasar berasal dari fakta bahwa ekstensi file PS1 (ekstensi yang digunakan untuk menunjukkan skrip PowerShell) tidak terdaftar dengan host PowerShell, yang sebenarnya terdaftar dengan Notepad. Itu berarti jika Anda mengklik ganda pada file itu akan terbuka dengan notepad bukannya berjalan.

Kedua, Anda tidak dapat menjalankan skrip dari shell hanya dengan mengetikkan nama skrip, Anda harus menentukan path lengkap ke skrip. Jadi jika Anda ingin menjalankan skrip pada drive C Anda, Anda harus mengetik:

C: \ runme.ps1

Atau jika Anda sudah berada di root drive C Anda dapat menggunakan yang berikut ini:

. \ runme.ps1

Akhirnya, PowerShell memiliki sesuatu yang disebut Kebijakan Eksekusi, yang menghentikan Anda dari hanya menjalankan skrip lama. Faktanya, secara default, Anda tidak dapat menjalankan skrip apa pun dan perlu mengubah kebijakan eksekusi Anda jika Anda ingin diizinkan untuk menjalankannya. Ada 4 Kebijakan Eksekusi yang terkenal:

  • Terbatas: Ini adalah konfigurasi default di PowerShell. Pengaturan ini berarti tidak ada skrip yang dapat berjalan, terlepas dari tanda tangannya. Satu-satunya hal yang dapat dijalankan di PowerShell dengan pengaturan ini adalah perintah individu.
  • AllSigned: Pengaturan ini memungkinkan skrip berjalan di PowerShell. Skrip harus memiliki tanda tangan digital terkait dari penerbit tepercaya. Akan ada perintah sebelum Anda menjalankan skrip dari penerbit tepercaya.
  • RemoteSigned: Pengaturan ini memungkinkan skrip dijalankan, tetapi mengharuskan skrip dan file konfigurasi yang diunduh dari Internet memiliki tanda tangan digital terkait dari penerbit tepercaya. Skrip yang dijalankan dari komputer lokal tidak perlu ditandatangani. Tidak ada petunjuk sebelum menjalankan skrip.
  • Tidak dibatasi: Ini memungkinkan skrip yang tidak ditandatangani untuk dijalankan, termasuk semua skrip dan file konfigurasi yang diunduh dari Internet. Ini akan menyertakan file dari Outlook dan Messenger. Risiko di sini adalah menjalankan skrip tanpa tanda tangan atau keamanan apa pun. Kami kembali menyatakan bahwa Anda tidak pernah menerima pengaturan ini.

Untuk melihat apa yang diatur Kebijakan Eksekusi Anda saat ini, buka Konsol PowerShell dan ketik:

Dapatkan-EksekusiPolicy

Untuk kursus ini dan sebagian besar keadaan lainnya, Kebijakan RemoteSigned adalah yang terbaik, jadi lanjutkan dan ubah kebijakan Anda menggunakan hal-hal berikut.

Catatan: Ini perlu dilakukan dari Konsol PowerShell yang ditinggikan.

Set-ExecutionPolicy RemoteSigned

Itu saja untuk orang-orang kali ini, sampai jumpa besok untuk bersenang-senang lagi PowerShell.

Penafian: Istilah yang tepat untuk perintah PowerShell adalah cmdlet, dan mulai sekarang kita akan menggunakan terminologi yang benar ini. Itu terasa lebih tepat untuk menyebut mereka perintah untuk pengantar ini.

Jika Anda memiliki pertanyaan, silakan tweet saya @taybgibb, atau tinggalkan komentar.