對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2015/12/18 3:30:44
[PowerShell] cannot be loaded because the execution of scripts is disabled on this system - Server 2008 R2
最近在研究PowerShell,在執行的時候遇到了一些問題
如畫面顯示我的執行政策已經是 UnRestricted 但是還是出現一樣的錯誤
後來才發現我使用的作業系統是 Server 2008 R2
同時會存在著 X86 和 X64兩種版本
需要檢查兩個版本是否都是可以執行的權限
X86的路徑
C:\Windows\system32\cmd.exe
X86的執行政策是 UnRestricted
接下來檢查X64的設定
C:\Windows\SysWOW64\cmd.exe
就會發現X64的執行政策是 Restricted,難怪一直都不能執行!!!
只要修改X64的政策就能執行了
這個問題困擾了我一陣子,經過這一次的經驗
下次在處理Server的問題時,就會多注意到X64和X86的版本問題
從失敗中學經驗~~
參考資料:
http://stackoverflow.com/questions/4037939/powershell-execution-of-scripts-is-disabled-on-this-system
直接打開PowerShell執行 xxx.ps1 的Script是可以正常運作的
但是要使用C# 去呼叫寫好的 xxx.ps1就會發生問題了
英文版
xxx.ps1 cannot be loaded because the execution of scripts is disabled on this system.
PowerShell有些執行上的政策去限制了檔案(.ps1)的執行
有四種執行的政策
Restricted - 限制 任何的 .ps1的執行 ....這是預設值
AllSigned - 要執行的.ps1都要經過信任者的簽名發行
Remote Signed - 這是允許存取本機電腦上.ps1,但是透過網路去存取的就不行
Un Restricted - 完全不限制.ps1的執行
更多資訊
如果是自己寫的.ps1應該是 RemoteSigned 的權限就可以執行了
如畫面顯示我的執行政策已經是 UnRestricted 但是還是出現一樣的錯誤
後來才發現我使用的作業系統是 Server 2008 R2
同時會存在著 X86 和 X64兩種版本
需要檢查兩個版本是否都是可以執行的權限
X86的路徑
C:\Windows\system32\cmd.exe
X86的執行政策是 UnRestricted
接下來檢查X64的設定
C:\Windows\SysWOW64\cmd.exe
就會發現X64的執行政策是 Restricted,難怪一直都不能執行!!!
只要修改X64的政策就能執行了
這個問題困擾了我一陣子,經過這一次的經驗
下次在處理Server的問題時,就會多注意到X64和X86的版本問題
從失敗中學經驗~~
參考資料:
http://stackoverflow.com/questions/4037939/powershell-execution-of-scripts-is-disabled-on-this-system
原文出處:I'm Mr.J 沒有技術的狂熱~~只希望享受分享的喜悅~~: [PowerShell] cannot be loaded because the execution of scripts is disabled on this system - Server 2008 R2