1. 程式人生 > >用PowerShell來執行 互動式指令碼檔案

用PowerShell來執行 互動式指令碼檔案

你是不是為老是在命令提示符中敲打命令而煩惱?

當然按照MS的標準,您無需為每次執行的一長串命令而重新敲打鍵盤。


舉個列子,如下我們將計算今天到2008-8-8(北京奧運會)那天還有多少天。。。

Function Anders
{
([datetime]
"2008-8-8"- [datetime]::Now).Days;
}

將檔案儲存為anders.ps1,然後我們在PowerShell環境下來執行這個互動式檔案。

預設情況下執行./anders.ps1是不會被允許的.
(順便提一下, ps1檔案預設也沒有和powershell.exe相關聯)

原因在於powershell的執行策略, 預設的執行策略是Restricted
我們可以按照下圖進行設定,我在這裡將它設定為RemoteSigned分類許可權



當然執行的方法還有很多種,這裡我給大家舉例最常見的。。。
結果也順利執行成功了,為345天,呵呵

如下我給大家列出執行策略許可權的分類有以下幾種:

-- Restricted:不載入配置檔案或執行指令碼。預設值為“Restricted”。

-- AllSigned:要求所有指令碼和配置檔案由可信釋出者簽名,包括在本地計算機編寫的指令碼。

-- RemoteSigned:要求從 Internet 下載的所有指令碼和配置檔案由可信釋出者簽名。

-- Unrestricted:載入所有配置檔案並執行所有指令碼。如果執行從 Internet 下載的未簽名指令碼,則系統將提示您需要相關權
限才能執行該指令碼。
下面列出了此引數的可接受值:
你也可以按照你的環境來自己適用選項。

在穿插一些,關於執行互動式指令碼的安全設定,你也可以自己來設定安全證書。這裡我就不詳細列出了,不是今天要講的重點。


當然執行的方法還有很多種,這裡我給大家舉例最常見的。。。
結果也順利執行成功了,為345天,呵呵

如下我給大家列出執行策略許可權的分類有以下幾種:

QUOTE: -- Restricted:不載入配置檔案或執行指令碼。預設值為“Restricted”。

-- AllSigned:要求所有指令碼和配置檔案由可信釋出者簽名,包括在本地計算機編寫的指令碼。

-- RemoteSigned:要求從 Internet 下載的所有指令碼和配置檔案由可信釋出者簽名。

-- Unrestricted:載入所有配置檔案並執行所有指令碼。如果執行從 Internet 下載的未簽名指令碼,則系統將提示您需要相關權
限才能執行該指令碼。
下面列出了此引數的可接受值:
你也可以按照你的環境來自己適用選項。

在穿插一些,關於執行互動式指令碼的安全設定,你也可以自己來設定安全證書。這裡我就不詳細列出了,不是今天要講的重點。