PowerShell指令碼寫的檔案.ps1檔案介紹_PowerShell

來源:互聯網
上載者:User

.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,就可以成功了!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.