.ps1文件是PowerShell寫好的腳本文件。在Windows系統中,默認情況下是不允許執行.ps1文件的,那么怎么才能讓系統允許執行.ps1文件呢?
什么是“.ps1”文件?
這個是PowerShell寫的腳本文本,你可以在記事本中寫一段PowerShell代碼,然后將其保存為“xxx.ps1”,后面要使用它的時候,雙擊即可運行了。這有點像批處理的“.bat”文件,也有點像VBScript的“.vbs”文件。這些都是Windows的腳本文件。
如何執行“.ps1”文件?
接下來大家會問,那我們就雙擊它運行好了,還有什么好說的嗎?當然要說。我們想得很美,雙擊一下就執行了,但是Windows系統默認是不允許執行.ps1文件的,所以你得往下看。
執行不成功的解決辦法
1、將PowerShell的腳本內容保存到一個.ps1為后綴的文件中。
2、雙擊執行此ps1文件很有可能無法執行,提示:無法加載文件 D:/PowerShell/test/myfirst1.ps1,因為在此系統中禁止執行腳本。
3、運行get-executionpolicy,如果結果是Restricted,那表示禁止執行腳本。
4、執行如下命令,降低系統的安全性,允許執行腳本:set-executionpolicy -executionpolicy unrestricted
關于執行策略
這里有一個executionpolicy,翻譯過來就是執行策略。Windows對PowerShell腳本默認的執行策略是:不允許執行,即Restricted。把它改成unrestricted自然就可以執行了。但微軟給出的Best Practise(“最佳實踐”)是RemoteSigned,這個級別比UnRestricted要高一點,不是什么程序都能執行。據我簡單的了解,RemoteSigned是要求遠程下載的ps1腳本文件必須是簽名的才可以執行。至于我們在本機上自寫的腳本程序,那是沒有區別,都可以執行的。
修改執行策略需要權限
另外需要說明的是,如果是在Win7、Win8、Windows 2008、Windows 2012等系統上,且不是使用administrator賬號來執行這個set-executionpolicy語句,將會報錯,錯誤如下:
Set-ExecutionPolicy : 對注冊表項“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/PowerShell/1/ShellIds/Microsoft.PowerShell”的訪問被拒絕。
這時候小編很疑惑,我使用賬號雖然不是administrator,但也是administrators組的,為什么會沒有權限呢?不管了,在注冊表中,找到這個鍵,然后點右鍵選擇“權限”,然后給當前登錄系統的賬號加一個“完全控制”的權限(只有“只讀”和“完全控制”兩個權限,所以就選“完全控制”了)。然后,再重新執行set-executionpolicy -executionpolicy unrestricted,就可以成功了!
|
新聞熱點
疑難解答
圖片精選