Menyelesaikan Isu Pelaksanaan Skrip PowerShell pada Windows Server 2008 R2

PowerShell

Menyelesaikan masalah Sekatan Pelaksanaan Skrip PowerShell

Apabila bekerja dengan Windows Server 2008 R2, pengguna mungkin menghadapi ralat yang menunjukkan bahawa pelaksanaan skrip PowerShell dilumpuhkan pada sistem. Isu ini boleh timbul apabila cuba menjalankan skrip melalui cmd.exe, walaupun selepas menetapkan dasar pelaksanaan kepada Tidak Terhad.

Walaupun mengesahkan bahawa dasar pelaksanaan ditetapkan kepada Tidak Terhad, skrip mungkin masih gagal untuk dilaksanakan, menyebabkan kekecewaan dan menghalang kemajuan. Panduan ini akan meneroka punca biasa isu ini dan menyediakan langkah untuk memastikan pelaksanaan skrip berjaya.

Perintah Penerangan
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force Tetapkan sementara dasar pelaksanaan skrip kepada Bypass untuk sesi PowerShell semasa, membenarkan pelaksanaan semua skrip tanpa sekatan.
powershell -File .\Management_Install.ps1 Melaksanakan fail skrip PowerShell yang ditentukan daripada baris arahan.
New-SelfSignedCertificate Mencipta sijil baru yang ditandatangani sendiri, yang boleh digunakan untuk menandatangani skrip PowerShell untuk pelaksanaan yang dipercayai.
Export-Certificate Mengeksport sijil ke fail, yang kemudiannya boleh diimport ke kedai sijil lain.
Import-Certificate Mengimport sijil ke dalam stor sijil tertentu, seperti Penerbit Dipercayai atau Pihak Berkuasa Pensijilan Root.
Set-AuthenticodeSignature Menandatangani skrip PowerShell dengan sijil tertentu, membenarkannya dilaksanakan pada sistem dengan dasar menandatangani skrip didayakan.

Memahami dan Melaksanakan Dasar Pelaksanaan Skrip dalam PowerShell

Skrip yang disediakan bertujuan untuk menangani isu pelaksanaan skrip PowerShell yang dilumpuhkan pada Windows Server 2008 R2. Skrip pertama menetapkan dasar pelaksanaan kepada Bypass untuk sesi PowerShell semasa menggunakan Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force. Perintah ini membenarkan semua skrip berjalan tanpa sekatan buat sementara waktu. Skrip kemudiannya menavigasi ke direktori yang mengandungi skrip Management_Install.ps1 dan melaksanakannya menggunakan powershell .Management_Install.ps1. Pendekatan ini memastikan bahawa perubahan dasar pelaksanaan hanyalah sementara dan tidak menjejaskan postur keselamatan keseluruhan sistem.

Skrip kedua, fail kelompok, juga menetapkan dasar pelaksanaan kepada Bypass tetapi melakukannya daripada baris arahan. Ia menggunakan powershell -Command "Set-ExecutionPolicy Bypass -Scope Process -Force" untuk mencapainya. Selepas menukar dasar pelaksanaan, skrip menavigasi ke direktori skrip dan menjalankan skrip PowerShell menggunakan powershell -File .Management_Install.ps1. Skrip kelompok berakhir dengan perintah jeda untuk memastikan tetingkap gesaan arahan terbuka, membolehkan pengguna melihat sebarang output atau mesej ralat. Kaedah ini berguna untuk mengautomasikan proses dan menyepadukannya ke dalam proses kelompok yang lebih besar.

Penandatanganan Skrip dan Keselamatan dalam PowerShell

Contoh skrip ketiga menunjukkan cara menandatangani skrip PowerShell untuk mematuhi dasar pelaksanaan yang lebih ketat. Mula-mula, sijil yang ditandatangani sendiri dibuat menggunakan Sijil Ditandatangani Baharu. Sijil ini kemudiannya boleh dieksport dengan Sijil Eksport dan diimport ke kedai sijil yang dipercayai menggunakan Sijil Import. Dengan mengimport sijil ke dalam stor TrustedPublisher dan Root, sistem akan mempercayai skrip yang ditandatangani dengan sijil ini. Skrip Management_Install.ps1 kemudian ditandatangani menggunakan Set-AuthenticodeSignature.

Penandatanganan skrip memastikan bahawa hanya skrip yang dipercayai boleh dilaksanakan pada sistem, memberikan lapisan keselamatan tambahan. Pendekatan ini amat berguna dalam persekitaran dengan keperluan keselamatan yang ketat di mana dasar pelaksanaan ditetapkan kepada AllSigned atau RemoteSigned. Dengan menandatangani skrip, pentadbir boleh memastikan bahawa skrip tidak diganggu dan adalah daripada sumber yang dipercayai, sekali gus mengurangkan potensi risiko keselamatan. Kaedah ini menggabungkan keselamatan dengan fungsi, membolehkan skrip yang diperlukan dijalankan sambil mengekalkan integriti sistem.

Menetapkan Dasar Pelaksanaan kepada Pintasan dalam PowerShell

Skrip PowerShell

# Ensure the script execution policy is set to Bypass
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force

# Navigate to the script directory
cd "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts"

# Execute the PowerShell script
powershell .\Management_Install.ps1

Menggunakan Skrip Berkelompok untuk Mengubah Suai Dasar Pelaksanaan dan Menjalankan Skrip PowerShell

Skrip Berkelompok

@echo off

:: Set PowerShell execution policy to Bypass
powershell -Command "Set-ExecutionPolicy Bypass -Scope Process -Force"

:: Navigate to the script directory
cd "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts"

:: Run the PowerShell script
powershell -File .\Management_Install.ps1

pause

Mencipta Skrip PowerShell yang Ditandatangani

Skrip PowerShell dengan Tandatangan

# Sample script content
Write-Output "Executing Management Install Script"

# Save this script as Management_Install.ps1

# To sign the script, follow these steps:
# 1. Create a self-signed certificate (if you don't have one)
$cert = New-SelfSignedCertificate -DnsName "PowerShellLocalCert" -CertStoreLocation "Cert:\LocalMachine\My"

# 2. Export the certificate to a file
Export-Certificate -Cert $cert -FilePath "C:\PowerShellLocalCert.cer"

# 3. Import the certificate to Trusted Publishers and Trusted Root Certification Authorities
Import-Certificate -FilePath "C:\PowerShellLocalCert.cer" -CertStoreLocation "Cert:\LocalMachine\TrustedPublisher"
Import-Certificate -FilePath "C:\PowerShellLocalCert.cer" -CertStoreLocation "Cert:\LocalMachine\Root"

# 4. Sign the script with the certificate
Set-AuthenticodeSignature -FilePath .\Management_Install.ps1 -Certificate $cert

Memastikan Pematuhan Dasar Pelaksanaan Skrip dan Keselamatan Sistem

Apabila mengurus Windows Server 2008 R2, adalah penting untuk memahami dasar pelaksanaan berbeza yang tersedia dalam PowerShell dan cara ia memberi kesan kepada pelaksanaan skrip. Dasar pelaksanaan PowerShell direka untuk menghalang pelaksanaan skrip yang berpotensi berbahaya. Empat dasar utama ialah Terhad, AllSigned, RemoteSigned dan Tidak Terhad. Terhad ialah dasar lalai dan tidak membenarkan sebarang skrip dijalankan. AllSigned memerlukan semua skrip dan fail konfigurasi ditandatangani oleh penerbit yang dipercayai. RemoteSigned memerlukan semua skrip dan fail konfigurasi yang dimuat turun dari internet ditandatangani oleh penerbit yang dipercayai, tetapi membenarkan skrip yang dibuat secara tempatan dijalankan tanpa tandatangan.

Memahami dasar ini membantu pentadbir memilih tahap keselamatan yang sesuai untuk persekitaran mereka. Dalam senario di mana skrip perlu dilaksanakan dengan kerap, menetapkan dasar kepada Tidak Terhad boleh berisiko, kerana ia membenarkan semua skrip berjalan tanpa sebarang sekatan. Sebaliknya, pentadbir harus mempertimbangkan untuk menggunakan RemoteSigned atau AllSigned untuk mengimbangi keselamatan dengan fungsi. Dengan menandatangani skrip dan mengurus sijil, pentadbir boleh memastikan bahawa hanya skrip yang dipercayai dijalankan pada sistem mereka, mengurangkan risiko menjalankan kod berniat jahat.

  1. Bagaimanakah cara saya menyemak dasar pelaksanaan semasa pada sistem saya?
  2. Gunakan arahan dalam PowerShell untuk menyemak dasar pelaksanaan semasa.
  3. Bagaimanakah saya boleh menukar dasar pelaksanaan untuk semua pengguna secara kekal?
  4. Gunakan arahan untuk menukar dasar pelaksanaan untuk semua pengguna.
  5. Apakah yang perlu saya lakukan jika saya menemui skrip yang tidak boleh dilaksanakan kerana sekatan dasar?
  6. Tetapkan dasar kepada Pintas menggunakan dan jalankan skrip.
  7. Adakah selamat untuk menggunakan dasar Tidak Terhad?
  8. Menggunakan Tidak Terhad tidak disyorkan untuk persekitaran pengeluaran kerana ia membenarkan semua skrip dijalankan, yang boleh menjadi risiko keselamatan.
  9. Bagaimanakah cara saya menandatangani skrip PowerShell?
  10. Buat sijil yang ditandatangani sendiri menggunakan dan kemudian menandatangani skrip menggunakan .
  11. Bolehkah saya mengehadkan pelaksanaan skrip kepada skrip yang dipercayai sahaja?
  12. Ya, dengan menetapkan dasar pelaksanaan kepada AllSigned atau RemoteSigned dan menandatangani skrip anda.
  13. Apakah perbezaan antara dasar AllSigned dan RemoteSigned?
  14. AllSigned memerlukan semua skrip ditandatangani oleh penerbit yang dipercayai, manakala RemoteSigned hanya memerlukan skrip yang dimuat turun dari internet untuk ditandatangani.
  15. Bagaimanakah cara saya membuat sijil yang ditandatangani sendiri untuk menandatangani skrip?
  16. Gunakan arahan untuk membuat sijil yang ditandatangani sendiri.
  17. Apakah risiko keselamatan melumpuhkan dasar pelaksanaan skrip?
  18. Melumpuhkan dasar pelaksanaan skrip boleh mendedahkan sistem anda kepada skrip berniat jahat, yang membawa kepada potensi pelanggaran keselamatan dan kehilangan data.

Memastikan dasar pelaksanaan PowerShell yang betul adalah penting untuk menjalankan skrip pada Windows Server 2008 R2. Menetapkan dasar kepada atau menggunakan fail kelompok boleh menyelesaikan sementara isu pelaksanaan, tetapi menandatangani skrip menawarkan penyelesaian jangka panjang yang lebih selamat. Pentadbir harus sedar tentang implikasi keselamatan dasar pelaksanaan yang berbeza dan melaksanakan langkah-langkah yang mengimbangi keselamatan dengan keperluan operasi.