Tidak dapat mengatur Powershell ExecutionPolicy untuk CurrentUser

11

Berikut adalah contoh dari perintah yang saya jalankan:

PS C:\> Get-ExecutionPolicy -List 

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted


PS C:\> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted

Saya ingin mengatur CurrentUseruntuk Unrestricted, tapi aku tidak bisa melakukannya. Saya memeriksa kebijakan grup yang berlaku seperti yang dijelaskan dalam dokumen MSDN ini , tetapi tidak menemukan apa pun yang dikonfigurasi.

Adakah petunjuk tentang bagaimana saya dapat mengatur ini?

CamronBute
sumber
Saya tidak dapat mereproduksi ini. Ini berfungsi sebagaimana dimaksud pada mesin saya. Apakah Anda mendapatkan kesalahan?
briantist
@ briantist Ini adalah bug Windows 10.
CamronBute

Jawaban:

11

Seperti semua yang lain mengatakan ini tampaknya menjadi bug dalam pratinjau membangun Windows 10. Saya berhasil dengan hanya menyediakan parameter-Force.

Pengaturan untuk Mesin Lokal:

Set-ExecutionPolicy RemoteSigned -Force

Pengaturan untuk Pengguna Saat Ini:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

ddcruver
sumber
3

Ini tampaknya menjadi bug di Windows 10. Saya harus membuat kunci HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShelldan membuat nilai string di kunci yang dipanggil ExecutionPolicydengan data Unrestrictedsebelum itu akan berfungsi. Bahkan kemudian, saya tidak dapat mengubahnya tanpa memodifikasi registri.

CamronBute
sumber
2

Saya memiliki masalah kebijakan powerhell yang lebih umum daripada OP, tetapi kombinasi jawaban yang ditemukan di sini dan di tempat lain akhirnya diperlukan untuk Edisi Ulang Tahun Win10 saya untuk memperbarui kebijakannya dengan benar:

1) Pastikan entri registri ini ada dan diatur ke tingkat keamanan terendah yang ingin Anda izinkan: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) Pastikan entri registri ini ada dan diatur ke tingkat keamanan terendah yang ingin Anda izinkan: HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) Perbarui Kebijakan Grup Anda dengan menjalankan gpedit.mscdan menavigasi ke Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Pilih Turn on Script Execution, lalu Edit policy settingdengan Enableddan di kotak di bawahnya yang mengatakan Execution Policy, aturAllow All Scripts

Setelah melakukan semua itu, Anda dapat menggunakan jawaban ddcruver dengan memperbarui kebijakan secara paksa tergantung pada apa yang Anda inginkan. Jika Anda menetapkan kebijakan ke Tidak Terbatas, saya akan menyarankan pengaturan semua pengaturan yang terisi dari Get-ExecutionPolicy -Listsesuatu yang lebih ketat, seperti RemoteSigned, karena skrip powershell berbahaya adalah salah satu penyebab utama malware Windows berbasis memori.

kayleeFrye_onDeck
sumber
1

Saya tidak melihat bug di instalasi saya pada Windows 10. Saya hanya pergi melalui instalasi menggunakan VMWare Workstation 11 dan membangun VM. Saya menjalankan yang berikut ini tanpa membuat perubahan apa pun sebelumnya:

masukkan deskripsi gambar di sini

Jika Anda ingin mengetahui Versi Windows 10 yang saya miliki: 10.0.10074


sumber
2
Saya melihat perilaku tak terduga yang dijelaskan oleh OP. Windows 10 Enterprise build 10130.
jscott
Jika itu masalahnya maka Anda harus mengirimkan bug melalui Connect atau melihat apakah sudah.
0

Anda harus menjalankan PowerShell dengan mode tinggi sebelum mengubah kebijakan eksekusi

agi
sumber
Itu tidak memperbaiki masalah OP.
kayleeFrye_onDeck
0

Saya menemukan bahwa kunci registri terletak di

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 

diatur ke RemoteSigned. Menetapkan nilai untuk Unrestrictedberhasil bagi saya.

Mike Morrison
sumber