ไม่สามารถตั้งค่า Powershell ExecutionPolicy สำหรับ CurrentUser


11

นี่คือตัวอย่างของคำสั่งที่ฉันใช้:

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

ฉันต้องการที่จะตั้งCurrentUserไปUnrestrictedแต่ฉันไม่สามารถดูเหมือนจะทำเช่นนั้น ฉันตรวจสอบนโยบายกลุ่มแล้วตามที่อธิบายไว้ในเอกสาร MSDN นี้แต่ไม่พบสิ่งใด ๆ ที่กำหนดค่าไว้

เบาะแสใด ๆ เกี่ยวกับวิธีการตั้งค่านี้?


ฉันไม่สามารถทำซ้ำสิ่งนี้ มันทำงานได้ตามที่ตั้งใจไว้ในเครื่องของฉัน คุณได้รับข้อผิดพลาดหรือไม่?
ต้มตุ๋น

@briantist เป็นข้อบกพร่องของ Windows 10
CamronBute

คำตอบ:


11

เช่นเดียวกับที่คนอื่น ๆ ทุกคนบอกว่านี่เป็นข้อผิดพลาดในการสร้างหน้าตัวอย่างของ Windows 10 ฉันได้รับมันให้ใช้งานได้ง่ายๆโดยการระบุพารามิเตอร์ -Force

การตั้งค่าสำหรับเครื่องท้องถิ่น:

ตั้งค่า - ExecutionPolicy RemoteSigned - แรง

การตั้งค่าสำหรับผู้ใช้ปัจจุบัน:

ตั้งค่า ExecutionPolicy RemoteSigned -Scope CurrentUser -Force


4

นี่น่าจะเป็นจุดบกพร่องใน Windows 10 ฉันต้องสร้างคีย์HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShellและสร้างค่าสตริงในคีย์นั้นที่ถูกเรียกExecutionPolicyพร้อมกับข้อมูลUnrestrictedก่อนที่มันจะทำงาน ถึงกระนั้นฉันก็ดูเหมือนจะไม่สามารถเปลี่ยนแปลงได้โดยไม่ต้องแก้ไขรีจิสทรี


คนเดียวที่ช่วย คุณรู้ไหมว่าทำไมSet-ExecutionPolicyไม่ทำงาน
nZeus

2

ฉันมีปัญหานโยบาย PowerShell โดยทั่วไปมากกว่า OP แต่มีคำตอบหลายคำตอบที่พบได้ที่นี่และที่อื่น ๆ ที่จำเป็นสำหรับ Win10 Anniversary Edition ของฉันเพื่ออัปเดตนโยบายอย่างถูกต้อง:

1) ตรวจสอบให้แน่ใจว่ารายการรีจิสทรีนี้มีอยู่และตั้งค่าระดับความปลอดภัยต่ำสุดที่คุณต้องการอนุญาต: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) ตรวจสอบให้แน่ใจว่ารายการรีจิสทรีนี้มีอยู่และตั้งค่าระดับความปลอดภัยต่ำสุดที่คุณต้องการอนุญาต: HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) อัปเดตนโยบายกลุ่ม เรียกใช้gpedit.mscและไปที่Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
เลือกTurn on Script Executionจากนั้นแก้ไขpolicy settingด้วยEnabledและในกล่องด้านล่างที่ระบุว่าExecution Policyตั้งเป็นAllow All Scripts

หลังจากที่ทำทุกอย่างเสร็จแล้วคุณสามารถใช้คำตอบของ ddcruver โดยบังคับให้อัปเดตนโยบายของคุณขึ้นอยู่กับสิ่งที่คุณต้องการ หากคุณตั้งค่านโยบายของคุณเป็นแบบไม่ จำกัด ฉันขอแนะนำให้ตั้งค่าการตั้งค่าทั้งหมดจากGet-ExecutionPolicy -Listที่มีข้อ จำกัด มากขึ้นเช่นRemoteSignedสคริปต์ PowerShell ที่เป็นอันตรายเป็นหนึ่งในสาเหตุหลักของมัลแวร์ Windows ที่ใช้หน่วยความจำ


1

ฉันไม่เห็นข้อผิดพลาดในการติดตั้ง Windows 10 ฉันเพิ่งผ่านการติดตั้งโดยใช้ VMWare Workstation 11 และสร้าง VM ขึ้นมา ฉันรันสิ่งต่อไปนี้โดยไม่ทำการเปลี่ยนแปลงใด ๆ ก่อนหน้า:

ป้อนคำอธิบายรูปภาพที่นี่

ในกรณีที่คุณต้องการทราบเวอร์ชันของ Windows 10 ฉันมี: 10.0.10074


3
ฉันเห็นพฤติกรรมที่ไม่คาดคิดที่อธิบายโดย OP Windows 10 Enterprise สร้าง 10130
jscott

หากเป็นกรณีนี้คุณควรส่งข้อบกพร่องผ่านการเชื่อมต่อหรือดูว่ามีอยู่แล้ว

0

คุณต้องเรียกใช้ PowerShell ด้วยโหมดยกระดับก่อนที่จะเปลี่ยนนโยบายการดำเนินการ


แต่นั่นไม่ได้แก้ไขปัญหาของ OP
kayleeFrye_onDeck

0

ฉันพบว่าคีย์รีจิสทรีตั้งอยู่ที่

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

RemoteSignedถูกกำหนดให้ การตั้งค่าที่Unrestrictedได้ผลสำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.