15Jul
Dalam edisi Geek School ini, kami akan membantu Anda memahami bahasa script PowerShell yang kuat yang dibangun langsung ke Windows, dan sangat berguna untuk diketahui di lingkungan TI.
Sementara seri ini tidak terstruktur di seputar ujian, belajar PowerShell adalah salah satu hal terpenting yang dapat Anda lakukan sebagai administrator jaringan, jadi jika ada satu hal yang ingin Anda pelajari untuk membantu karir TI Anda, inilah dia. Plus, ini sangat menyenangkan.
Pendahuluan
PowerShell adalah alat otomatisasi paling kuat yang ditawarkan Microsoft, dan keduanya merupakan shell dan bahasa scripting.
Harap dicatat bahwa seri ini didasarkan pada PowerShell 3, yang dikirimkan bersama Windows 8 dan Server 2012. Jika Anda menjalankan Windows 7, silakan download pembaruan PowerShell 3 sebelum melanjutkan.
Memenuhi Konsol dan ISE
Ada dua cara untuk berinteraksi dengan PowerShell di luar kotak, Console dan Integrated Scripting Environment - juga dikenal sebagai ISE.ISE telah jauh membaik dari versi mengerikan yang dikirimkan bersama PowerShell 2 dan dapat dibuka dengan menekan kombinasi keyboard Win + R untuk menampilkan kotak run, lalu mengetik powershell_ise dan menekan enter.
Seperti yang Anda lihat, olahraga ISE berpisah sehingga Anda dapat dengan cepat menulis naskah sambil tetap dapat melihat hasilnya di bagian bawah ISE.Bagian bawah ISE, di mana hasil naskah Anda dicetak, juga dapat digunakan sebagai prompt REPL - sama seperti command prompt. ISE v3 akhirnya menambahkan dukungan untuk intellisense baik di panel naskah maupun konsol interaktif.
Atau, Anda dapat berinteraksi dengan PowerShell menggunakan Konsol PowerShell, itulah yang akan saya gunakan untuk sebagian besar rangkaian ini. Konsol PowerShell berperilaku seperti command prompt - Anda cukup memasukkan perintah dan meludahkan hasilnya. Untuk membuka Konsol PowerShell Windows, sekali lagi tekan kombinasi keyboard Win + R untuk membuka kotak run dan ketik powershell lalu tekan enter. REPL
meminta seperti ini sangat mengagumkan untuk kepuasan instan: Anda memasukkan sebuah perintah dan Anda mendapatkan hasilnya. Sementara Konsol tidak menawarkan IntelliSense, ia menawarkan sesuatu yang disebut penyelesaian tab yang fungsinya sama - cukup mulai mengetikkan perintah dan tab tekan untuk memutar melalui kemungkinan kecocokan.
Menggunakan Sistem Bantuan
Di versi terakhir PowerShell, file bantuan disertakan saat Anda menginstal Windows. Ini adalah solusi yang bagus untuk sebagian besar tapi meninggalkan kami dengan masalah yang signifikan. Ketika tim bantuan PowerShell harus berhenti mengerjakan file bantuan, para pengembang PowerShell masih sibuk melakukan coding dan melakukan perubahan. Ini berarti ketika PowerShell dikirim, file bantuan tidak benar karena tidak berisi perubahan terbaru yang telah dibuat pada kode. Untuk mengatasi masalah ini, PowerShell 3 hadir tanpa bantuan file di luar kotak dan menyertakan sistem bantuan yang dapat diupdate. Ini berarti sebelum Anda melakukan apapun, Anda ingin mendownload file bantuan terbaru. Anda dapat melakukannya dengan membuka Konsol PowerShell dan menjalankan:
Update-Help
Selamat saat menjalankan perintah PowerShell pertama Anda! Yang benar adalah bahwa perintah Update-Help memiliki lebih banyak pilihan daripada hanya menjalankannya, dan untuk melihatnya, kita akan ingin melihat bantuan untuk perintah tersebut. Untuk melihat bantuan perintah Anda cukup memasukkan nama perintah yang Anda inginkan untuk membantu parameter Name dari perintah Get-Help, misalnya:
Get-Help -Name Update-Help
Anda mungkin bertanya-tanya bagaimana menafsirkannya.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 adalah karena mereka mewakili cara yang berbeda untuk menjalankan perintah. Ini secara teknis disebut parameter set dan Anda hanya dapat menggunakannya satu per satu( Anda tidak dapat mencampur parameter dari rangkaian yang berbeda).Pada screenshot di atas Anda dapat melihat bahwa set parameter teratas memiliki parameter SourcePath sedangkan bagian bawahnya tidak. Alasannya adalah bahwa Anda akan menggunakan set parameter teratas( yang mencakup SourcePath) jika Anda memperbarui file bantuan dari mesin lain di jaringan Anda yang telah mendownloadnya, sementara Anda tidak perlu menentukan jalur sumber jika Andahanya ingin ambil file terbaru dari Microsoft.
Untuk menjawab pertanyaan kedua, ada sintaks tertentu yang membantu file ikuti dan ini dia:
Tanda kurung siku- di sekitar nama parameter dan jenisnya berarti itu adalah parameter opsional dan perintahnya akan bekerja dengan baik tanpa itu. Tanda kurung siku
- di sekitar nama parameter berarti parameter adalah parameter posisi.
- Hal di sebelah kanan parameter pada kurung siku memberi tahu tipe data yang ditunggu parameternya.
Meskipun Anda harus belajar membaca sintaks file bantuan, jika Anda tidak yakin tentang parameter tertentu, cukup menambahkan - Penuh pada akhir perintah bantuan Anda dan gulir ke bawah ke bagian parameter, di mana akan memberi tahu Anda sedikit lebih banyak tentangsetiap parameter
Get-Help -Name Update-Help -Full
Hal terakhir yang perlu Anda ketahui tentang sistem bantuan adalah bagaimana Anda dapat menggunakannya untuk menemukan perintah, yang sebenarnya sangat mudah. Anda tahu, PowerShell menerima wildcard hampir di mana saja, jadi menggunakannya bersamaan dengan perintah Get-Help memungkinkan Anda menemukan perintah dengan mudah. Sebagai contoh, saya mencari perintah yang berhubungan dengan Windows Services:
Get-Help -Name * service *
Tentu, semua informasi ini mungkin tidak berguna untuk kelelawar, namun percayalah, luangkan waktu dan pelajari cara menggunakannya.sistem bantuanIni sangat berguna sepanjang waktu, bahkan untuk skrip tingkat lanjut yang telah melakukan ini selama bertahun-tahun.
Security
Ini tidak akan menjadi pengenalan yang tepat tanpa menyebutkan keamanan. Kekhawatiran terbesar bagi tim PowerShell adalah PowerShell menjadi titik serangan terbaru dan terhebat untuk script kiddies. Mereka telah melakukan beberapa langkah pengamanan untuk memastikan bahwa ini tidak terjadi, jadi mari kita lihat mereka.
Bentuk perlindungan yang paling dasar berasal dari fakta bahwa ekstensi file PS1( ekstensi yang digunakan untuk menunjukkan skrip PowerShell) tidak terdaftar dengan host PowerShell, yang sebenarnya terdaftar di Notepad. Itu berarti jika Anda klik dua kali pada sebuah file maka akan terbuka dengan notepad daripada menjalankannya.
Kedua, Anda tidak dapat menjalankan script dari shell dengan hanya mengetikkan nama script, Anda harus menentukan path lengkap ke script. Jadi jika Anda ingin menjalankan skrip pada drive C Anda, Anda harus mengetikkan:
C: \ runme.ps1
Atau jika Anda sudah berada di akar drive C Anda dapat menggunakan yang berikut ini:
. \ Runme.ps1
Akhirnya, PowerShell memiliki sesuatu yang disebut Kebijakan Eksekusi, yang menghentikan Anda untuk tidak menjalankan skrip lama apapun. Sebenarnya, secara default, Anda tidak dapat menjalankan skrip dan perlu mengubah kebijakan eksekusi jika Anda ingin diizinkan menjalankannya. Ada 4 Kebijakan Eksekusi yang menonjol:
- Dibatasi : Ini adalah konfigurasi default di PowerShell. Pengaturan ini berarti tidak ada skrip yang bisa dijalankan, terlepas dari tanda tangannya. Satu-satunya yang bisa dijalankan di PowerShell dengan setting ini adalah perintah individu.
- AllSigned: Pengaturan ini memungkinkan skrip dijalankan di PowerShell. Skrip harus memiliki tanda tangan digital terkait dari penerbit tepercaya. Akan ada prompt sebelum Anda menjalankan skrip dari penerbit tepercaya.
- RemoteSigned : Pengaturan ini memungkinkan skrip dijalankan, namun mengharuskan file skrip dan konfigurasi yang didownload 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 Terikat : Ini memungkinkan skrip tidak ditandatangani untuk dijalankan, termasuk semua skrip dan file konfigurasi yang diunduh dari Internet. Ini akan mencakup file dari Outlook dan Messenger. Resiko di sini adalah menjalankan skrip tanpa tanda tangan atau keamanan apapun. Kami recommenced bahwa Anda tidak pernah kita pengaturan ini.
Untuk melihat apa Kebijakan Pelaksanaan Anda saat ini ditetapkan, buka Konsol PowerShell dan ketik:
Get-ExecutionPolicy
Untuk kursus ini dan sebagian besar situasi lainnya, Kebijakan RemoteSigned adalah yang terbaik, jadi lanjutkan dan ubah kebijakan Anda menggunakan yang berikut.
Catatan: Ini perlu dilakukan dari Konsol PowerShell yang lebih tinggi.
Set-ExecutionPolicy RemoteSigned
Itu untuk orang-orang kali ini, sampai jumpa besok untuk kesenangan PowerShell lagi.
Penafian: Istilah yang tepat untuk perintah PowerShell adalah cmdlet, dan mulai sekarang kita akan menggunakan terminologi yang benar ini. Rasanya lebih tepat memanggil mereka untuk pengenalan ini.
Jika Anda memiliki pertanyaan, Anda dapat menciak saya @taybgibb, atau hanya meninggalkan komentar.