Laman » bagaimana untuk » Sekolah Geek Ketahui Cara Mengotomatikkan Windows dengan PowerShell

    Sekolah Geek Ketahui Cara Mengotomatikkan Windows dengan PowerShell

    Dalam edisi Geek School ini, kami akan membantu anda memahami bahasa skrip PowerShell yang kuat yang dibina terus ke dalam Windows, dan sangat berguna untuk mengetahui dalam persekitaran IT.

    Walaupun siri ini tidak berstruktur di sekeliling peperiksaan, pembelajaran PowerShell adalah salah satu perkara yang paling penting yang boleh anda lakukan sebagai pentadbir rangkaian, jadi jika ada satu perkara yang anda ingin belajar untuk membantu kerjaya IT anda, inilah ia. Plus, ini sangat menyeronokkan.

    Pengenalan

    PowerShell adalah alat automasi yang paling kuat yang ditawarkan oleh Microsoft, dan kedua-dua shell dan bahasa skrip.

    Sila ambil perhatian bahawa siri ini adalah berdasarkan PowerShell 3, yang mengangkut Windows 8 dan Server 2012. Jika anda menjalankan Windows 7 sila muat turun pembaruan PowerShell 3 sebelum anda meneruskan.

    Temui Konsol dan ISE

    Terdapat dua cara untuk berinteraksi dengan PowerShell daripada kotak, Konsol dan Persekitaran Scripting Bersepadu - juga dikenali sebagai ISE. ISE telah jauh lebih baik dari versi yang mengerikan yang dihantar dengan PowerShell 2 dan boleh dibuka dengan menekan kombinasi keyboard Win + R untuk membuka kotak run, kemudian menaip powerhell_ise dan menekan masuk.

    Memandangkan anda dapat melihat ISE memaparkan pandangan perpecahan supaya anda dapat skrip dengan cepat sambil masih dapat melihat hasilnya di bahagian bawah ISE. Separuh bawah ISE, di mana hasil skrip anda dicetak, juga boleh digunakan sebagai prompt REPL - seperti command prompt. V3 ISE akhirnya menambah sokongan untuk intellisense di kedua panel skrip serta konsol interaktif.

    Sebagai alternatif, anda boleh berinteraksi dengan PowerShell menggunakan PowerShell Console, yang akan saya gunakan untuk sebahagian besar siri ini. Konsol PowerShell berkelakuan seperti perintah arahan - anda hanya memasukkan arahan dan ia meludahkan hasilnya. Untuk membuka Windows PowerShell Console, sekali lagi tekan kombinasi keyboard Win + R untuk membuka kotak run dan ketik powerhell kemudian tekan enter.

    REPL meminta seperti ini hebat untuk kepuasan segera: anda memasukkan arahan dan anda mendapat keputusan. Walaupun Konsol tidak menawarkan intellisense, ia menawarkan sesuatu yang dipanggil penyiapan tab yang berfungsi lebih sama - hanya mula menaip perintah dan tekan tab untuk mengulangi kemungkinan perlawanan.

    Menggunakan Sistem Bantuan

    Dalam versi lepas PowerShell, fail bantuan disertakan semasa anda memasang Windows. Ini adalah penyelesaian yang baik untuk sebahagian besar tetapi meninggalkan kita dengan masalah yang besar. Apabila pasukan bantuan PowerShell terpaksa berhenti bekerja pada fail bantuan pemaju PowerShell masih sibuk pengekodan dan membuat perubahan. Ini bermakna bahawa apabila PowerShell dihantar, fail bantuan tidak betul kerana mereka tidak mengandungi perubahan baru yang telah dibuat kepada kod. Untuk menyelesaikan masalah ini, PowerShell 3 tidak mempunyai fail bantuan keluar dari kotak dan termasuk sistem bantuan yang boleh dikemas kini. Ini bermakna sebelum anda melakukan apa sahaja yang anda mahu memuat turun fail bantuan terkini. Anda boleh melakukannya dengan membuka PowerShell Console dan menjalankan:

    Kemaskini-Bantuan

    Tahniah pada menjalankan arahan PowerShell yang pertama! Sebenarnya, perintah Bantuan Kemaskini mempunyai lebih banyak pilihan daripada hanya menjalankannya, dan untuk melihatnya, kami akan melihat bantuan untuk arahan itu. Untuk melihat bantuan untuk arahan anda hanya lulus nama arahan yang anda mahu membantu dengan parameter Nama perintah Get-Help, contohnya:

    Get-Help -Name Update-Help

    Anda mungkin tertanya-tanya bagaimana untuk mentafsirkan semua teks itu, saya maksudkan mengapa terdapat dua banyak maklumat di bawah bahagian sintaks dan mengapa terdapat banyak kurungan di seluruh tempat? Perkara pertama dahulu: sebab terdapat dua blok maklumat di bawah bahagian sintaks adalah kerana ia mewakili cara yang berbeza untuk menjalankan perintah tersebut. Ini dipanggil set parameter secara teknikal dan anda hanya boleh menggunakan satu per satu (anda tidak boleh mencampurkan parameter dari set yang berbeza). Dalam tangkapan skrin di atas, anda dapat melihat bahawa set parameter teratas mempunyai parameter SumberPath manakala bahagian bawahnya tidak. Alasannya ialah anda akan menggunakan set parameter teratas (yang termasuk SourcePath) jika anda mengemas kini fail bantuan anda dari mesin lain pada rangkaian anda yang telah memuat turunnya, sementara anda tidak perlu menentukan laluan sumber jika anda hanya mahu merakam fail terkini dari Microsoft.

    Untuk menjawab soalan kedua, terdapat sintaks tertentu yang membantu fail mengikuti dan di sini adalah:

    • Kurungan persegi di sekitar nama parameter dan jenisnya bermakna ia adalah parameter pilihan dan arahan akan berfungsi dengan baik tanpa ia.
    • Kurungan persegi di sekitar nama parameter bermakna parameter tersebut adalah parameter kedudukan.
    • Perkara di sebelah kanan parameter dalam kurungan bersudut memberitahu anda jenis data parameter yang dijangkakan.

    Walaupun anda harus belajar untuk membaca sintaks fail bantuan, jika anda tidak pasti tentang parameter tertentu hanya ditambah -Tutup hingga akhir perintah mendapatkan bantuan anda dan tatal ke bawah ke bahagian parameter, di mana ia akan memberitahu anda sedikit lebih banyak tentang setiap parameter.

    Get-Help -Name Update-Help-Full

    Perkara terakhir yang anda perlu ketahui tentang sistem bantuan ialah bagaimana anda boleh menggunakannya untuk mengetahui arahan, yang sebenarnya sangat mudah. Anda lihat, PowerShell menerima kad liar hampir di mana-mana sahaja, jadi menggunakannya bersama dengan arahan Get-Help membolehkan anda dengan mudah menemukan arahan. Sebagai contoh, saya sedang mencari arahan yang berurusan dengan Windows Services:

    Get-Help -Name * service *

    Pasti, semua maklumat ini mungkin tidak berguna untuk kelawar, tapi percayalah, luangkan waktu dan belajar bagaimana menggunakan sistem bantuan. Ia datang dengan berguna sepanjang masa, walaupun untuk skrip maju yang telah melakukan ini selama bertahun-tahun.

    Keselamatan

    Ini tidak akan menjadi pengenalan yang betul tanpa menyebut keselamatan. Kebimbangan terbesar untuk pasukan PowerShell ialah PowerShell menjadi titik serangan terbaru dan terbesar untuk skrip kiddies. Mereka telah meletakkan beberapa langkah keselamatan untuk memastikan bahawa ini tidak berlaku, jadi mari kita lihat mereka.

    Bentuk perlindungan yang paling asas berasal dari kenyataan bahawa sambungan fail PS1 (pelanjutan yang digunakan untuk menandakan skrip PowerShell) tidak didaftarkan dengan host PowerShell, yang sebenarnya didaftarkan dengan Notepad. Ini bermakna jika anda klik dua kali pada fail ia akan terbuka dengan notepad dan bukannya berjalan.

    Kedua, anda tidak dapat menjalankan skrip dari shell dengan hanya menaip nama skrip, anda perlu menentukan laluan penuh ke skrip. Jadi jika anda ingin menjalankan skrip pada pemacu C anda, anda perlu mengetik:

    C: \ runme.ps1

    Atau jika anda sudah berada di akar pemacu C anda boleh menggunakan yang berikut:

    .\ runme.ps1

    Akhir sekali, PowerShell mempunyai sesuatu yang dipanggil Dasar Pelaksanaan, yang menghalang anda daripada hanya menjalankan skrip lama. Sebenarnya, secara lalai, anda tidak boleh menjalankan sebarang skrip dan perlu menukar dasar pelaksanaan anda jika anda mahu dibenarkan menjalankannya. Terdapat 4 Pelaksanaan Polisi Pelaksanaan:

    • Terhad: Ini ialah konfigurasi lalai dalam PowerShell. Tetapan ini bermaksud bahawa skrip tidak boleh dijalankan, tanpa mengira tanda tangannya. Satu-satunya perkara yang boleh dijalankan di PowerShell dengan tetapan ini ialah arahan individu.
    • AllSigned: Tetapan ini membolehkan skrip berjalan di PowerShell. Skrip mesti mempunyai tandatangan digital yang berkaitan dari penerbit yang dipercayai. Akan ada prompt sebelum anda menjalankan skrip daripada penerbit yang dipercayai.
    • RemoteSigned: Tetapan ini membolehkan skrip dijalankan, tetapi memerlukan skrip dan fail konfigurasi yang dimuat turun dari Internet mempunyai tandatangan digital yang berkaitan dari penerbit yang dipercayai. Skrip yang dijalankan dari komputer tempatan tidak perlu ditandatangani. Tiada arahan sebelum menjalankan skrip.
    • Tidak terkawal: Ini membenarkan skrip yang tidak ditandatangani untuk dijalankan, termasuk semua skrip dan fail konfigurasi yang dimuat turun dari Internet. Ini termasuk fail dari Outlook dan Messenger. Risiko di sini menjalankan skrip tanpa sebarang tandatangan atau keselamatan. Kami bersambung semula bahawa anda tidak pernah kami menetapkan ini.

    Untuk melihat apakah Dasar Pelaksanaan semasa anda ditetapkan, buka PowerShell Console dan ketik:

    Get-ExecutionPolicy

    Untuk kursus ini dan kebanyakan hal lain, Dasar RemoteSigned adalah yang terbaik, jadi teruskan dan tukar dasar anda menggunakan yang berikut.

    Nota: Ini perlu dilakukan dari Konsol PowerShell yang tinggi.

    Set-ExecutionPolicy RemoteSigned

    Itu sahaja untuk orang kali ini, jumpa esok untuk lebih menyeronokkan PowerShell.


    Penafian: Istilah yang sesuai untuk arahan PowerShell ialah cmdlet, dan mulai sekarang kami akan menggunakan istilah yang betul ini. Ia hanya merasa lebih sesuai untuk memanggil mereka arahan untuk pengenalan ini.


    Jika anda mempunyai sebarang soalan, anda boleh tweet saya @taybgibb, atau tinggalkan komen.