Skrip PowerShell digunakan untuk mengautomasikan tugas berulang dan membuat beberapa perubahan pada konfigurasi sistem anda. Walau bagaimanapun, kami perhatikan bahawa pada masa -masa, tingkap Tidak dapat menjalankan skrip PowerShell di Windows 11/10. Masalah ini boleh mengecewakan kerana .Ps1 Skrip membolehkan anda melakukan banyak tugas dengan mudah. Dalam jawatan ini, kami akan bercakap tentang isu ini dan melihat apa yang boleh anda lakukan untuk menyelesaikan masalah ini.
Betulkan tidak dapat menjalankan skrip PowerShell di Windows 11/10
Jika anda tidak dapat menjalankan skrip PowerShell di Windows 11/10, ikuti penyelesaian yang disebutkan di bawah.
- Pelancaran PowerShell sebagai pentadbir
- Memintas dasar pelaksanaan
- Tetapkan Dasar Pelaksanaan ke Tidak Terikat
- Dayakan Pelaksanaan Skrip PowerShell Menggunakan Editor Pendaftaran atau Editor Dasar Kumpulan
Marilah kita bercakap tentang mereka secara terperinci.
Tidak dapat dimuatkan kerana skrip berjalan dilumpuhkan pada sistem ini
1] Pelancaran PowerShell sebagai pentadbir
Pertama, kita perlu mengesahkan sama ada isu yang anda hadapi memang menjadi masalah. Jika anda melancarkan PowerShell sebagai pentadbir Dengan mencarinya di menu Mula, klik kanan pada PowerShell, dan klik Jalankan sebagai pentadbir. Kemudian, cuba jalankan skrip dan lihat apakah itu membantu.
2] memintas dasar pelaksanaan
Dasar pelaksanaan PowerShell adalah ciri keselamatan yang menghalang skrip yang tidak dibenarkan atau berbahaya daripada berjalan. Dasar lalai seperti 'terhad' atau 'remotesigned' boleh menyekat skrip kecuali mereka dibenarkan secara eksplisit atau ditandatangani. Walau bagaimanapun, jika anda menjalankan arahan berikut, anda akan dapat memintas sementara sekatan ini untuk sesi semasa, membolehkan skrip berjalan tanpa mengubah tetapan keselamatan secara kekal.
powershell -ExecutionPolicy ByPass -File ScriptFileName.ps1
Masalahnya di sini ialah kaedah ini tidak akan berfungsi jika proses automatik seperti tugas yang dijadualkan atau runbook beroperasi dalam sesi bukan interaktif. Persekitaran ini sering menguatkuasakan tetapan dasar kumpulan yang ketat yang mengabaikan mengatasi sementara, memastikan keselamatan yang berterusan.
3] Tetapkan Dasar Pelaksanaan ke Tidak Terikat
Seperti yang dinyatakan sebelum ini, kaedah yang disebutkan di atas hanya berfungsi apabila menjalankan skrip mandiri, tetapi jika skrip dijadualkan, kaedahnya tidak berkesan. Oleh itu, anda perlu menetapkan dasar pelaksanaan kepada tidak terhad. Walau bagaimanapun, ini menjadikan sistem anda terdedah, kerana sesiapa sahaja boleh menjalankan skrip berniat jahat di komputer anda jika mereka mempunyai akses kepadanya.
Untuk menetapkan dasar pelaksanaan kepada tidak terhad, jalankan perintah berikut dalam PowerShell.
penjadual tugas tidak berfungsi windows 10
Set-ExecutionPolicy unrestricted
Oleh kerana ia adalah perubahan kepada tetapan sistem anda, anda akan diminta untuk mengesahkan tindakan anda dengan memukul 'Y' atau 'A'.
Walau bagaimanapun, apabila saya mencuba yang sama, saya menemui mesej ralat berikut.
Set-executionPolicy: Windows PowerShell mengemas kini dasar pelaksanaan anda dengan jayanya, tetapi tetapannya ditindih oleh dasar yang ditakrifkan pada skop yang lebih spesifik. Kerana menimpa, cangkang anda akan mengekalkan berkesan sekarang
Dasar pelaksanaan remota. Taipkan 'Get -executionPolicy -List' untuk melihat tetapan dasar pelaksanaan anda.
Jika anda menghadapi ralat ini, anda perlu menjalankan arahan - Get-ExecutionPolicy -List
untuk mengetahui sama ada sistem itu mencatatkan perubahan dan apa masalahnya. Ternyata, dalam kes saya, currentuser telah ditetapkan untuk 'ditandatangani jauh', kerana apa -apa perubahan dalam LocalMachine Skop tidak membantu.
Jadi, kita perlu menjalankan arahan berikut juga.
DD8D8F3A61D772648DA439E2FD7BFEE8E1D1B35EAkhirnya, periksa sama ada masalah diselesaikan.
Baca: Bagaimana cara mengautomasikan tugas dengan PowerShell?
4] Dayakan Pelaksanaan Skrip PowerShell Menggunakan Editor Pendaftaran atau Editor Dasar Kumpulan
Anda juga boleh mengaktifkan pelaksanaan skrip PowerShell menggunakan RegEdit atau GPEDIT. Pertama, mari kita cuba sama dengan menggunakan Editor dasar kumpulan . Buka Editor dasar kumpulan Dengan mencarinya di menu Mula. Dan kemudian, navigasi ke lokasi berikut.
Konfigurasi Komputer> Templat Pentadbiran> Komponen Windows> Windows PowerShell
Cari Hidupkan pelaksanaan skrip dan klik dua kali di atasnya. Tetapkan ke Didayakan, Dan kemudian anda boleh menggunakan salah satu dasar pelaksanaan berikut.
menggabungkan komen dalam perkataan
- Allsigned: Ini hanya membolehkan skrip yang ditandatangani
- Remotesigned: Ini hanya membolehkan skrip tempatan dan jauh ditandatangani.
- Tanpa had: Ini membolehkan semua skrip.
Akhirnya, klik pada Sapukan> OK.
Sekarang, kami akan menggunakan Editor Pendaftaran. Tetapi sebelum membuat sebarang perubahan, buat a sandaran pendaftaran . Kemudian, navigasi ke lokasi berikut.
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
Sekarang, klik kanan di Tingkap folder, dan pilih Baru> kunci. Namakan ini 'PowerShell'. Anda kemudian mesti klik kanan di ruang kosong dan pilih Nilai baru> dword (32-bit), dan namakannya 'Membolehkan'. Klik dua kali pada EnableScripts dan tetapkan data nilai kepada 1.
Sekali lagi, klik kanan di ruang, pilih Baru> Nilai String, dan namakannya ' ExecutionPolicy '
Sekarang, klik dua kali pada ExecutionPolicy dan tetapkan data nilai ke Tidak terhad. Anda juga boleh menetapkannya Allsigned, Remotesigned, dan Tidak terhad.
Mudah -mudahan, dengan bantuan jawatan ini, anda akan dapat menyelesaikan masalah ini.
Baca: Cara Menggunakan Windows PowerShell Ise - Tutorial Pemula
Bagaimana saya menjalankan skrip shell di windows 11?
Untuk menjalankan skrip shell (seperti bash) di Windows 11, pasang subsistem Windows untuk Linux (WSL) dari kedai Microsoft, buka terminal Linux (mis., Ubuntu), navigasi ke folder skrip anda menggunakan CD, dan taipkan Bash ScriptName.sh. Untuk skrip PowerShell, melancarkan PowerShell sebagai pentadbir, gunakan Set-ExecutionPolicy RemoteSigned
(sementara atau kekal) untuk membenarkan skrip, kemudian jalankannya dengan. \ ScriptName.ps1.
Baca juga: Fail Tukar Skrip PowerShell (PS1) ke Exe dengan IExpress di Windows .