解決PowerShell禁止執(zhí)行腳本的問(wèn)題
PowerShell是微軟推出的比cmd更加強(qiáng)大的命令行工具,它和cmd一樣也可以編寫(xiě)腳本來(lái)執(zhí)行。然而,對(duì)于剛接觸PowerShell不久的用戶來(lái)說(shuō),可能會(huì)遇到好不容易編寫(xiě)了腳本文件,卻被系統(tǒng)告知禁止
PowerShell是微軟推出的比cmd更加強(qiáng)大的命令行工具,它和cmd一樣也可以編寫(xiě)腳本來(lái)執(zhí)行。然而,對(duì)于剛接觸PowerShell不久的用戶來(lái)說(shuō),可能會(huì)遇到好不容易編寫(xiě)了腳本文件,卻被系統(tǒng)告知禁止運(yùn)行任何腳本的情況。雖然禁止執(zhí)行腳本文件是為了系統(tǒng)安全考慮的,但當(dāng)我們已經(jīng)確認(rèn)腳本是安全的時(shí)候,我們?cè)撊绾螆?zhí)行呢?
PowerShell執(zhí)行策略
PowerShell無(wú)疑是對(duì)安全做過(guò)充分考量的,它把腳本的執(zhí)行分成了幾個(gè)策略。下面是4種常用的執(zhí)行策略:
- Restricted:禁止運(yùn)行任何腳本和配置文件。
- AllSigned:可以運(yùn)行腳本,但要求所有腳本和配置文件由可信發(fā)布者簽名,包括在本地計(jì)算機(jī)上編寫(xiě)的腳本。
- RemoteSigned:可以運(yùn)行腳本,但要求從網(wǎng)絡(luò)上下載的腳本和配置文件由可信發(fā)布者簽名;不要求對(duì)已經(jīng)運(yùn)行和已在本地計(jì)算機(jī)編寫(xiě)的腳本進(jìn)行數(shù)字簽名。
- Unrestricted:可以運(yùn)行未簽名腳本(危險(xiǎn)!)。
修改執(zhí)行策略
PowerShell默認(rèn)的執(zhí)行策略就是“Restricted”,禁止任何腳本的執(zhí)行。要想執(zhí)行腳本文件,就必須修改默認(rèn)的執(zhí)行策略。然而,修改執(zhí)行策略需要管理員的權(quán)限,所以我們需要以管理員身份運(yùn)行PowerShell。
- 首先,打開(kāi)PowerShell命令行界面。
- 然后,輸入Get-ExecutionPolicy命令,用于獲得當(dāng)前的執(zhí)行策略。
- 接下來(lái),使用Set-ExecutionPolicy命令設(shè)置/更改執(zhí)行策略。選擇“RemoteSigned”這個(gè)執(zhí)行策略,這個(gè)策略既安全又可以執(zhí)行本地編寫(xiě)的腳本。
- 如果要執(zhí)行從網(wǎng)上下載且沒(méi)有可信發(fā)布者簽名的腳本,在你已經(jīng)確認(rèn)該腳本是安全的情況下,可以使用Set-ExecutionPolicy Unrestricted命令將執(zhí)行策略設(shè)置為“Unrestricted”后,即可執(zhí)行該腳本。
驗(yàn)證腳本執(zhí)行
現(xiàn)在來(lái)檢測(cè)一下是否可以執(zhí)行腳本了。使用記事本創(chuàng)建一個(gè)擴(kuò)展名為.ps1的腳本文件“”,內(nèi)容只是向控制臺(tái)輸出一句話“明天會(huì)更好!”。
保存后,雙擊運(yùn)行,如果腳本順利執(zhí)行,那么就證明我們已經(jīng)成功解決了PowerShell禁止執(zhí)行腳本的問(wèn)題。