.ps1檔案是PowerShell寫好的腳本檔案。在Windows系統中,預設情況下是不允許執行.ps1檔案的,那麼怎麼才能讓系統允許執行.ps1檔案呢?
這個是PowerShell寫的腳本文本,你可以在記事本中寫一段PowerShell代碼,然後将其儲存為“xxx.ps1”,後面要使用它的時候,輕按兩下即可運作了。這有點像批處理的“.bat”檔案,也有點像VBScript的“.vbs”檔案。這些都是Windows的腳本檔案。
接下來大家會問,那我們就輕按兩下它運作好了,還有什麼好說的嗎?當然要說。我們想得很美,輕按兩下一下就執行了,但是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,就可以成功了!
本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/bonelee/p/8043421.html,如需轉載請自行聯系原作者