2017年8月15日 星期二

Set PowerShell Execution Policy

透過 C# 執行某個 *.psl 時,有時候會遇到下列錯誤訊息:
"*.psl cannot be loaded because the execution of scripts is disabled on this system"
此時, 必須 set execution policy to unregistered, 如下:
"Set-ExecutionPolicy Unrestricted"


使用C# code設定 Execution Policy:
** PowerShell 有2 個版本 (x64 與 x86)。
1). 當C# 應用程式為64-bit時,這裡的Set Execution Policy 會設定到 PowerShell x64
2). 當C# 應用程式為32-bit時,這裡的Set Execution Policy 會設定到 PowerShell x86

** 設定完ExecutionPolicy 之後, 可以在Windows Registry看到:
1). (PowerShell x64)
HKEY_Local_Machine\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.Powershell\ExecutionPolicy 為 unrestricted
2).(PowerShell x86)  HKEY_Local_Machine\SOFTWARE\Wow6432Node\Microsoft\PowerShell\1\ShellIds\Microsoft.Powershell\ExecutionPolicy  為 unrestricted



Reference:
1). Set-Execution Policy from process <Link>
2). Powershell Get-ExecutionPolicy returns different values <Link>

沒有留言:

張貼留言