.ps1文件是PowerShell寫好的腳本文件。在Windows系統(tǒng)中,默認(rèn)情況下是不允許執(zhí)行.ps1文件的,那么怎么才能讓系統(tǒng)允許執(zhí)行.ps1文件呢?
什么是“.ps1”文件?
這個(gè)是PowerShell寫的腳本文本,你可以在記事本中寫一段PowerShell代碼,然后將其保存為“xxx.ps1”,后面要使用它的時(shí)候,雙擊即可運(yùn)行了。這有點(diǎn)像批處理的“.bat”文件,也有點(diǎn)像VBScript的“.vbs”文件。這些都是Windows的腳本文件。
如何執(zhí)行“.ps1”文件?
接下來(lái)大家會(huì)問(wèn),那我們就雙擊它運(yùn)行好了,還有什么好說(shuō)的嗎?當(dāng)然要說(shuō)。我們想得很美,雙擊一下就執(zhí)行了,但是Windows系統(tǒng)默認(rèn)是不允許執(zhí)行.ps1文件的,所以你得往下看。
執(zhí)行不成功的解決辦法
1、將PowerShell的腳本內(nèi)容保存到一個(gè).ps1為后綴的文件中。
2、雙擊執(zhí)行此ps1文件很有可能無(wú)法執(zhí)行,提示:無(wú)法加載文件 D:\PowerShell\test\myfirst1.ps1,因?yàn)樵诖讼到y(tǒng)中禁止執(zhí)行腳本。
3、運(yùn)行g(shù)et-executionpolicy,如果結(jié)果是Restricted,那表示禁止執(zhí)行腳本。
4、執(zhí)行如下命令,降低系統(tǒng)的安全性,允許執(zhí)行腳本:set-executionpolicy -executionpolicy unrestricted
關(guān)于執(zhí)行策略
這里有一個(gè)executionpolicy,翻譯過(guò)來(lái)就是執(zhí)行策略。Windows對(duì)PowerShell腳本默認(rèn)的執(zhí)行策略是:不允許執(zhí)行,即Restricted。把它改成unrestricted自然就可以執(zhí)行了。但微軟給出的Best Practise(“最佳實(shí)踐”)是RemoteSigned,這個(gè)級(jí)別比UnRestricted要高一點(diǎn),不是什么程序都能執(zhí)行。據(jù)我簡(jiǎn)單的了解,RemoteSigned是要求遠(yuǎn)程下載的ps1腳本文件必須是簽名的才可以執(zhí)行。至于我們?cè)诒緳C(jī)上自寫的腳本程序,那是沒(méi)有區(qū)別,都可以執(zhí)行的。
修改執(zhí)行策略需要權(quán)限
另外需要說(shuō)明的是,如果是在Win7、Win8、Windows 2008、Windows 2012等系統(tǒng)上,且不是使用administrator賬號(hào)來(lái)執(zhí)行這個(gè)set-executionpolicy語(yǔ)句,將會(huì)報(bào)錯(cuò),錯(cuò)誤如下:
Set-ExecutionPolicy : 對(duì)注冊(cè)表項(xiàng)“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell”的訪問(wèn)被拒絕。
這時(shí)候小編很疑惑,我使用賬號(hào)雖然不是administrator,但也是administrators組的,為什么會(huì)沒(méi)有權(quán)限呢?不管了,在注冊(cè)表中,找到這個(gè)鍵,然后點(diǎn)右鍵選擇“權(quán)限”,然后給當(dāng)前登錄系統(tǒng)的賬號(hào)加一個(gè)“完全控制”的權(quán)限(只有“只讀”和“完全控制”兩個(gè)權(quán)限,所以就選“完全控制”了)。然后,再重新執(zhí)行set-executionpolicy -executionpolicy unrestricted,就可以成功了!
您可能感興趣的文章:- Windows PowerShell是啥?看完本文你就懂它了
- 25個(gè)常用PowerShell命令總結(jié)
- Powershell實(shí)現(xiàn)編寫和運(yùn)行腳本
- PowerShell單行注釋、多行注釋、塊注釋的方法
- Windows Powershell 執(zhí)行文件和腳本
- 如何防范PowerShell代碼注入漏洞繞過(guò)受限語(yǔ)言模式