Powershell ExecutionPolicy kann für CurrentUser nicht festgelegt werden

11

Hier ist ein Beispiel der Befehle, die ich ausführe:

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

Ich möchte das einstellen CurrentUserzu Unrestricted, aber ich kann es nicht zu tun scheinen. Ich habe nach vorhandenen Gruppenrichtlinien gesucht, die in diesem MSDN-Dokument beschrieben sind , habe jedoch keine konfigurierten Richtlinien gefunden .

Irgendwelche Hinweise, wie ich das einstellen kann?

CamronBute
quelle
Ich kann das nicht reproduzieren. Es funktioniert auf meinem Computer wie vorgesehen. Erhalten Sie irgendwelche Fehler?
Briantist
@briantist Es ist ein Windows 10-Fehler.
CamronBute,

Antworten:

11

Wie alle anderen gesagt haben, scheint dies ein Fehler im Preview-Build von Windows 10 zu sein. Ich habe es zum Laufen gebracht, indem ich einfach den -Force-Parameter angegeben habe.

Einstellung für lokale Maschine:

Set-ExecutionPolicy RemoteSigned -Force

Einstellung für den aktuellen Benutzer:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

ddcruver
quelle
3

Dies scheint ein Fehler in Windows 10 zu sein. Ich musste den Schlüssel HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShellerstellen und einen Zeichenfolgenwert in diesem Schlüssel erstellen, der ExecutionPolicymit den Daten aufgerufen wurde, Unrestrictedbevor es funktionieren würde. Selbst dann kann ich es scheinbar nicht ändern, ohne die Registrierung zu ändern.

CamronBute
quelle
2

Ich hatte ein allgemeineres Problem mit der Powershell-Richtlinie als das OP, aber eine Kombination der hier und anderswo gefundenen Antworten wurde benötigt, damit meine Win10 Anniversary Edition ihre Richtlinien korrekt aktualisiert:

1) Stellen Sie sicher, dass dieser Registrierungseintrag vorhanden und auf die niedrigste Sicherheitsstufe eingestellt ist, die Sie zulassen möchten: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) Stellen Sie sicher, dass dieser Registrierungseintrag vorhanden und auf die niedrigste Sicherheitsstufe eingestellt ist, die Sie zulassen möchten: HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) Aktualisieren Sie Ihre Gruppenrichtlinie durch Laufen Sie gpedit.mscund navigieren Sie zu Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Auswählen Turn on Script Execution, dann Bearbeiten policy settingmit Enabledund setzen Sie es in dem Feld darunter, das besagt Execution Policy, aufAllow All Scripts

Nachdem Sie dies alles getan haben, können Sie die Antwort von ddcruver verwenden, indem Sie die Aktualisierung Ihrer Richtlinien erzwingen, je nachdem, was Sie möchten. Wenn Sie Ihre Richtlinien auf "Unbeschränkt" setzen, würde ich empfehlen, alle Einstellungen Get-ExecutionPolicy -Listauf etwas Einschränkenderes RemoteSignedfestzulegen, z. B. weil böswillige Powershell-Skripts eine der Hauptursachen für speicherbasierte Windows-Malware sind.

kayleeFrye_onDeck
quelle
1

Ich sehe den Fehler in meiner Installation von Windows 10 nicht. Ich habe die Installation einfach mit VMWare Workstation 11 durchgeführt und eine VM erstellt. Ich habe Folgendes ausgeführt, ohne zuvor Änderungen vorgenommen zu haben:

Bildbeschreibung hier eingeben

Falls Sie die Version von Windows 10 wissen möchten, habe ich: 10.0.10074


quelle
2
Ich sehe das unerwartete Verhalten, das von OP beschrieben wird. Windows 10 Enterprise Build 10130.
Jscott
Wenn dies der Fall ist, sollten Sie den Fehler über Connect melden oder nachsehen, ob er bereits aufgetreten ist.
0

Sie müssen Powershell im erweiterten Modus ausführen, bevor Sie die Ausführungsrichtlinie ändern können

agi
quelle
Das OP-Problem ist damit nicht behoben.
KayleeFrye_onDeck
0

Ich habe festgestellt, dass sich der Registrierungsschlüssel unter befindet

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

wurde eingestellt auf RemoteSigned. Das Setzen des Wertes auf Unrestrictedhat bei mir funktioniert.

Mike Morrison
quelle